[dpdk-dev] [PATCH 07/17] net/virtio: implement transmit path for packed queues
Jens Freimann
jfreimann at redhat.com
Mon Mar 19 10:23:11 CET 2018
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
More information about the dev
mailing list