Re: [PATCH uprobe, thp 3/4] uprobe: support huge page by only splitting the pmd
> On May 30, 2019, at 5:14 AM, Kirill A. Shutemov wrote: > > On Wed, May 29, 2019 at 02:20:48PM -0700, Song Liu wrote: >> Instead of splitting the compound page with FOLL_SPLIT, this patch allows >> uprobe to only split pmd for huge pages. >> >> A helper function mm_address_trans_huge(mm, address) was introduced to >> test whether the address in mm is pointing to THP. > > Maybe it would be cleaner to have FOLL_SPLIT_PMD which would strip > trans_huge PMD if any and then set pte using get_locked_pte()? FOLL_SPLIT_PMD sounds like a great idea! Let me try it. Thanks, Song > > This way you'll not need any changes in split_huge_pmd() path. Clearing > PMD will be fine. > > -- > Kirill A. Shutemov
Re: [PATCH uprobe, thp 3/4] uprobe: support huge page by only splitting the pmd
> On May 30, 2019, at 4:08 AM, William Kucharski > wrote: > > > Is there any reason to worry about supporting PUD-sized uprobe pages if > CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD is defined? I would prefer > not to bake in the assumption that "huge" means PMD-sized and more than > it already is. > > For example, if CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD is configured, > mm_address_trans_huge() should either make the call to pud_trans_huge() > if appropriate, or a VM_BUG_ON_PAGE should be added in case the routine > is ever called with one. > > Otherwise it looks pretty reasonable to me. > >-- Bill > I will try that in v2. Thanks, Song
Re: [PATCH uprobe, thp 3/4] uprobe: support huge page by only splitting the pmd
On Wed, May 29, 2019 at 02:20:48PM -0700, Song Liu wrote: > Instead of splitting the compound page with FOLL_SPLIT, this patch allows > uprobe to only split pmd for huge pages. > > A helper function mm_address_trans_huge(mm, address) was introduced to > test whether the address in mm is pointing to THP. Maybe it would be cleaner to have FOLL_SPLIT_PMD which would strip trans_huge PMD if any and then set pte using get_locked_pte()? This way you'll not need any changes in split_huge_pmd() path. Clearing PMD will be fine. -- Kirill A. Shutemov
Re: [PATCH uprobe, thp 3/4] uprobe: support huge page by only splitting the pmd
Is there any reason to worry about supporting PUD-sized uprobe pages if CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD is defined? I would prefer not to bake in the assumption that "huge" means PMD-sized and more than it already is. For example, if CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD is configured, mm_address_trans_huge() should either make the call to pud_trans_huge() if appropriate, or a VM_BUG_ON_PAGE should be added in case the routine is ever called with one. Otherwise it looks pretty reasonable to me. -- Bill