[dpdk-dev] [PATCH v1] virtio: Use cpuflag for vector api
Qiu, Michael
michael.qiu at intel.com
Tue Mar 1 10:11:01 CET 2016
On 2/26/2016 4:53 PM, Santosh Shukla wrote:
> Check cpuflag macro before using vectored api.
> -virtio_recv_pkts_vec() uses _sse3__ simd instruction for now so added cpuflag.
> - Also wrap other vectored freind api ie..
> 1) virtqueue_enqueue_recv_refill_simple
> 2) virtio_rxq_vec_setup
>
> todo:
> 1) Move virtio_recv_pkts_vec() implementation to
> drivers/virtio/virtio_vec_<arch>.h file.
> 2) Remove use_simple_rxtx flag, so that virtio/virtio_vec_<arch>.h
> files to provide vectored/non-vectored rx/tx apis.
>
> Signed-off-by: Santosh Shukla <sshukla at mvista.com>
> ---
> - v1: This is a rework of patch [1].
> Note: This patch will let non-x86 arch to use virtio pmd.
>
> [1] http://dpdk.org/dev/patchwork/patch/10429/
>
> drivers/net/virtio/virtio_rxtx.c | 16 +++++++++++++++-
> drivers/net/virtio/virtio_rxtx.h | 2 ++
> drivers/net/virtio/virtio_rxtx_simple.c | 11 ++++++++++-
> 3 files changed, 27 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/virtio/virtio_rxtx.c b/drivers/net/virtio/virtio_rxtx.c
> index 41a1366..ec0b8de 100644
> --- a/drivers/net/virtio/virtio_rxtx.c
> +++ b/drivers/net/virtio/virtio_rxtx.c
> @@ -67,7 +67,9 @@
> #define VIRTIO_SIMPLE_FLAGS ((uint32_t)ETH_TXQ_FLAGS_NOMULTSEGS | \
> ETH_TXQ_FLAGS_NOOFFLOADS)
>
> +#ifdef RTE_MACHINE_CPUFLAG_SSSE3
> static int use_simple_rxtx;
> +#endif
>
>
I don't think so much #ifdef ... #endif in *.c file is a good choice.
Would you consider let it only in header file like:
in drivers/net/virtio/virtio_rxtx.h
[...]
#ifdef RTE_MACHINE_CPUFLAG_SSSE3
int virtio_rxq_vec_setup(struct virtqueue *rxq);
int virtqueue_enqueue_recv_refill_simple(struct virtqueue *vq,
struct rte_mbuf *m);
#else
int virtio_rxq_vec_setup(__rte_unused struct virtqueue *rxq) {return -1;}
int virtqueue_enqueue_recv_refill_simple(__rte_unused struct virtqueue *vq,
__rte_unused struct rte_mbuf *m) {
return -1;
}
#endif
and remove most #ifdef ... #endif in *.c file.
Thanks,
Michael
More information about the dev
mailing list