vhost: remove vhost-net requirements from generic vhost APIs
Checks
Commit Message
From: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
The rte_vhost API to put data into virtqueues operates
on mbufs and hence it is strictly vhost-net specific.
External backends need to implement virtqueue handling
from scratch and that's just not possible without APIs
to get/set vring base addresses.
Those relevant APIs are there, but they have a check that
prevents them from working with any non-vhost-net device.
This patch removes those checks.
rte_vhost_get_log_base() is not necessarily needed for
external backends, as other, higher level vhost APIs for
live migration are available and could be used instead.
We remove the extra check from it anyway for consistency.
Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
---
lib/librte_vhost/vhost.c | 21 ---------------------
1 file changed, 21 deletions(-)
Comments
On Mon, Feb 25, 2019 at 12:35:55AM +0100, Dariusz Stojaczyk wrote:
> From: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
>
> The rte_vhost API to put data into virtqueues operates
> on mbufs and hence it is strictly vhost-net specific.
> External backends need to implement virtqueue handling
> from scratch and that's just not possible without APIs
> to get/set vring base addresses.
>
> Those relevant APIs are there, but they have a check that
> prevents them from working with any non-vhost-net device.
> This patch removes those checks.
>
> rte_vhost_get_log_base() is not necessarily needed for
> external backends, as other, higher level vhost APIs for
> live migration are available and could be used instead.
> We remove the extra check from it anyway for consistency.
>
> Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
> ---
> lib/librte_vhost/vhost.c | 21 ---------------------
> 1 file changed, 21 deletions(-)
Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
Thanks,
Tiwei
On 2/25/19 12:35 AM, Dariusz Stojaczyk wrote:
> From: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
>
> The rte_vhost API to put data into virtqueues operates
> on mbufs and hence it is strictly vhost-net specific.
> External backends need to implement virtqueue handling
> from scratch and that's just not possible without APIs
> to get/set vring base addresses.
>
> Those relevant APIs are there, but they have a check that
> prevents them from working with any non-vhost-net device.
> This patch removes those checks.
>
> rte_vhost_get_log_base() is not necessarily needed for
> external backends, as other, higher level vhost APIs for
> live migration are available and could be used instead.
> We remove the extra check from it anyway for consistency.
>
> Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
> ---
> lib/librte_vhost/vhost.c | 21 ---------------------
> 1 file changed, 21 deletions(-)
>
Applied to dpdk-next-virtio/master.
Thanks,
Maxime
@@ -766,13 +766,6 @@ int rte_vhost_get_log_base(int vid, uint64_t *log_base,
if (!dev)
return -1;
- if (unlikely(!(dev->flags & VIRTIO_DEV_BUILTIN_VIRTIO_NET))) {
- RTE_LOG(ERR, VHOST_DATA,
- "(%d) %s: built-in vhost net backend is disabled.\n",
- dev->vid, __func__);
- return -1;
- }
-
*log_base = dev->log_base;
*log_size = dev->log_size;
@@ -787,13 +780,6 @@ int rte_vhost_get_vring_base(int vid, uint16_t queue_id,
if (!dev)
return -1;
- if (unlikely(!(dev->flags & VIRTIO_DEV_BUILTIN_VIRTIO_NET))) {
- RTE_LOG(ERR, VHOST_DATA,
- "(%d) %s: built-in vhost net backend is disabled.\n",
- dev->vid, __func__);
- return -1;
- }
-
*last_avail_idx = dev->virtqueue[queue_id]->last_avail_idx;
*last_used_idx = dev->virtqueue[queue_id]->last_used_idx;
@@ -808,13 +794,6 @@ int rte_vhost_set_vring_base(int vid, uint16_t queue_id,
if (!dev)
return -1;
- if (unlikely(!(dev->flags & VIRTIO_DEV_BUILTIN_VIRTIO_NET))) {
- RTE_LOG(ERR, VHOST_DATA,
- "(%d) %s: built-in vhost net backend is disabled.\n",
- dev->vid, __func__);
- return -1;
- }
-
dev->virtqueue[queue_id]->last_avail_idx = last_avail_idx;
dev->virtqueue[queue_id]->last_used_idx = last_used_idx;