diff mbox series

[net] netdev: add qstat for csum complete

Message ID 20240529163547.3693194-1-kuba@kernel.org (mailing list archive)
State Accepted
Commit 13c7c941e72908b8cce5a84b45a7b5e485ca12ed
Delegated to: Netdev Maintainers
Headers show
Series [net] netdev: add qstat for csum complete | expand

Checks

Context Check Description
netdev/series_format success Single patches do not need cover letters
netdev/tree_selection success Clearly marked for net
netdev/ynl success Generated files up to date; no warnings/errors; GEN HAS DIFF 1 file changed, 1 insertion(+);
netdev/fixes_present fail Series targets non-next tree, but doesn't contain any Fixes tags
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 4817 this patch: 4817
netdev/build_tools success Errors and warnings before: 0 this patch: 0
netdev/cc_maintainers success CCed 7 of 7 maintainers
netdev/build_clang success Errors and warnings before: 1000 this patch: 1000
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/deprecated_api success None detected
netdev/check_selftest success No net selftest shell script
netdev/verify_fixes success No Fixes tag
netdev/build_allmodconfig_warn success Errors and warnings before: 5086 this patch: 5086
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 24 lines checked
netdev/build_clang_rust success No Rust files in patch. Skipping build
netdev/kdoc success Errors and warnings before: 12 this patch: 12
netdev/source_inline success Was 0 now: 0
netdev/contest success net-next-2024-05-30--06-00 (tests: 1042)

Commit Message

Jakub Kicinski May 29, 2024, 4:35 p.m. UTC
Recent commit 0cfe71f45f42 ("netdev: add queue stats") added
a lot of useful stats, but only those immediately needed by virtio.
Presumably virtio does not support CHECKSUM_COMPLETE,
so statistic for that form of checksumming wasn't included.
Other drivers will definitely need it, in fact we expect it
to be needed in net-next soon (mlx5). So let's add the definition
of the counter for CHECKSUM_COMPLETE to uAPI in net already,
so that the counters are in a more natural order (all subsequent
counters have not been present in any released kernel, yet).

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
CC: donald.hunter@gmail.com
CC: sdf@google.com
CC: amritha.nambiar@intel.com
CC: hawk@kernel.org
CC: sridhar.samudrala@intel.com
CC: jdamato@fastly.com
---
 Documentation/netlink/specs/netdev.yaml | 4 ++++
 include/uapi/linux/netdev.h             | 1 +
 tools/include/uapi/linux/netdev.h       | 1 +
 3 files changed, 6 insertions(+)

Comments

Joe Damato May 29, 2024, 6:23 p.m. UTC | #1
On Wed, May 29, 2024 at 09:35:47AM -0700, Jakub Kicinski wrote:
> Recent commit 0cfe71f45f42 ("netdev: add queue stats") added
> a lot of useful stats, but only those immediately needed by virtio.
> Presumably virtio does not support CHECKSUM_COMPLETE,
> so statistic for that form of checksumming wasn't included.
> Other drivers will definitely need it, in fact we expect it
> to be needed in net-next soon (mlx5). So let's add the definition
> of the counter for CHECKSUM_COMPLETE to uAPI in net already,
> so that the counters are in a more natural order (all subsequent
> counters have not been present in any released kernel, yet).

As you mentioned, the counters are not in any released kernel yet,
so adding it to the uAPI makes sense to me.

Are you planning to submit a separate change to add csum_complete to
struct netdev_queue_stats_rx, as well? Just wanted to double check,
but I assume that is a net-next thing.

Reviewed-by: Joe Damato <jdamato@fastly.com>
Jakub Kicinski May 29, 2024, 6:57 p.m. UTC | #2
On Wed, 29 May 2024 11:23:49 -0700 Joe Damato wrote:
> Are you planning to submit a separate change to add csum_complete to
> struct netdev_queue_stats_rx, as well? Just wanted to double check,
> but I assume that is a net-next thing.

I figured we can add the handling with the first user. I can, unless
you're already planning to add more counters yourself once the base 
set is merged.
Joe Damato May 29, 2024, 7:07 p.m. UTC | #3
On Wed, May 29, 2024 at 11:57:36AM -0700, Jakub Kicinski wrote:
> On Wed, 29 May 2024 11:23:49 -0700 Joe Damato wrote:
> > Are you planning to submit a separate change to add csum_complete to
> > struct netdev_queue_stats_rx, as well? Just wanted to double check,
> > but I assume that is a net-next thing.
> 
> I figured we can add the handling with the first user. I can, unless
> you're already planning to add more counters yourself once the base 
> set is merged.

Sure, adding with the first user makes sense to me.

