From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38765) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bRs3o-0001Hl-6E for qemu-devel@nongnu.org; Mon, 25 Jul 2016 22:25:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bRs3j-0001Q5-5s for qemu-devel@nongnu.org; Mon, 25 Jul 2016 22:25:31 -0400 Received: from mx1.redhat.com ([209.132.183.28]:47420) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bRs3i-0001Q1-Vx for qemu-devel@nongnu.org; Mon, 25 Jul 2016 22:25:27 -0400 References: <20160719143316.9811-1-s.garzarella@evidence.eu.com> From: Jason Wang Message-ID: <5796CA11.6060204@redhat.com> Date: Tue, 26 Jul 2016 10:25:21 +0800 MIME-Version: 1.0 In-Reply-To: <20160719143316.9811-1-s.garzarella@evidence.eu.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH] net: flush NetQueue before to send new packets List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefano Garzarella , qemu-devel@nongnu.org On 2016=E5=B9=B407=E6=9C=8819=E6=97=A5 22:33, Stefano Garzarella wrote: > qemu_net_queue_send() and qemu_net_queue_send_iov() can flush > enqueued packets before delivering a new packet, in this way the origin= al > packet ordering is preserved. > > Signed-off-by: Stefano Garzarella > --- > net/queue.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/net/queue.c b/net/queue.c > index 9c32abd..aa18e5e 100644 > --- a/net/queue.c > +++ b/net/queue.c > @@ -196,14 +196,14 @@ ssize_t qemu_net_queue_send(NetQueue *queue, > return 0; > } > =20 > + qemu_net_queue_flush(queue); > + > ret =3D qemu_net_queue_deliver(queue, sender, flags, data, size); > if (ret =3D=3D 0) { > qemu_net_queue_append(queue, sender, flags, data, size, sent_= cb); > return 0; > } > =20 > - qemu_net_queue_flush(queue); > - > return ret; > } > =20 > @@ -221,14 +221,14 @@ ssize_t qemu_net_queue_send_iov(NetQueue *queue, > return 0; > } > =20 > + qemu_net_queue_flush(queue); > + > ret =3D qemu_net_queue_deliver_iov(queue, sender, flags, iov, iov= cnt); > if (ret =3D=3D 0) { > qemu_net_queue_append_iov(queue, sender, flags, iov, iovcnt, = sent_cb); > return 0; > } > =20 > - qemu_net_queue_flush(queue); > - > return ret; > } > =20 Queued for 2.8. Thanks