Re: [PATCH] tlb: hugetlb: Add arm64 contiguous hint awareness

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

 





On 24/03/2022 15:58, Peter Zijlstra wrote:
On Thu, Mar 24, 2022 at 02:35:44PM +0000, Steve Capper wrote:
It occurs to me that perhaps this can be written like:

	unsigned long _sz = huge_page_size(h);
	if (_sz >= P4D_SIZE)
		tlb_flush_p4d_range(tlb, address, _sz);
	else if (_sz >= PUD_SIZE)
		tlb_flush_pud_range(tlb, address, _sz);
	else if (_sz >= PMD_SIZE)
		tlb_flush_pmd_range(tlb, address, _sz);
	else
		tlb_flush_pte_range(tlb, address, _sz);
	__tlb_remove_tlb_entry(tlb, ptep, address);

And then it can still be generic..

Thanks Peter,
My concern with that would be the CONT_PMD_SIZE case would result in a call
to tlb_flush_pte_range rather than tlb_flush_pmd_range causing some of the
level parameters to be different.

arch/arm64/include/asm/pgtable-hwdef.h:#define CONT_PMD_SIZE            (CONT_PMDS * PMD_SIZE)

Seems to imply CONT_PMD_SIZE >= PMD_SIZE, and would thus tickle:

	else if (_sz >= PMD_SIZE)
		tlb_flush_pmd_range(tlb, address, _sz);

Or am I confused?

Nope, it was me who was confused :-).
I misread one of the the lines sorry.
Yeah this should be fine for arm64.

Cheers,
--
Steve




[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