Subject: Re: [PATCH v9 net-next 08/15] net: softnet_data: Make xmit per task.

From: Jakub Kicinski <[email-masked]>
Date: Fri, 21 Jun 2024 19:12:45 -0700

On Thu, 20 Jun 2024 15:21:58 +0200 Sebastian Andrzej Siewior wrote:
> +static inline void netdev_xmit_set_more(bool more)
> +{
> +	current->net_xmit.more = more;
> +}
> +
> +static inline bool netdev_xmit_more(void)
> +{
> +	return current->net_xmit.more;
> +}
> +#endif
> +
> +static inline netdev_tx_t __netdev_start_xmit(const struct net_device_ops *ops,
> +					      struct sk_buff *skb, struct net_device *dev,
> +					      bool more)
> +{
> +	netdev_xmit_set_more(more);
> +	return ops->ndo_start_xmit(skb, dev);
> +}

The series looks clean, I'm happy for it to be applied as is.

But I'm curious whether similar helper organization as with the BPF
code would work. By which I mean - instead of read / write helpers
for each member can we not have one helper which returns the struct?
It would be a per-CPU struct on !RT and pointer from current on RT.
Does it change the generated code? Or stripping the __percpu annotation
is a PITA?