[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20141119.185615.33858549418617328.davem@davemloft.net>
Date: Wed, 19 Nov 2014 18:56:15 -0500 (EST)
From: David Miller <davem@...emloft.net>
To: therbert@...gle.com
Cc: luto@...capital.net, ben@...adent.org.uk, netdev@...r.kernel.org
Subject: Re: [PATCH RFC] net: Pass full skb hash to ndo_rx_flow_steer
From: Tom Herbert <therbert@...gle.com>
Date: Tue, 18 Nov 2014 20:08:57 -0800
> Currently, for aRFS the index into the flow table is passed to
> ndo_rx_flow_steer as the flow ID of a connection. This is the skb->hash
> & the table mask. It looks like the backend can accept the full
> skb->hash as the flow ID which should reduce the number of collisions
> in the hardware tables.
>
> This patch provides the skb->hash to the driver for flow steering.
> Expiration of HW steered flows was also updated.
>
> With a hash collision in RFS, ndo_rx_flow_steer will continue to be
> called with different CPUs, but now with different flow_ids. If this
> is still too much device interaction, then it might make sense for the
> driver to do its own lookup in its structure to see if a matching
> filter is already installed for a given flow_id, an if it is just
> refresh a timestamp to avoid expiration (based on looking at sfc
> driver).
>
> I don't currently have any HW to test this, if someone could try this
> on hardware with aRFS and provide feedback that would be appreciated.
>
> Signed-off-by: Tom Herbert <therbert@...gle.com>
This seems legitimate to me.
The only thing a driver can reliably do with the flow_id is
pass it back into rps_may_expire_flow(). Therefore you can
pass it in whatever format you like.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists