Re: [Patch v2 0/2] NUMA aware page table allocation

From: David Matlack
Date: Thu Dec 08 2022 - 19:21:26 EST


On Thu, Dec 01, 2022 at 11:57:16AM -0800, Vipin Sharma wrote:
> Hi,
>
> This series improves page table accesses by allocating page tables on
> the same NUMA node where underlying physical page is present.
>
> Currently page tables are allocated during page faults and page splits.
> In both instances page table location will depend on the current thread
> mempolicy. This can create suboptimal placement of page tables on NUMA
> node, for example, thread doing eager page split is on different NUMA
> node compared to page it is splitting.
>
> Reviewers please provide suggestion to the following:
>
> 1. Module parameter is true by default, which means this feature will
> be enabled by default. Is this okay or should I set it to false?
>
> 2. I haven't reduced KVM_ARCH_NR_OBJS_PER_MEMORY_CACHE considering that
> it might not be too much of an impact as only online nodes are filled
> during topup phase and in many cases some of these nodes will never
> be refilled again. Please let me know if you want this to be
> reduced.
>
> 3. I have tried to keep everything in x86/mmu except for some changes in
> virt/kvm/kvm_main.c. I used __weak function so that only x86/mmu will
> see the change, other arch nothing will change. I hope this is the
> right approach.
>
> 4. I am not sure what is the right way to split patch 2. If you think
> this is too big for a patch please let me know what would you prefer.

I agree it's too big. The split_shadow_page_cache changes can easily be
split into a separate commit.