[dpdk-dev] [PATCH v3 20/21] net/virtio: add support for event suppression

Jens Freimann jfreimann at redhat.com
Mon Apr 9 08:09:20 CEST 2018


On Sun, Apr 08, 2018 at 02:07:50PM +0800, Tiwei Bie wrote:
>On Thu, Apr 05, 2018 at 12:10:30PM +0200, Jens Freimann wrote:
>> Signed-off-by: Jens Freimann <jfreimann at redhat.com>
>> ---
>>  drivers/net/virtio/virtio_ethdev.c |  2 +-
>>  drivers/net/virtio/virtio_ethdev.h |  2 +-
>>  drivers/net/virtio/virtio_rxtx.c   | 15 +++++++-
>>  drivers/net/virtio/virtqueue.h     | 73 ++++++++++++++++++++++++++++++++++++--
>>  4 files changed, 86 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
>> index a3c3376d7..65a6a9d89 100644
>> --- a/drivers/net/virtio/virtio_ethdev.c
>> +++ b/drivers/net/virtio/virtio_ethdev.c
>> @@ -727,7 +727,7 @@ virtio_dev_rx_queue_intr_enable(struct rte_eth_dev *dev, uint16_t queue_id)
>>  	struct virtnet_rx *rxvq = dev->data->rx_queues[queue_id];
>>  	struct virtqueue *vq = rxvq->vq;
>>
>> -	virtqueue_enable_intr(vq);
>> +	virtqueue_enable_intr(vq, 0, 0);
>>  	return 0;
>>  }
>>
>> diff --git a/drivers/net/virtio/virtio_ethdev.h b/drivers/net/virtio/virtio_ethdev.h
>> index 3aeced4bb..19d3f2617 100644
>> --- a/drivers/net/virtio/virtio_ethdev.h
>> +++ b/drivers/net/virtio/virtio_ethdev.h
>> @@ -37,7 +37,7 @@
>>  	 1u << VIRTIO_RING_F_INDIRECT_DESC |    \
>>  	 1ULL << VIRTIO_F_VERSION_1       |	\
>>  	 1ULL << VIRTIO_F_RING_PACKED     |	\
>> -	 1ULL << VIRTIO_F_IOMMU_PLATFORM)
>
>Why remove this feature bit?

my mistake. will fix it. 
>
>
>> +	 1ULL << VIRTIO_RING_F_EVENT_IDX)
>
>Supporting event suppression doesn't means supporting
>F_EVENT_IDX. Event suppression is mandatory and not
>a negotiable feature. F_EVENT_IDX is just an optional
>enhancement for event suppression.

I understand, will fix that too. 
>
>
>>
>>  #define VIRTIO_PMD_SUPPORTED_GUEST_FEATURES	\
>>  	(VIRTIO_PMD_DEFAULT_GUEST_FEATURES |	\
>> diff --git a/drivers/net/virtio/virtio_rxtx.c b/drivers/net/virtio/virtio_rxtx.c
>> index a48ca6aaa..ed65434ce 100644
>> --- a/drivers/net/virtio/virtio_rxtx.c
>> +++ b/drivers/net/virtio/virtio_rxtx.c
>> @@ -127,6 +127,10 @@ virtio_xmit_pkts_packed(void *tx_queue, struct rte_mbuf **tx_pkts,
>>
>>  		rte_smp_wmb();
>>  		_set_desc_avail(&desc[head_idx], wrap_counter);
>> +		if (unlikely(virtqueue_kick_prepare_packed(vq))) {
>> +				virtqueue_notify(vq);
>> +				PMD_RX_LOG(DEBUG, "Notified");
>
>The indent isn't right.

will fix. Thanks!

regards,
Jens 


More information about the dev mailing list