On 21/09/17 10:02, Alexey Kardashevskiy wrote:
> On 21/09/17 03:15, Paolo Bonzini wrote:
>> On 20/09/2017 13:46, Alexey Kardashevskiy wrote:
>>> Address spaces get to keep a root MR (alias or not) but FlatView stores
>>> the actual MR as this is going to be used later on to decide whether to
>>> share a particular FlatView or not.
>>>
>>> Signed-off-by: Alexey Kardashevskiy <a...@ozlabs.ru>
>>> ---
>>> Changes:
>>> v4:
>>> * s/memory_region_unalias_entire/memory_region_get_flatview_root/
>>
>> Did you try the idea of checking for single-child regions too?
> 
> No, I did not, I do not see how I can actually measure the difference - the
> PCI and virtio root MRs or single child MRs are unique anyway, I can save
> some time by just checking for 2 @enabled flags instead of rendering a
> FlatView but rendering such cases itself is fast as well. I'll give a try
> though.

I tried. memory_region_get_flatview_root() returns a last child which still
covers the same space as the root; generate_memory_topology() checks for
@enabled first and only if it is enabled - renders a new FV (this solves
PCI busmater).

With 256 CPUs and 256 virtio devices this saves 0.1s (20.4s -> 20.3s) and
100MB of RAM (14.38G -> 14.28G) :) I'll push it out anyway.


-- 
Alexey

Reply via email to