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". The driver declares its supported parameters based on .supported_coalesce_params, and implements driver-related custom restrictions in .set_coalesce and .get_coalesce. Please review, thank you very much! Changelog ===== 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 V1 link: https://lore.kernel.org/all/1710421773-61277-1-git-send-email-hengqi@xxxxxxxxxxxxxxxxx/#r Heng Qi (3): ethtool: provide customized dim profile management virtio-net: refactor dim initialization/destruction virtio-net: support dim profile fine-tuning Documentation/netlink/specs/ethtool.yaml | 29 +++++ Documentation/networking/ethtool-netlink.rst | 8 ++ drivers/net/virtio_net.c | 79 ++++++++++--- include/linux/dim.h | 7 ++ include/linux/ethtool.h | 16 ++- include/linux/virtio_net.h | 11 ++ include/uapi/linux/ethtool_netlink.h | 24 ++++ lib/dim/net_dim.c | 6 - net/ethtool/coalesce.c | 159 ++++++++++++++++++++++++++- 9 files changed, 317 insertions(+), 22 deletions(-) -- 1.8.3.1