[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <74023ed5-d371-41d3-9aac-c4e1c4d476b6@intel.com>
Date: Wed, 5 Jun 2024 11:56:34 -0600
From: Ahmed Zaki <ahmed.zaki@...el.com>
To: Gal Pressman <gal@...dia.com>, Jakub Kicinski <kuba@...nel.org>
CC: <netdev@...r.kernel.org>, <intel-wired-lan@...ts.osuosl.org>,
<corbet@....net>, <jesse.brandeburg@...el.com>, <anthony.l.nguyen@...el.com>,
<davem@...emloft.net>, <edumazet@...gle.com>, <pabeni@...hat.com>,
<vladimir.oltean@....com>, <andrew@...n.ch>, <horms@...nel.org>,
<mkubecek@...e.cz>, <willemdebruijn.kernel@...il.com>,
<alexander.duyck@...il.com>, <linux-doc@...r.kernel.org>, Igor Bagnucki
<igor.bagnucki@...el.com>, Jacob Keller <jacob.e.keller@...el.com>
Subject: Re: [PATCH net-next v6 1/7] net: ethtool: pass ethtool_rxfh to
get/set_rxfh ethtool ops
On 2024-06-05 11:42 a.m., Gal Pressman wrote:
> On 27/11/2023 16:14, Ahmed Zaki wrote:
>>
>>
>> On 2023-11-21 16:29, Jakub Kicinski wrote:
>>> On Mon, 20 Nov 2023 13:56:08 -0700 Ahmed Zaki wrote:
>>>> u32 (*get_rxfh_key_size)(struct net_device *);
>>>> u32 (*get_rxfh_indir_size)(struct net_device *);
>>>> - int (*get_rxfh)(struct net_device *, u32 *indir, u8 *key,
>>>> - u8 *hfunc);
>>>> - int (*set_rxfh)(struct net_device *, const u32 *indir,
>>>> - const u8 *key, const u8 hfunc);
>>>> + int (*get_rxfh)(struct net_device *, struct ethtool_rxfh *,
>>>> + u32 *indir, u8 *key);
>>>> + int (*set_rxfh)(struct net_device *, struct ethtool_rxfh *,
>>>> + const u32 *indir, const u8 *key);
>>>> int (*get_rxfh_context)(struct net_device *, u32 *indir, u8
>>>> *key,
>>>> u8 *hfunc, u32 rss_context);
>>>> int (*set_rxfh_context)(struct net_device *, const u32 *indir,
>>>
>>> This conversion looks 1/4th done. You should do the following:
>>>
>>> - First simplify the code by always providing a pointer to all params
>>> (indir, key and func); the fact that some of them may be NULL seems
>>> like a weird historic thing or a premature optimization.
>>> It will simplify the drivers if all pointers are always present.
>>> You don't have to remove the if () checks in the existing drivers.
>>>
>>> - Then make the functions take a dev pointer, and a pointer to a
>>> single struct wrapping all arguments. The set_* should also take
>>> an extack.
>>
>> Can we skip the "extack" part for this series? There is no
>> "ETHTOOL_MSG_RSS_SET" netlink message, which is needed for user-space to
>> get the ACK and adding all the netlink stuff seems a bit out of scope.
>
> Hi Ahmed,
>
> Sorry for reviving this old thread, I noticed you kept the extack in the
> set_rxfh callback eventually. Was that on purpose?
> It's weird that we have a parameter that is always passed as NULL.
Hi Gal.
Yes, that was on purpose. Jake asked for this (even if there is no
immediate users). This way the API is ready when netlink ops are added
in the future.
Powered by blists - more mailing lists