From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:57245) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T6uYr-00059d-HF for qemu-devel@nongnu.org; Wed, 29 Aug 2012 22:32:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1T6uYq-0000g6-M7 for qemu-devel@nongnu.org; Wed, 29 Aug 2012 22:32:49 -0400 Received: from mx1.redhat.com ([209.132.183.28]:18724) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T6uYq-0000fx-DL for qemu-devel@nongnu.org; Wed, 29 Aug 2012 22:32:48 -0400 Message-ID: <503ED0C1.7040809@redhat.com> Date: Thu, 30 Aug 2012 10:32:33 +0800 From: Amos Kong MIME-Version: 1.0 References: <1344523557-28266-1-git-send-email-pbonzini@redhat.com> In-Reply-To: <1344523557-28266-1-git-send-email-pbonzini@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 0/3] net: add missing queue flush for e1000 and xen List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: Luigi Rizzo , Stefano Stabellini , Jan Kiszka , qemu-devel@nongnu.org, Stefan Hajnoczi On 09/08/12 22:45, 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(-) LGTM. Reviewed-by: Amos Kong -- Amos.