On Mon, Apr 15, 2024 at 09:38:03PM +0800, Heng Qi wrote: > The NetDIM library provides excellent acceleration for many modern > network cards. However, the default profiles of DIM limits its maximum > capabilities for different NICs, so providing a way which the NIC can > be custom configured is necessary. > > Currently, interaction with the driver is still based on the commonly > used "ethtool -C". > > Since the profile now exists in netdevice, adding a function similar > to net_dim_get_rx_moderation_dev() with netdevice as argument is > nice, but this would be better along with cleaning up the rest of > the drivers, which we can get to very soon after this set. > > Please review, thank you very much! Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> > Changelog > ===== > v6->v7: > - A new wrapper struct pointer is used in struct net_device. > - Add IS_ENABLED(CONFIG_DIMLIB) to avoid compiler warnings. > - Profile fields changed from u16 to u32. > > v5->v6: > - Place the profile in netdevice to bypass the driver. > The interaction code of ethtool <-> kernel has not changed at all, > only the interaction part of kernel <-> driver has changed. > > v4->v5: > - Update some snippets from Kuba, Thanks. > > v3->v4: > - Some tiny updates and patch 1 only add a new comment. > > v2->v3: > - Break up the attributes to avoid the use of raw c structs. > - Use per-device profile instead of global profile in the driver. > > v1->v2: > - Use ethtool tool instead of net-sysfs > > Heng Qi (4): > linux/dim: move useful macros to .h file > ethtool: provide customized dim profile management > virtio-net: refactor dim initialization/destruction > virtio-net: support dim profile fine-tuning > > Heng Qi (4): > linux/dim: move useful macros to .h file > ethtool: provide customized dim profile management > virtio-net: refactor dim initialization/destruction > virtio-net: support dim profile fine-tuning > > Documentation/netlink/specs/ethtool.yaml | 33 +++ > Documentation/networking/ethtool-netlink.rst | 8 + > drivers/net/virtio_net.c | 46 +++-- > include/linux/dim.h | 13 ++ > include/linux/ethtool.h | 11 +- > include/linux/netdevice.h | 24 +++ > include/uapi/linux/ethtool_netlink.h | 24 +++ > lib/dim/net_dim.c | 10 +- > net/core/dev.c | 83 ++++++++ > net/ethtool/coalesce.c | 201 ++++++++++++++++++- > 10 files changed, 430 insertions(+), 23 deletions(-) > > -- > 2.32.0.3.g01195cf9f