[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 0/6] proposal to make hostmem listener RAM un
From: |
liu ping fan |
Subject: |
Re: [Qemu-devel] [PATCH v2 0/6] proposal to make hostmem listener RAM unplug safe |
Date: |
Mon, 6 May 2013 09:42:34 +0800 |
On Sat, May 4, 2013 at 5:53 PM, Paolo Bonzini <address@hidden> wrote:
> 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?
>
FlatView is used for all the listeners, including for mmio dispatching,
which aims to mapping from hwaddr to DeviceState for dispatching service.
While here, we mapping from hwaddr to hva.
> Perhaps the right thing to do is to add the appropriate locking and
> RCU-style updating to address_space_update_topology and
RCU implementation is data struct related, and each listener has its
local table, so I think it is more reasonable to implement them
separately. And vhost has its own RCU implement in kernel already.
> 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...
>
In fact, I think, HostMem listener can be an substitute for
cpu_physical_memory_map(), the main issue can be the migration
support. But before getting big patches, I hope to have this smaller
and simpler one.
Regards,
Pingfan
> 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(-)
>>
>
- [Qemu-devel] [PATCH v2 4/6] hostmem: hostmem listener pin RAM-Device by refcnt, (continued)