On 1/6/21 1:03 PM, Xia, Chenbo wrote:
> Hi Maxime,
> 
>> -----Original Message-----
>> From: Maxime Coquelin <maxime.coque...@redhat.com>
>> Sent: Monday, December 21, 2020 5:14 AM
>> To: dev@dpdk.org; Xia, Chenbo <chenbo....@intel.com>; olivier.m...@6wind.com;
>> amore...@redhat.com; david.march...@redhat.com
>> Cc: Maxime Coquelin <maxime.coque...@redhat.com>
>> Subject: [PATCH 28/40] net/virtio: add Virtio-user vring setting ops
>>
>> This patch introduces new callbacks for setting
>> and getting vring state.
>>
>> Signed-off-by: Maxime Coquelin <maxime.coque...@redhat.com>
> 
> <snip>
> 
>>
>> @@ -327,6 +343,10 @@ struct virtio_user_backend_ops virtio_ops_vdpa = {
>>      .get_features = vhost_vdpa_get_features,
>>      .set_features = vhost_vdpa_set_features,
>>      .set_memory_table = vhost_vdpa_set_memory_table,
>> +    .set_vring_enable = vhost_vdpa_set_vring_enable,
> 
> Sorry, miss one comment in last email...
> 
> Do we still need to keep set_vring_enable in struct virtio_user_backend_ops? 
> Because
> as I notice, it's called only in another callback (enable_qp).

Right, it can be dropped now. I'll remove it.

Thanks,
Maxime

> Thanks,
> Chenbo
> 
>> +    .set_vring_num = vhost_vdpa_set_vring_num,
>> +    .set_vring_base = vhost_vdpa_set_vring_base,
>> +    .get_vring_base = vhost_vdpa_get_vring_base,
>>      .send_request = vhost_vdpa_send_request,
>>      .enable_qp = vhost_vdpa_enable_queue_pair,
>>      .dma_map = vhost_vdpa_dma_map,
>> diff --git a/drivers/net/virtio/virtio_user/virtio_user_dev.c
>> b/drivers/net/virtio/virtio_user/virtio_user_dev.c
>> index ae976be158..496a48ee51 100644
>> --- a/drivers/net/virtio/virtio_user/virtio_user_dev.c
>> +++ b/drivers/net/virtio/virtio_user/virtio_user_dev.c
>> @@ -73,13 +73,13 @@ virtio_user_kick_queue(struct virtio_user_dev *dev,
>> uint32_t queue_sel)
>>
>>      state.index = queue_sel;
>>      state.num = vring->num;
>> -    dev->ops->send_request(dev, VHOST_USER_SET_VRING_NUM, &state);
>> +    dev->ops->set_vring_num(dev, &state);
>>
>>      state.index = queue_sel;
>>      state.num = 0; /* no reservation */
>>      if (dev->features & (1ULL << VIRTIO_F_RING_PACKED))
>>              state.num |= (1 << 15);
>> -    dev->ops->send_request(dev, VHOST_USER_SET_VRING_BASE, &state);
>> +    dev->ops->set_vring_base(dev, &state);
>>
>>      dev->ops->send_request(dev, VHOST_USER_SET_VRING_ADDR, &addr);
>>
>> @@ -218,9 +218,8 @@ int virtio_user_stop_device(struct virtio_user_dev *dev)
>>      /* Stop the backend. */
>>      for (i = 0; i < dev->max_queue_pairs * 2; ++i) {
>>              state.index = i;
>> -            if (dev->ops->send_request(dev, VHOST_USER_GET_VRING_BASE,
>> -                                       &state) < 0) {
>> -                    PMD_DRV_LOG(ERR, "get_vring_base failed, index=%u\n",
>> +            if (dev->ops->get_vring_base(dev, &state) < 0) {
>> +                    PMD_DRV_LOG(ERR, "get_vring_base failed, index=%u",
>>                                  i);
>>                      error = -1;
>>                      goto out;
>> --
>> 2.29.2
> 

Reply via email to