On 17/06/2015 19:08, "Flavio Leitner" <f...@sysclose.org> wrote:
>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 <do...@dtdream.com> >> Suggested-by: Flavio Leitner <f...@sysclose.org> >> Signed-off-by: Daniele Di Proietto <diproiet...@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 You're right, thanks for pointing that out. I'll add an OVS_UNUSED and add the comment like you suggested if we decide to go ahead with this. Thanks, Daniele _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev