----- Original Message ----- > From: "Alexey Kardashevskiy" <a...@ozlabs.ru> > To: "Paolo Bonzini" <pbonz...@redhat.com>, qemu-devel@nongnu.org > Sent: Thursday, September 21, 2017 2:02:02 AM > Subject: Re: [PATCH qemu v4 18/18] memory: Give > memory_region_transaction_commit a hint > > On 21/09/17 03:14, Paolo Bonzini wrote: > > On 20/09/2017 13:46, Alexey Kardashevskiy wrote: > >> This extends memory_region_transaction_commit() to receive a MR as > >> if it is a root MR or its topmost parent is, then we can only rebuild > >> its FlatView and update it for address spaces sharing it. > >> > >> The optimization gets disabled though if there is full update about to > >> commit. > >> > >> memory_region_set_enabled() is a special case here, it does not use > >> a hint when MR is being disabled. > >> > >> On POWER8 with 255 CPUs, 255 virtio-net, 40 PCI bridges guest this brings > >> down the boot time from 20s to 12s, the total memory footprint > >> goes down (17G -> 8G). > > > > I think this is incorrect if MR has an alias (no matter if enabling or > > disabling)? > > Hmmm. Right. I can add a aliases_nr counter to an MR (it does not even have > to go down as aliases are not creared/destroyed often) and take the slow > path if it is not zero, does it make sense?
It should be a separate series anyway. Let's get the infrastructure in so it's easier to experiment. Paolo