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? -- Alexey