On my side: I honestly have no idea how close or far away I am from
landing the mlx5 qstats stuff, but if I do somehow get that in, I
would be fine adding the extra stats at that point.

Hoping the RFCv3 I have out now is closer/almost there.
Paolo Abeni May 30, 2024, 10:15 a.m. UTC | #4
On Wed, 2024-05-29 at 09:35 -0700, Jakub Kicinski wrote:
> Recent commit 0cfe71f45f42 ("netdev: add queue stats") added
> a lot of useful stats, but only those immediately needed by virtio.
> Presumably virtio does not support CHECKSUM_COMPLETE,
> so statistic for that form of checksumming wasn't included.
> Other drivers will definitely need it, in fact we expect it
> to be needed in net-next soon (mlx5). So let's add the definition
> of the counter for CHECKSUM_COMPLETE to uAPI in net already,
> so that the counters are in a more natural order (all subsequent
> counters have not been present in any released kernel, yet).
> 
> Signed-off-by: Jakub Kicinski <kuba@kernel.org>

Given the uAPI implication I believe its better to let this land into
today PR. Also adding

Fixes: 0cfe71f45f42 ("netdev: add queue stats")

To try to reduce the chance that backports will end-up with
inconsistent uAPI.

Cheers,

Paolo
patchwork-bot+netdevbpf@kernel.org May 30, 2024, 10:30 a.m. UTC | #5
Hello:

This patch was applied to netdev/net.git (main)
by Paolo Abeni <pabeni@redhat.com>:

On Wed, 29 May 2024 09:35:47 -0700 you wrote:
> Recent commit 0cfe71f45f42 ("netdev: add queue stats") added
> a lot of useful stats, but only those immediately needed by virtio.
> Presumably virtio does not support CHECKSUM_COMPLETE,
> so statistic for that form of checksumming wasn't included.
> Other drivers will definitely need it, in fact we expect it
> to be needed in net-next soon (mlx5). So let's add the definition
> of the counter for CHECKSUM_COMPLETE to uAPI in net already,
> so that the counters are in a more natural order (all subsequent
> counters have not been present in any released kernel, yet).
> 
> [...]

Here is the summary with links:
  - [net] netdev: add qstat for csum complete
    https://git.kernel.org/netdev/net/c/13c7c941e729

You are awesome, thank you!
diff mbox series

Patch

diff --git a/Documentation/netlink/specs/netdev.yaml b/Documentation/netlink/specs/netdev.yaml
index 11a32373365a..959755be4d7f 100644
--- a/Documentation/netlink/specs/netdev.yaml
+++ b/Documentation/netlink/specs/netdev.yaml
@@ -349,6 +349,10 @@  name: netdev
           Number of packets dropped due to transient lack of resources, such as
           buffer space, host descriptors etc.
         type: uint
+      -
+        name: rx-csum-complete
+        doc: Number of packets that were marked as CHECKSUM_COMPLETE.
+        type: uint
       -
         name: rx-csum-unnecessary
         doc: Number of packets that were marked as CHECKSUM_UNNECESSARY.
diff --git a/include/uapi/linux/netdev.h b/include/uapi/linux/netdev.h
index a8188202413e..43742ac5b00d 100644
--- a/include/uapi/linux/netdev.h
+++ b/include/uapi/linux/netdev.h
@@ -148,6 +148,7 @@  enum {
 	NETDEV_A_QSTATS_RX_ALLOC_FAIL,
 	NETDEV_A_QSTATS_RX_HW_DROPS,
 	NETDEV_A_QSTATS_RX_HW_DROP_OVERRUNS,
+	NETDEV_A_QSTATS_RX_CSUM_COMPLETE,
 	NETDEV_A_QSTATS_RX_CSUM_UNNECESSARY,
 	NETDEV_A_QSTATS_RX_CSUM_NONE,
 	NETDEV_A_QSTATS_RX_CSUM_BAD,
diff --git a/tools/include/uapi/linux/netdev.h b/tools/include/uapi/linux/netdev.h
index a8188202413e..43742ac5b00d 100644
--- a/tools/include/uapi/linux/netdev.h
+++ b/tools/include/uapi/linux/netdev.h
@@ -148,6 +148,7 @@  enum {
 	NETDEV_A_QSTATS_RX_ALLOC_FAIL,
 	NETDEV_A_QSTATS_RX_HW_DROPS,
 	NETDEV_A_QSTATS_RX_HW_DROP_OVERRUNS,
+	NETDEV_A_QSTATS_RX_CSUM_COMPLETE,
 	NETDEV_A_QSTATS_RX_CSUM_UNNECESSARY,
 	NETDEV_A_QSTATS_RX_CSUM_NONE,
 	NETDEV_A_QSTATS_RX_CSUM_BAD,