On Mon, Apr 23, 2018 at 12:59 AM Christian Borntraeger < borntraeger@xxxxxxxxxx> wrote: > On 04/23/2018 09:41 AM, Christian Borntraeger wrote: > > > > > > On 04/21/2018 12:07 AM, Marc Orr wrote: > >> First off---thanks for reviewing my patch! > >> > >> With respect to the size of the struct, here's what I'm seeing on an > >> upstream > >> version of the kernel: > >> > >> (gdb) p sizeof(struct kvm) > >> $1 = 42200 > >> (gdb) p sizeof(struct kvm_arch) > >> $2 = 35496 > > > > Yes, I looked at an older kernel on x86. Sorry about that. The newer kernels > > certainly have grown. Would be interesting to see why. Can you run > > pahole (usually in the package dwarves) on you kernel and search for > > "struct kvm " > Seems to be > struct hlist_head mmu_page_hash[4096]; /* 24 32768 */ > in kvm_arch. > This is now much larger mostly due to > commit 114df303a7eeae8b50ebf68229b7e647714a9bea > kvm: x86: reduce collisions in mmu_page_hash > So maybe it is enough to allocate mmu_page_hash seperately? Adding David Matlack > for opinions. Allocating mmu_page_hash separately would not create any issues I can think of. But Mark's concern about future bloat still remains. One option to move forward would be to make this change x86-specific by overriding kvm_arch_{alloc,free}_vm. Other architectures could do the same once they check that it's safe.