Message ID | 1588745534-24418-2-git-send-email-anshuman.khandual@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | mm/hugetlb: Add some new generic fallbacks | expand |
On Wed, May 06, 2020 at 11:42:12AM +0530, Anshuman Khandual wrote: > Platform specific huge_ptep_get() is required only when fetching the huge > PTE involves more than just dereferencing the page table pointer. This is > not the case on arm64 platform. Hence huge_ptep_pte() can be dropped along > with it's __HAVE_ARCH_HUGE_PTEP_GET subscription. > > Cc: Catalin Marinas <catalin.marinas@arm.com> > Cc: Will Deacon <will@kernel.org> > Cc: Andrew Morton <akpm@linux-foundation.org> > Cc: linux-arm-kernel@lists.infradead.org > Cc: linux-mm@kvack.org > Cc: linux-kernel@vger.kernel.org > Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com> > --- > arch/arm64/include/asm/hugetlb.h | 6 ------ > 1 file changed, 6 deletions(-) > > diff --git a/arch/arm64/include/asm/hugetlb.h b/arch/arm64/include/asm/hugetlb.h > index 2eb6c234d594..b88878ddc88b 100644 > --- a/arch/arm64/include/asm/hugetlb.h > +++ b/arch/arm64/include/asm/hugetlb.h > @@ -17,12 +17,6 @@ > extern bool arch_hugetlb_migration_supported(struct hstate *h); > #endif > > -#define __HAVE_ARCH_HUGE_PTEP_GET > -static inline pte_t huge_ptep_get(pte_t *ptep) > -{ > - return READ_ONCE(*ptep); > -} Hmm, I'm nervous about dropping the READ_ONCE() here. We added them after running into page-table issues with THP [1] and it's really important to use them consistently to avoid hitting that again. If the generic code used READ_ONCE(), I'd be happy to switch to it. Will [1] https://lore.kernel.org/lkml/1506527369-19535-1-git-send-email-will.deacon@arm.com/
On 05/06/2020 01:13 PM, Will Deacon wrote: > On Wed, May 06, 2020 at 11:42:12AM +0530, Anshuman Khandual wrote: >> Platform specific huge_ptep_get() is required only when fetching the huge >> PTE involves more than just dereferencing the page table pointer. This is >> not the case on arm64 platform. Hence huge_ptep_pte() can be dropped along >> with it's __HAVE_ARCH_HUGE_PTEP_GET subscription. >> >> Cc: Catalin Marinas <catalin.marinas@arm.com> >> Cc: Will Deacon <will@kernel.org> >> Cc: Andrew Morton <akpm@linux-foundation.org> >> Cc: linux-arm-kernel@lists.infradead.org >> Cc: linux-mm@kvack.org >> Cc: linux-kernel@vger.kernel.org >> Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com> >> --- >> arch/arm64/include/asm/hugetlb.h | 6 ------ >> 1 file changed, 6 deletions(-) >> >> diff --git a/arch/arm64/include/asm/hugetlb.h b/arch/arm64/include/asm/hugetlb.h >> index 2eb6c234d594..b88878ddc88b 100644 >> --- a/arch/arm64/include/asm/hugetlb.h >> +++ b/arch/arm64/include/asm/hugetlb.h >> @@ -17,12 +17,6 @@ >> extern bool arch_hugetlb_migration_supported(struct hstate *h); >> #endif >> >> -#define __HAVE_ARCH_HUGE_PTEP_GET >> -static inline pte_t huge_ptep_get(pte_t *ptep) >> -{ >> - return READ_ONCE(*ptep); >> -} > > Hmm, I'm nervous about dropping the READ_ONCE() here. We added them after > running into page-table issues with THP [1] and it's really important to > use them consistently to avoid hitting that again. > > If the generic code used READ_ONCE(), I'd be happy to switch to it. Sure, will add READ_ONCE() in the generic huge_ptep_get(). AFAICS it should not cause any problem for other platforms (but let me know otherwise). > > Will > > [1] https://lore.kernel.org/lkml/1506527369-19535-1-git-send-email-will.deacon@arm.com/ >
diff --git a/arch/arm64/include/asm/hugetlb.h b/arch/arm64/include/asm/hugetlb.h index 2eb6c234d594..b88878ddc88b 100644 --- a/arch/arm64/include/asm/hugetlb.h +++ b/arch/arm64/include/asm/hugetlb.h @@ -17,12 +17,6 @@ extern bool arch_hugetlb_migration_supported(struct hstate *h); #endif -#define __HAVE_ARCH_HUGE_PTEP_GET -static inline pte_t huge_ptep_get(pte_t *ptep) -{ - return READ_ONCE(*ptep); -} - static inline int is_hugepage_only_range(struct mm_struct *mm, unsigned long addr, unsigned long len) {
Platform specific huge_ptep_get() is required only when fetching the huge PTE involves more than just dereferencing the page table pointer. This is not the case on arm64 platform. Hence huge_ptep_pte() can be dropped along with it's __HAVE_ARCH_HUGE_PTEP_GET subscription. Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Will Deacon <will@kernel.org> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: linux-arm-kernel@lists.infradead.org Cc: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com> --- arch/arm64/include/asm/hugetlb.h | 6 ------ 1 file changed, 6 deletions(-)