Message ID | 20221201195718.1409782-1-vipinsh@google.com (mailing list archive) |
---|---|
Headers | show |
Series | NUMA aware page table allocation | expand |
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.