Re: [Qemu-devel] [RFC PATCH qemu] exec: Destroy dispatch immediately

2017-08-29 Thread Alexey Kardashevskiy
On 25/08/17 18:53, Paolo Bonzini wrote: > On 25/08/2017 10:31, Alexey Kardashevskiy wrote: >> Otherwise old dispatch holds way too much memory before RCU gets >> a chance to free old dispatches. >> >> Signed-off-by: Alexey Kardashevskiy >> --- >> >> This is a follow-up to the "Memory use with >100

Re: [Qemu-devel] [RFC PATCH qemu] exec: Destroy dispatch immediately

2017-08-25 Thread Paolo Bonzini
On 25/08/2017 15:19, David Gibson wrote: > On Fri, Aug 25, 2017 at 11:57:26AM +0200, Paolo Bonzini wrote: >> On 25/08/2017 11:22, Peter Maydell wrote: >>> On 25 August 2017 at 09:53, Paolo Bonzini wrote: The solution is to: 1) share the FlatView structures if they refer to the same root

Re: [Qemu-devel] [RFC PATCH qemu] exec: Destroy dispatch immediately

2017-08-25 Thread Peter Maydell
On 25 August 2017 at 14:19, David Gibson wrote: > Hm. Why do we need to construct full ASes for virtio-blk, rather than > just MRs? It's the PCI layer that's doing it, but the overall reason is because virtio-blk needs to make memory transactions (DMA reads and writes). The AddressSpace is our c

Re: [Qemu-devel] [RFC PATCH qemu] exec: Destroy dispatch immediately

2017-08-25 Thread David Gibson
On Fri, Aug 25, 2017 at 11:57:26AM +0200, Paolo Bonzini wrote: > On 25/08/2017 11:22, Peter Maydell wrote: > > On 25 August 2017 at 09:53, Paolo Bonzini wrote: > >> The solution is to: 1) share the FlatView structures if they refer to > >> the same root memory region; 2) have one AddressSpaceDispa

Re: [Qemu-devel] [RFC PATCH qemu] exec: Destroy dispatch immediately

2017-08-25 Thread Paolo Bonzini
On 25/08/2017 11:16, Alexey Kardashevskiy wrote: > On 25/08/17 19:01, Paolo Bonzini wrote: >> On 25/08/2017 10:31, Alexey Kardashevskiy wrote: >>> Each address_space_init() updates topology for _every_ address space. >> >> And finally, does this patch help with the above? >> >> diff --git a/memory.

Re: [Qemu-devel] [RFC PATCH qemu] exec: Destroy dispatch immediately

2017-08-25 Thread Paolo Bonzini
On 25/08/2017 11:22, Peter Maydell wrote: > On 25 August 2017 at 09:53, Paolo Bonzini wrote: >> The solution is to: 1) share the FlatView structures if they refer to >> the same root memory region; 2) have one AddressSpaceDispatch per >> FlatView instead of one per AddressSpace, so that FlatView r

Re: [Qemu-devel] [RFC PATCH qemu] exec: Destroy dispatch immediately

2017-08-25 Thread Peter Maydell
On 25 August 2017 at 09:53, Paolo Bonzini wrote: > The solution is to: 1) share the FlatView structures if they refer to > the same root memory region; 2) have one AddressSpaceDispatch per > FlatView instead of one per AddressSpace, so that FlatView reference > counting takes care of clearing the

Re: [Qemu-devel] [RFC PATCH qemu] exec: Destroy dispatch immediately

2017-08-25 Thread Alexey Kardashevskiy
On 25/08/17 19:01, Paolo Bonzini wrote: > On 25/08/2017 10:31, Alexey Kardashevskiy wrote: >> Each address_space_init() updates topology for _every_ address space. > > And finally, does this patch help with the above? > > diff --git a/memory.c b/memory.c > index c0adc35..97c16cc 100644 > --- a/me

Re: [Qemu-devel] [RFC PATCH qemu] exec: Destroy dispatch immediately

2017-08-25 Thread Paolo Bonzini
On 25/08/2017 10:31, Alexey Kardashevskiy wrote: > Each address_space_init() updates topology for _every_ address space. And finally, does this patch help with the above? diff --git a/memory.c b/memory.c index c0adc35..97c16cc 100644 --- a/memory.c +++ b/memory.c @@ -2607,10 +2607,16 @@ void memo

Re: [Qemu-devel] [RFC PATCH qemu] exec: Destroy dispatch immediately

2017-08-25 Thread Paolo Bonzini
On 25/08/2017 10:31, Alexey Kardashevskiy wrote: > > Interestingly, mem_add() from exec.c is called twice: > as as->dispatch_listener.region_add() and > as as->dispatch_listener.region_nop() - I did not understand > the trick but it does not work if I remove the .region_nop() hook. > How does it w

Re: [Qemu-devel] [RFC PATCH qemu] exec: Destroy dispatch immediately

2017-08-25 Thread Paolo Bonzini
On 25/08/2017 10:31, Alexey Kardashevskiy wrote: > Otherwise old dispatch holds way too much memory before RCU gets > a chance to free old dispatches. > > Signed-off-by: Alexey Kardashevskiy > --- > > This is a follow-up to the "Memory use with >100 virtio devices" > thread. > > I assume this i

[Qemu-devel] [RFC PATCH qemu] exec: Destroy dispatch immediately

2017-08-25 Thread Alexey Kardashevskiy
Otherwise old dispatch holds way too much memory before RCU gets a chance to free old dispatches. Signed-off-by: Alexey Kardashevskiy --- This is a follow-up to the "Memory use with >100 virtio devices" thread. I assume this is a dirty hack (which fixes the problem though) and I wonder what th