Subject: Re: [PATCH net-next 5/8] rtnetlink: do not depend on RTNL for many attributes

From: Simon Horman <[email-masked]>
Date: Sun, 5 May 2024 16:06:16 +0100

On Sun, May 05, 2024 at 05:00:10PM +0200, Eric Dumazet wrote:
> On Sun, May 5, 2024 at 4:47 PM Simon Horman <[email-masked]> wrote:
> >
> > On Fri, May 03, 2024 at 07:20:56PM +0000, Eric Dumazet wrote:
> > > Following device fields can be read locklessly
> > > in rtnl_fill_ifinfo() :
> > >
> > > type, ifindex, operstate, link_mode, mtu, min_mtu, max_mtu, group,
> > > promiscuity, allmulti, num_tx_queues, gso_max_segs, gso_max_size,
> > > gro_max_size, gso_ipv4_max_size, gro_ipv4_max_size, tso_max_size,
> > > tso_max_segs, num_rx_queues.
> >
> > Hi Eric,
> >
> > * Regarding mtu, as the comment you added to sruct net_device
> >   some time ago mentions, mtu is written in many places.
> >
> >   I'm wondering if, in particular wrt ndo_change_mtu implementations,
> >   if some it is appropriate to add WRITE_ONCE() annotations.
> 
> Sure thing. I called for these changes in commit
> 501a90c94510 ("inet: protect against too small mtu values.")
> when I said "Hopefully we will add the missing ones in followup patches."

Ok, so basically it would be nice to add them,
but they don't block progress of this patchset?

> > * Likewise, is it appropriate to add WRITE_ONCE() to dev_set_group() ?
> 
> In general, a lot of write sides would need to be changed.
> 
> In practice, most compilers will not perform store tearing, this would
> be quite expensive.
> 
> Also, adding WRITE_ONCE() will not prevent a reader from reading some
> temporary values,
> take a look at dev_change_tx_queue_len() for instance.

Thank you, I will study this more closely.