[dpdk-dev] [PATCH] vhost: make vhost lockless enqueue configurable
Panu Matilainen
pmatilai at redhat.com
Wed Apr 29 13:38:02 CEST 2015
On 04/29/2015 02:29 PM, Huawei Xie wrote:
> vhost enabled vSwitch could have their own thread-safe vring enqueue policy.
> Add the RTE_LIBRTE_VHOST_LOCKLESS_ENQ macro for vhost lockless enqueue.
> Turn it off by default.
>
> Signed-off-by: Huawei Xie <huawei.xie at intel.com>
> ---
> config/common_linuxapp | 1 +
> lib/librte_vhost/vhost_rxtx.c | 24 +++++++++++++++++++++++-
> 2 files changed, 24 insertions(+), 1 deletion(-)
>
> diff --git a/config/common_linuxapp b/config/common_linuxapp
> index 0078dc9..7f59499 100644
> --- a/config/common_linuxapp
> +++ b/config/common_linuxapp
> @@ -421,6 +421,7 @@ CONFIG_RTE_KNI_VHOST_DEBUG_TX=n
> #
> CONFIG_RTE_LIBRTE_VHOST=n
> CONFIG_RTE_LIBRTE_VHOST_USER=y
> +CONFIG_RTE_LIBRTE_VHOST_LOCKLESS_ENQ=n
> CONFIG_RTE_LIBRTE_VHOST_DEBUG=n
>
> #
> diff --git a/lib/librte_vhost/vhost_rxtx.c b/lib/librte_vhost/vhost_rxtx.c
> index 510ffe8..475be6e 100644
> --- a/lib/librte_vhost/vhost_rxtx.c
> +++ b/lib/librte_vhost/vhost_rxtx.c
> @@ -80,7 +80,11 @@ virtio_dev_rx(struct virtio_net *dev, uint16_t queue_id,
> * they need to be reserved.
> */
> do {
> +#ifdef RTE_LIBRTE_VHOST_LOCKESS_ENQ
> res_base_idx = vq->last_used_idx_res;
> +#else
> + res_base_idx = vq->last_used_idx;
> +#endif
These things should be runtime configurable, not build options. Please
do not assume everybody builds DPDK separately for each and every
application that might ever be.
- Panu -
More information about the dev
mailing list