On Tue, 7 May 2024 19:57:52 -0700, Jakub Kicinski <kuba@xxxxxxxxxx> wrote: > On Sat, 4 May 2024 14:44:45 +0800 Heng Qi wrote: > > @@ -1325,6 +1354,8 @@ operations: > > - tx-aggr-max-bytes > > - tx-aggr-max-frames > > - tx-aggr-time-usecs > > + - rx-profile > > + - tx-profil > > dump: *coalesce-get-op > > - > > name: coalesce-set > > set probably needs to get the new attributes, too? I looked at other similar use cases (such as wol, debug) and it doesn't seem to be needed? > > > +static int ethnl_update_profile(struct net_device *dev, > > + struct dim_cq_moder __rcu **dst, > > + const struct nlattr *nests, > > + struct netlink_ext_ack *extack) > > > + rcu_assign_pointer(*dst, new_profile); > > + kfree_rcu(old_profile, rcu); > > + > > + return 0; > > Don't we need to inform DIM somehow that profile has switched > and it should restart itself? When the profile is modified, dim itself is a dynamic adjustment mechanism and will quickly adjust to the appropriate value according to the new profile. This is also seen in practice. Thanks!