RE: [PATCH net-next v6 1/7] net: ethtool: pass ethtool_rxfh to get/set_rxfh ethtool ops

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> -----Original Message-----
> From: Zaki, Ahmed <ahmed.zaki@xxxxxxxxx>
> Sent: Monday, November 27, 2023 6:15 AM
> To: Jakub Kicinski <kuba@xxxxxxxxxx>
> Cc: netdev@xxxxxxxxxxxxxxx; intel-wired-lan@xxxxxxxxxxxxxxxx; corbet@xxxxxxx;
> Brandeburg, Jesse <jesse.brandeburg@xxxxxxxxx>; Nguyen, Anthony L
> <anthony.l.nguyen@xxxxxxxxx>; davem@xxxxxxxxxxxxx; edumazet@xxxxxxxxxx;
> pabeni@xxxxxxxxxx; vladimir.oltean@xxxxxxx; andrew@xxxxxxx;
> horms@xxxxxxxxxx; mkubecek@xxxxxxx; willemdebruijn.kernel@xxxxxxxxx;
> gal@xxxxxxxxxx; alexander.duyck@xxxxxxxxx; linux-doc@xxxxxxxxxxxxxxx;
> Bagnucki, Igor <igor.bagnucki@xxxxxxxxx>; Keller, Jacob E
> <jacob.e.keller@xxxxxxxxx>
> Subject: Re: [PATCH net-next v6 1/7] net: ethtool: pass ethtool_rxfh to
> get/set_rxfh ethtool ops
> 
> 
> 
> 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.
> 
> I will do the rest in the next version.

Please include the extack now even if there isn't an immediate user. A NULL value is acceptable to pass for "there is no extended ACK available", but this way we don't have to modify the drivers *again* when the extack is available if we add a netlink op in the future.

Thanks,
Jake





[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux