From patchwork Tue Apr 30 17:31:32 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heng Qi X-Patchwork-Id: 13649746 Received: from out30-110.freemail.mail.aliyun.com (out30-110.freemail.mail.aliyun.com [115.124.30.110]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A474213C66A; Tue, 30 Apr 2024 17:31:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=115.124.30.110 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714498305; cv=none; b=sgBFSshbjCldx9Jqzhk4KtIrJOZ11jX9znXTS2MMV8m0sHt7bmxTInKhj0yY5nD1jywJGIlT/8bQX6CWyHoQww7kvf8vgki5DAVRczS5zv4PZ1qA27aW+IKoKMigQRuOGlwBbPbZJSNapJhq8y/K1nJOKNCU5GYfv+CfKJp2ms8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714498305; c=relaxed/simple; bh=35wJNzCtc3YlHo7W5Fcjr+gnMzorolWtmPw4Tagx2O8=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version; b=HctQ5f9+L0zK3RCVk1jAHTzdEaNApo390g3sClrrDsgKszceNE5iphjpYppmFszzD8qgLP7HWfMiwxiWKewZqz4NGuMw9cSWm9OpKkvUkFMPhG7B5Y4O5PsxRmU7bdsnfC7hF4E0GRyzt1weo1+4gL4+OSDzpLwSjBhkARadtDI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.alibaba.com; spf=pass smtp.mailfrom=linux.alibaba.com; dkim=pass (1024-bit key) header.d=linux.alibaba.com header.i=@linux.alibaba.com header.b=Wi9BdB2r; arc=none smtp.client-ip=115.124.30.110 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.alibaba.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.alibaba.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.alibaba.com header.i=@linux.alibaba.com header.b="Wi9BdB2r" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1714498299; h=From:To:Subject:Date:Message-Id:MIME-Version; bh=WQP0KNwV8WJxKA5ty6Apja/BByTogFld6Sod7EGrQNI=; b=Wi9BdB2rrkEtTfW+Tz1b8kedH3KVqM/fvcfe8d+yh/91Nmp7yYr2mn5SkWBQZ8QMCMHaEUffXHvjT7eI/rXZRkVxHZ4WC0LcjavyQKoQGiapL/ASbPmd6prBHwMY3iNepGeLl9Y//UzKBd/fpXqBKP5WzlHNfSH/DIH1YzPaX4c= X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R961e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=maildocker-contentspam033037067110;MF=hengqi@linux.alibaba.com;NM=1;PH=DS;RN=23;SR=0;TI=SMTPD_---0W5coJt0_1714498296; Received: from localhost(mailfrom:hengqi@linux.alibaba.com fp:SMTPD_---0W5coJt0_1714498296) by smtp.aliyun-inc.com; Wed, 01 May 2024 01:31:37 +0800 From: Heng Qi To: netdev@vger.kernel.org, virtualization@lists.linux.dev Cc: Jakub Kicinski , "David S . Miller" , Paolo Abeni , Eric Dumazet , Jason Wang , "Michael S . Tsirkin" , Brett Creeley , Ratheesh Kannoth , Alexander Lobakin , Xuan Zhuo , Tal Gilboa , Jonathan Corbet , linux-doc@vger.kernel.org, Maxime Chevallier , Jiri Pirko , Paul Greenwalt , Ahmed Zaki , Vladimir Oltean , Kory Maincent , Andrew Lunn , justinstitt@google.com Subject: [PATCH net-next v11 0/4] ethtool: provide the dim profile fine-tuning channel Date: Wed, 1 May 2024 01:31:32 +0800 Message-Id: <20240430173136.15807-1-hengqi@linux.alibaba.com> X-Mailer: git-send-email 2.32.0.3.g01195cf9f Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Patchwork-Delegate: kuba@kernel.org 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, the way is based on the commonly used "ethtool -C". Please review, thank you very much! Changelog ===== v10->v11: - Fix and clean up some issues from Kuba, thanks. - Rebase net-next/main v9->v10: - Collect dim related flags/mode/work into one place. - Use rx_profile + tx_profile instead of four profiles. - Add several helps. - Update commit logs. v8->v9: - Fix the compilation error of conflicting names of rx_profile in dim.h and ice driver: in dim.h, rx_profile is replaced with dim_rx_profile. So does tx_profile. v7->v8: - Use kmemdup() instead of kzalloc()/memcpy() in dev_dim_profile_init(). 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. 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 dim: add new interfaces for initialization and getting results virtio-net: support dim profile fine-tuning Documentation/netlink/specs/ethtool.yaml | 31 +++ Documentation/networking/ethtool-netlink.rst | 4 + drivers/net/virtio_net.c | 48 +++- include/linux/dim.h | 117 ++++++++ include/linux/ethtool.h | 7 +- include/linux/netdevice.h | 5 + include/uapi/linux/ethtool_netlink.h | 22 ++ lib/dim/net_dim.c | 145 +++++++++- net/ethtool/coalesce.c | 278 ++++++++++++++++++- 9 files changed, 642 insertions(+), 15 deletions(-)