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

Alexander Duyck
2017-10-26T15:29:10Z

On Wed, Oct 25, 2017 at 11:07 PM, Jiri Pirko <jiri@resnulli.us> wrote:
> Thu, Oct 26, 2017 at 03:01:31AM CEST, davem@davemloft.net wrote:
>>From: Jiri Pirko <jiri@resnulli.us>
>>Date: Wed, 25 Oct 2017 16:34:58 +0200
>>
>>> From: Jiri Pirko <jiri@mellanox.com>
>>>
>>> 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 <alexander.duyck@gmail.com>
>>> Signed-off-by: Jiri Pirko <jiri@mellanox.com>
>>
>>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
(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?

- Alex