Re: [PATCH v9 0/3] fix hugetlb MADV_DONTNEED vma_lock handling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Nov 11, 2022, at 3:26 PM, Mike Kravetz <mike.kravetz@xxxxxxxxxx> wrote:

> This series addresses the issue first reported in [1], and fully
> described in patch 3.  While exploring solutions to this issue,
> related problems with mmu notification calls were discovered.  The
> first two patches address those issues.
> 
> Previous discussions suggested further cleanup by removing the
> routine zap_page_range.  This is possible because zap_page_range_single
> is now exported, and all callers of zap_page_range pass ranges entirely
> within a single vma.  This work will be done in a later patch so as not
> to distract from this bug fix.
> 
> [1] https://lore.kernel.org/lkml/CAO4mrfdLMXsao9RF4fUE8-Wfde8xmjsKrTNMNC9wjUb6JudD0g@xxxxxxxxxxxxxx/
> 
> Mike Kravetz (3):
>  madvise: use zap_page_range_single for madvise dontneed
>  hugetlb: remove duplicate mmu notifications
>  hugetlb: don't delete vma_lock in hugetlb MADV_DONTNEED processing
> 
> include/linux/mm.h | 29 +++++++++++++++++++++--------
> mm/hugetlb.c       | 45 +++++++++++++++++++++++++--------------------
> mm/madvise.c       |  6 +++---
> mm/memory.c        | 25 ++++++++++++-------------
> 4 files changed, 61 insertions(+), 44 deletions(-)

With my limited knowledge of hugetlbfs, it all looks good.

Having said that - 2 random thoughts:

1. It is more intuitive to me to have
mmu_notifier_invalidate_range_{start|end}() next to tlb_{start|end}_vma().
I think that one day these two should have been combined into a
single function, which could have also executed
adjust_range_if_pmd_sharing_possible() as needed.

2. If you still have a concern of exposing zap_details as you had in the
past (not that I care), consider putting zap_details and
zap_page_range_single() in mm/internal.h.

Thanks,
Nadav




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux