Re: [PATCH v3 00/15] KVM: Dynamically size memslot arrays

From: Sean Christopherson
Date: Fri Dec 13 2019 - 15:01:54 EST


On Tue, Dec 03, 2019 at 02:14:33PM -0800, Sean Christopherson wrote:
> On Thu, Oct 24, 2019 at 04:07:29PM -0700, Sean Christopherson wrote:
> > The end goal of this series is to dynamically size the memslot array so
> > that KVM allocates memory based on the number of memslots in use, as
> > opposed to unconditionally allocating memory for the maximum number of
> > memslots. On x86, each memslot consumes 88 bytes, and so with 2 address
> > spaces of 512 memslots, each VM consumes ~90k bytes for the memslots.
> > E.g. given a VM that uses a total of 30 memslots, dynamic sizing reduces
> > the memory footprint from 90k to ~2.6k bytes.
> >
> > The changes required to support dynamic sizing are relatively small,
> > e.g. are essentially contained in patches 14/15 and 15/15. Patches 1-13
> > clean up the memslot code, which has gotten quite crusty, especially
> > __kvm_set_memory_region(). The clean up is likely not strictly necessary
> > to switch to dynamic sizing, but I didn't have a remotely reasonable
> > level of confidence in the correctness of the dynamic sizing without first
> > doing the clean up.
> >
> > Christoffer, I added your Tested-by to the patches that I was confident
> > would be fully tested based on the desription of what you tested. Let me
> > know if you disagree with any of 'em.
> >
> > v3:
> > - Fix build errors on PPC and MIPS due to missed params during
> > refactoring [kbuild test robot].
> > - Rename the helpers for update_memslots() and add comments describing
> > the new algorithm and how it interacts with searching [Paolo].
> > - Remove the unnecessary and obnoxious warning regarding memslots being
> > a flexible array [Paolo].
> > - Fix typos in the changelog of patch 09/15 [Christoffer].
> > - Collect tags [Christoffer].
> >
> > v2:
> > - Split "Drop kvm_arch_create_memslot()" into three patches to move
> > minor functional changes to standalone patches [Janosch].
> > - Rebase to latest kvm/queue (f0574a1cea5b, "KVM: x86: fix ...")
> > - Collect an Acked-by and a Reviewed-by
>
> Paolo, do you want me to rebase this to the latest kvm/queue?

Ping.

Applies cleanly on the current kvm/queue and nothing caught fire in
testing (though I only re-tested the series as a whole).