On 10/23/2015 1:56 PM, Tan, Jianfeng wrote:
> On 10/23/2015 1:51 PM, Jianfeng wrote:
>
>> -----Original Message-----
>> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Huawei Xie
>> Sent: Thursday, October 22, 2015 8:10 PM
>> To: dev at dpdk.org
>> Subject: [dpdk-dev] [PATCH v4 4/7] virtio: fill RX avail ring with blank 
>> mbufs
>> +int __attribute__((cold))
>> +virtqueue_enqueue_recv_refill_simple(struct virtqueue *vq,
>> +    struct rte_mbuf *cookie)
>> +{
>> +    struct vq_desc_extra *dxp;
>> +    struct vring_desc *start_dp;
>> +    uint16_t desc_idx;
>> +
>> +    desc_idx = vq->vq_avail_idx & (vq->vq_nentries - 1);
>> +    dxp = &vq->vq_descx[desc_idx];
>> +    dxp->cookie = (void *)cookie;
>> +    vq->sw_ring[desc_idx] = cookie;
>> +
>> +    start_dp = vq->vq_ring.desc;
>> +    start_dp[desc_idx].addr = (uint64_t)((uintptr_t)cookie-
>>> buf_physaddr +
>> +            RTE_PKTMBUF_HEADROOM - sizeof(struct virtio_net_hdr));
> Please use RTE_MBUF_DATA_DMA_ADDR instead of "buf_physaddr + 
> RTE_PKTMBUF_HEADROOM".
RTE_MBUF_DATA_DMA_ADDR is used for tx. For rx, we should use
RTE_MBUF_DATA_DMA_DEFAULT. 
We could use a separate patch to fix all this in virito code.
I remember there is a patch to move
RTE_MBUF_DATA_DMA_ADDR/RTE_MBUF_DATA_DMA_DEFAULT definition into the
common header file.
>
>> +    start_dp[desc_idx].len = cookie->buf_len -
>> +            RTE_PKTMBUF_HEADROOM + sizeof(struct virtio_net_hdr);
>> +
>> +    vq->vq_free_cnt--;
>> +    vq->vq_avail_idx++;
>> +
>> +    return 0;
>> +}
>> --
>> 1.8.1.4
>

Reply via email to