From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jens Freimann Subject: Re: [PATCH 07/17] net/virtio: implement transmit path for packed queues Date: Mon, 19 Mar 2018 10:23:11 +0100 Message-ID: <20180319092311.3pfnt7ctfgg7dmod@dhcp-192-241.str.redhat.com> References: <20180316152120.13199-1-jfreimann@redhat.com> <20180316152120.13199-8-jfreimann@redhat.com> <20180319090443.7f23v4m7h7wpuqih@debian> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Cc: dev@dpdk.org, yliu@fridaylinux.org, maxime.coquelin@redhat.com, mst@redhat.com To: Tiwei Bie Return-path: Received: from mx1.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by dpdk.org (Postfix) with ESMTP id CD2FF34F2 for ; Mon, 19 Mar 2018 10:23:19 +0100 (CET) Content-Disposition: inline In-Reply-To: <20180319090443.7f23v4m7h7wpuqih@debian> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Mon, Mar 19, 2018 at 05:04:43PM +0800, Tiwei Bie wrote: >On Fri, Mar 16, 2018 at 04:21:10PM +0100, Jens Freimann wrote: >[...] >> diff --git a/drivers/net/virtio/Makefile b/drivers/net/virtio/Makefile >> index 6c2c996..aa1e600 100644 >> --- a/drivers/net/virtio/Makefile >> +++ b/drivers/net/virtio/Makefile >> @@ -28,6 +28,7 @@ LIBABIVER := 1 >> SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtqueue.c >> SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_pci.c >> SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_rxtx.c >> +SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_rxtx_1.1.c > >There is no need to introduce this file just for Tx. I agree, this is a leftover from the prototype. I'll merge it into virtio_rxtx.c > >> SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_ethdev.c >> SRCS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio_rxtx_simple.c >[...] >> @@ -603,7 +605,8 @@ struct rte_virtio_xstats_name_off { >> } >> >> vtpci_reset(hw); >> - virtio_dev_free_mbufs(dev); >> + if (!vtpci_packed_queue(hw)) >> + virtio_dev_free_mbufs(dev); > >I think we also need to free mbufs for packed ring. yes, will fix > >> virtio_free_queues(hw); >> } >[...] >> +/* Cleanup from completed transmits. */ >> +static void >> +virtio_xmit_cleanup(struct virtqueue *vq) >> +{ >> + uint16_t idx; >> + uint16_t size = vq->vq_nentries; >> + struct vring_desc_packed *desc = vq->vq_ring.desc_packed; >> + >> + idx = vq->vq_used_cons_idx & (size - 1); >> + while (desc_is_used(&desc[idx]) && >> + vq->vq_free_cnt < size) { >> + while (desc[idx].flags & VRING_DESC_F_NEXT) { > >We can't use VRING_DESC_F_NEXT when handling used >descriptors. Already fixes this but must have been lost in a rebase. Will send it in v3. thanks for the review! regards, Jens > >Thanks