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

Jakub Kicinski
2024-06-22T02:12:46Z

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?