On Thu, 9 Aug 2012, Stefan Hajnoczi wrote: > On Thu, Aug 09, 2012 at 04:45:54PM +0200, Paolo Bonzini wrote: > > Luigi reminded me of these patches... > > > > When the guests replenish the receive ring buffer, the network device > > should flush its queue of pending packets. This is done with > > qemu_flush_queued_packets, and patches 2+3 add the missing call to > > two drivers, e1000 and xen. More may come later---no time to test > > them now. > > > > However, the device should not just retry delivery of packets that were > > already read from the tap device, it should also try to read more packets > > from the tap device. The latter requires a qemu_notify_event to force > > recomputation of the fd_sets. virtio already does this, but it is a > > layering violation; patch 1 moves the call from virtio to the network > > subsystem, so that e1000 and xen will then get it for free. > > > > Paolo Bonzini (3): > > net: notify iothread after flushing queue > > e1000: flush queue whenever can_receive can go from false to true > > xen: flush queue when getting an event > > > > hw/e1000.c | 4 ++++ > > hw/virtio-net.c | 4 ---- > > hw/xen_nic.c | 1 + > > net.c | 7 ++++++- > > net/queue.c | 5 +++-- > > net/queue.h | 2 +- > > 6 file modificati, 15 inserzioni(+), 8 rimozioni(-) > > Looks good for QEMU 1.2. I'll give Jan and Stefano time to respond, if > they want.
The patches are fine by me