Thread (14 messages) flat view 14 messages, 5 authors, 2017-11-01

Re: [patch net-next 2/4] net: sched: move the can_offload check from binding phase to rule insertion phase

From: Jakub Kicinski <hidden>
Date: 2017-10-26 20:55:29

On Thu, 26 Oct 2017 17:40:19 +0200, Jiri Pirko wrote:
Thu, Oct 26, 2017 at 05:29:08PM CEST, alexander.duyck@gmail.com wrote:
quoted
On Wed, Oct 25, 2017 at 11:07 PM, Jiri Pirko [off-list ref] wrote:  
quoted
Thu, Oct 26, 2017 at 03:01:31AM CEST, davem@davemloft.net wrote:  
quoted
From: Jiri Pirko <jiri@resnulli.us>
Date: Wed, 25 Oct 2017 16:34:58 +0200
 
quoted
From: Jiri Pirko <redacted>

This restores the original behaviour before the block callbacks were
introduced. Allow the drivers to do binding of block always, no matter
if the NETIF_F_HW_TC feature is on or off. Move the check to the block
callback which is called for rule insertion.

Reported-by: Alexander Duyck <redacted>
Signed-off-by: Jiri Pirko <redacted>  
I agree with Jakub's feedback, if every callback has to make this check
why not just do it in the core where the callback is invoked?  
We cannot add it to the core. The idea of the block callbacks is to get
independent of the "dev". For the block sharing, driver registers one
block callback for multiple devs. Core has no access to "dev".  
If the plan is to have one block represent multiple devices are we
then looking at the offload flag potentially being tied together for
all those devices then at some point in the future? I assume that
means that this workaround will have to eventually go away for some of
the Mellanox devices since it wouldn't make sense to have a netdev
pointer if the context block supports multiple netdevices. Do I have
that right? If so, is the idea to just assume the offload is always-on  
You do.
quoted
(fixed) or do you have some other idea in mind for how to deal with a
feature that is controlled globally for the device versus a port?  
I plan to check the offload feature flag for all ports that share the
block and allow the offload only in case all are on.
Clearly we draw the line between what should the responsibility of the
driver do and what belongs higher in the stack differently :)
Also, there would be forbidden to turn the offload flag off in case
there is at least one offloaded rule for the block. This is how mlx5
does it.
My grep-foo fails me I only see that check in nfp.  I though John
already did that in ixgbe.  And then everyone copied, since it's
sort-of UAPI?  Or at least users may come to expect certain
consistent behaviour.  Same story for phys_port_name for representors,
and OpenStack expect certain names by now.  That copying of behaviour
concerns me, not necessarily multiplication of code.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help