On 08/10/2012 09:44 AM, liu ping fan wrote: >>> In the previous discussion, you have suggest add dev->ref++ in >>> core_region_add. But I think, if we can move it to higher layer -- >>> memory_region_{add,del}_subregion, so we can avoid to duplicate do >>> this in other xx_region_add. >> >> Why would other memory listeners be impacted? They all operate under >> the big qemu lock. If they start using devices outside the lock, then >> they need to take a reference. >> > Yes, if unplug path in the protection of big lock. > And just one extra question, for ram-unplug scene, how do we protect from: > updater: ram-unplug -->qemu free() --> brk() invalidate this vaddr interval > reader: vhost-thread copy data from the interval > I guess something like lock/ref used by them, but can not find such > mechanism in vhost_set_memory() to protect the scene against > vhost_worker()
VHOST_SET_MEM_TABLE uses synchronize_srcu() to ensure no readers are active before returning. -- error compiling committee.c: too many arguments to function