On Thu, 03/17 11:01, Cornelia Huck wrote: > As discussed in the virtio-blk dataplane start/stop thread, the > various transports contain a lot of similar/identical boilerplate > code for setting up ioeventfds. This makes the code hard to follow. > > Let's drag all of the common handling into the virtio-bus layer, > hopefully reducing both the boilerplate code and the number of > indirections. > > This RFC patchset is the result of hacking this up quickly, and I > was rather surprised that it did not die immediately on my s390 > system (which is all I 'tested'). So be warned :) > > Feedback about the approach and the interface would be good.
I tested this series with the two assertions (Paolo's "test" reentrancy detection and my "assert(is_in_iothread())", in virtio-blk request handler), and it seems to fix the crash . (A few seconds to crash on master vs. several hours survival). Fam > > Cornelia Huck (6): > virtio-bus: common ioeventfd infrastructure > virtio-bus: have callers tolerate new host notifier api > virtio-ccw: convert to ioeventfd callbacks > virtio-pci: convert to ioeventfd callbacks > virtio-mmio: convert to ioeventfd callbacks > virtio-bus: remove old set_host_notifier callback > > hw/block/dataplane/virtio-blk.c | 6 +- > hw/s390x/virtio-ccw.c | 133 > ++++++++++++++-------------------------- > hw/scsi/virtio-scsi-dataplane.c | 9 ++- > hw/virtio/vhost.c | 13 ++-- > hw/virtio/virtio-bus.c | 108 ++++++++++++++++++++++++++++++++ > hw/virtio/virtio-mmio.c | 128 +++++++++++++------------------------- > hw/virtio/virtio-pci.c | 124 +++++++++++++------------------------ > include/hw/virtio/virtio-bus.h | 15 ++++- > 8 files changed, 263 insertions(+), 273 deletions(-) > > -- > 2.6.5 >