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. Stefan
