qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC PATCH qemu 3/4] memory: Share flat views and dispa


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [RFC PATCH qemu 3/4] memory: Share flat views and dispatch trees between address spaces
Date: Mon, 11 Sep 2017 09:40:06 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1

On 07/09/2017 11:20, Alexey Kardashevskiy wrote:
>  
>      /* Accessed via RCU.  */
>      struct FlatView *current_map;
>  
>      int ioeventfd_nb;
>      struct MemoryRegionIoeventfd *ioeventfds;
> -    struct AddressSpaceDispatch *dispatch;
> -    struct AddressSpaceDispatch *next_dispatch;
> +

The rough idea of the patch matches my suggestion indeed.  However, I am
not sure why all of the changes in patch 2 are needed.

Once you have built the FlatView and the dispatch within it, you can
still cache its dispatch tree in as->dispatch, and free it with RCU from
flatview_destroy.  This removes the need to use call_rcu from
flatview_unref.

In addition, you could change the computation of FlatView's root to
resolve 2^64-sized aliases; also set it to NULL if the AddressSpace's
root is disabled or the alias it resolves to is disabled (and so on
recursively until a non-alias is found).  This should remove the need
for address_space_root() and the change to pci_init_bus_master.

Paolo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]