[ovs-dev] [PATCH] dpif-netdev: Check for PKT_RX_RSS_HASH flag.
Flavio Leitner
fbl at sysclose.org
Wed Jun 17 18:08:16 UTC 2015
On Tue, Jun 16, 2015 at 07:39:00PM +0100, Daniele Di Proietto wrote:
> DPDK mbufs contain a valid RSS hash only if PKT_RX_RSS_HASH is
> set in 'ol_flags'. Otherwise the hash is garbage and doesn't
> relate to the packet.
>
> This fixes an issue with vhost, which, being a virtual NIC, doesn't
> compute the hash.
>
> Unfortunately the ixgbe vPMD doesn't set the PKT_RX_RSS_HASH, forcing
> OVS to compute an hash is software. This has a significant impact on
> performance (-30% throughput in a single flow setup) which can be
> mitigated in the CPU supports crc32c instructions.
>
> Reported-by: Dongjun <dongj at dtdream.com>
> Suggested-by: Flavio Leitner <fbl at sysclose.org>
> Signed-off-by: Daniele Di Proietto <diproiettod at vmware.com>
> ---
> lib/dp-packet.h | 11 +++++++++++
> lib/dpif-netdev.c | 2 +-
> 2 files changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/lib/dp-packet.h b/lib/dp-packet.h
> index e4c2593..6840750 100644
> --- a/lib/dp-packet.h
> +++ b/lib/dp-packet.h
> @@ -529,11 +529,22 @@ dp_packet_set_rss_hash(struct dp_packet *p, uint32_t hash)
> {
> #ifdef DPDK_NETDEV
> p->mbuf.hash.rss = hash;
> + p->mbuf.ol_flags |= PKT_RX_RSS_HASH;
> #else
> p->rss_hash = hash;
> #endif
> }
>
> +static inline bool
> +dp_packet_rss_valid(struct dp_packet *p)
> +{
> +#ifdef DPDK_NETDEV
> + return p->mbuf.ol_flags & PKT_RX_RSS_HASH;
> +#else
> + return true;
> +#endif
> +}
The above triggers the following when not using dpdk.
lib/dp-packet.h: In function 'dp_packet_rss_valid':
lib/dp-packet.h:539:39: warning: unused parameter 'p'
[-Wunused-parameter]
fbl
More information about the dev
mailing list