]> Git Repo - qemu.git/commit
memory: add a per-AddressSpace list of listeners
authorPaolo Bonzini <[email protected]>
Thu, 22 Sep 2016 14:23:06 +0000 (16:23 +0200)
committerPaolo Bonzini <[email protected]>
Mon, 24 Oct 2016 13:27:19 +0000 (15:27 +0200)
commit9a54635dcb51a3fcf7507af630168f514a8cd4e7
tree522b330a6579147d2d9c65a807ea804b1d48e240
parentd45fa784cd0c111131696808d1168259d66b7519
memory: add a per-AddressSpace list of listeners

This speeds up MEMORY_LISTENER_CALL noticeably.  Right now,
with many PCI devices you have N regions added to M AddressSpaces
(M = # PCI devices with bus-master enabled) and each call looks
up the whole listener list, with at least M listeners in it.
Because most of the regions in N are BARs, which are also roughly
proportional to M, the whole thing is O(M^3).  This changes it
to O(M^2), which is the best we can do without rewriting the
whole thing.

Signed-off-by: Paolo Bonzini <[email protected]>
include/exec/memory.h
memory.c
This page took 0.033699 seconds and 4 git commands to generate.