[dpdk-dev] [PATCH 07/14] net/virtio: implement transmit path for packed queues
Jens Freimann
jfreimann at redhat.com
Tue Feb 13 10:10:18 CET 2018
On Mon, Feb 12, 2018 at 09:16:27PM +0800, Jason Wang wrote:
>
>
>On 2018???01???29??? 22:11, Jens Freimann wrote:
>>+/* Cleanup from completed transmits. */
>>+static void
>>+virtio_xmit_cleanup(struct virtqueue *vq)
>>+{
>>+ uint16_t idx;
>>+ uint16_t size = vq->vq_nentries;
>>+ struct vring_desc_1_1 *desc = vq->vq_ring.desc_1_1;
>>+
>>+ 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) {
>>+ vq->vq_free_cnt++;
>>+ idx = ++vq->vq_used_cons_idx & (size - 1);
>>+ }
>>+ vq->vq_free_cnt++;
>>+ idx = ++vq->vq_used_cons_idx & (size - 1);
>>+ }
>>+}
>
>This looks like a violation of the spec. In 2.6.6 Next Flag:
>Descriptor Chaining. It said:
>
>"VIRTQ_DESC_F_NEXT is reserved in used descriptors, and should be
>ignored by drivers."
I think you are right. I will rework this bit.
>
>(Looking at the device implementation, it was in fact an in order
>device which is said to be no in the cover).
Looking into this as well.
Thanks for the review!
regards,
Jens
More information about the dev
mailing list