Il 03/05/2013 04:45, Liu Ping Fan ha scritto: > v1->v2: > 1.split RCU prepared style update and monitor the RAM-Device refcnt into > two patches (patch 2,4) > 2.introduce AddrSpaceMem, which is similar to HostMem, but based on address > space, while > the original HostMem only server system memory address space
This looks suspiciously similar to FlatView, doesn't it? Perhaps the right thing to do is to add the appropriate locking and RCU-style updating to address_space_update_topology and memory_region_find. (And replacing flatview_destroy with ref/unref similar to HostMem in your patch 2). Then just switch dataplane to use memory_region_find... Paolo > Liu Ping Fan (6): > hostmem: make hostmem single, not per Vring related > hostmem: AddressSpace has its own map and maintained by RCU prepared > style > memory: add ref/unref interface for MemroyRegionOps > hostmem: hostmem listener pin RAM-Device by refcnt > Vring: use hostmem's RAM safe api > virtio-blk: release reference to RAM's memoryRegion > > exec.c | 1 + > hw/block/dataplane/virtio-blk.c | 52 ++++++++--- > hw/virtio/dataplane/hostmem.c | 168 > +++++++++++++++++++++++++-------- > hw/virtio/dataplane/vring.c | 100 +++++++++++++++----- > include/exec/memory.h | 11 ++ > include/hw/virtio/dataplane/hostmem.h | 25 +++--- > include/hw/virtio/dataplane/vring.h | 5 +- > memory.c | 18 ++++ > 8 files changed, 289 insertions(+), 91 deletions(-) >