From: Zhu Yanjun <yanjun.zhu@linux.dev>
To: Xuan Zhuo <xuanzhuo@linux.alibaba.com>, netdev@vger.kernel.org
Cc: "Michael S. Tsirkin" <mst@redhat.com>,
Jason Wang <jasowang@redhat.com>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
virtualization@lists.linux.dev
Subject: Re: [PATCH net-next 1/6] virtio_net: introduce device stats feature and structures
Date: Mon, 25 Dec 2023 16:01:39 +0800 [thread overview]
Message-ID: <f6cea3db-aef6-43a9-96a9-04fe42e6a1f3@linux.dev> (raw)
In-Reply-To: <20231222033021.20649-2-xuanzhuo@linux.alibaba.com>
在 2023/12/22 11:30, Xuan Zhuo 写道:
> The virtio-net device stats spec:
>
> https://github.com/oasis-tcs/virtio-spec/commit/42f389989823039724f95bbbd243291ab0064f82
>
> This commit introduces the relative feature and structures.
Hi, Xuan
After applying this patch series, withe ethtool version 6.5,
I got the following NIC statistics. But I do not find the statistics
mentioned in this patch series.
Do I miss something?
"
NIC statistics:
rx_packets: 3434812669
rx_bytes: 5168475253690
rx_drops: 0
rx_xdp_packets: 0
rx_xdp_tx: 0
rx_xdp_redirects: 0
rx_xdp_drops: 0
rx_kicks: 57179891
tx_packets: 187694230
tx_bytes: 12423799040
tx_xdp_tx: 0
tx_xdp_tx_drops: 0
tx_kicks: 187694230
tx_timeouts: 0
rx_queue_0_packets: 866027381
rx_queue_0_bytes: 1302726908150
rx_queue_0_drops: 0
rx_queue_0_xdp_packets: 0
rx_queue_0_xdp_tx: 0
rx_queue_0_xdp_redirects: 0
rx_queue_0_xdp_drops: 0
rx_queue_0_kicks: 14567691
rx_queue_1_packets: 856758801
rx_queue_1_bytes: 1289899049042
rx_queue_1_drops: 0
rx_queue_1_xdp_packets: 0
rx_queue_1_xdp_tx: 0
rx_queue_1_xdp_redirects: 0
rx_queue_1_xdp_drops: 0
rx_queue_1_kicks: 14265201
rx_queue_2_packets: 839291053
rx_queue_2_bytes: 1261620863886
rx_queue_2_drops: 0
rx_queue_2_xdp_packets: 0
rx_queue_2_xdp_tx: 0
rx_queue_2_xdp_redirects: 0
rx_queue_2_xdp_drops: 0
rx_queue_2_kicks: 13857653
rx_queue_3_packets: 872735434
rx_queue_3_bytes: 1314228432612
rx_queue_3_drops: 0
rx_queue_3_xdp_packets: 0
rx_queue_3_xdp_tx: 0
rx_queue_3_xdp_redirects: 0
rx_queue_3_xdp_drops: 0
rx_queue_3_kicks: 14489346
tx_queue_0_packets: 75723
tx_queue_0_bytes: 4999030
tx_queue_0_xdp_tx: 0
tx_queue_0_xdp_tx_drops: 0
tx_queue_0_kicks: 75723
tx_queue_0_timeouts: 0
tx_queue_1_packets: 62262921
tx_queue_1_bytes: 4134803914
tx_queue_1_xdp_tx: 0
tx_queue_1_xdp_tx_drops: 0
tx_queue_1_kicks: 62262921
tx_queue_1_timeouts: 0
tx_queue_2_packets: 83
tx_queue_2_bytes: 5478
tx_queue_2_xdp_tx: 0
tx_queue_2_xdp_tx_drops: 0
tx_queue_2_kicks: 83
tx_queue_2_timeouts: 0
tx_queue_3_packets: 125355503
tx_queue_3_bytes: 8283990618
tx_queue_3_xdp_tx: 0
tx_queue_3_xdp_tx_drops: 0
tx_queue_3_kicks: 125355503
tx_queue_3_timeouts: 0
"
>
> Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
> ---
> include/uapi/linux/virtio_net.h | 137 ++++++++++++++++++++++++++++++++
> 1 file changed, 137 insertions(+)
>
> diff --git a/include/uapi/linux/virtio_net.h b/include/uapi/linux/virtio_net.h
> index cc65ef0f3c3e..129e0871d28f 100644
> --- a/include/uapi/linux/virtio_net.h
> +++ b/include/uapi/linux/virtio_net.h
> @@ -56,6 +56,7 @@
> #define VIRTIO_NET_F_MQ 22 /* Device supports Receive Flow
> * Steering */
> #define VIRTIO_NET_F_CTRL_MAC_ADDR 23 /* Set MAC address */
> +#define VIRTIO_NET_F_DEVICE_STATS 50 /* Device can provide device-level statistics. */
> #define VIRTIO_NET_F_VQ_NOTF_COAL 52 /* Device supports virtqueue notification coalescing */
> #define VIRTIO_NET_F_NOTF_COAL 53 /* Device supports notifications coalescing */
> #define VIRTIO_NET_F_GUEST_USO4 54 /* Guest can handle USOv4 in. */
> @@ -406,4 +407,140 @@ struct virtio_net_ctrl_coal_vq {
> struct virtio_net_ctrl_coal coal;
> };
>
> +/*
> + * Device Statistics
> + */
> +#define VIRTIO_NET_CTRL_STATS 8
> +#define VIRTIO_NET_CTRL_STATS_QUERY 0
> +#define VIRTIO_NET_CTRL_STATS_GET 1
> +
> +struct virtio_net_stats_capabilities {
> +
> +#define VIRTIO_NET_STATS_TYPE_CVQ (1L << 32)
> +
> +#define VIRTIO_NET_STATS_TYPE_RX_BASIC (1 << 0)
> +#define VIRTIO_NET_STATS_TYPE_RX_CSUM (1 << 1)
> +#define VIRTIO_NET_STATS_TYPE_RX_GSO (1 << 2)
> +#define VIRTIO_NET_STATS_TYPE_RX_SPEED (1 << 3)
> +
> +#define VIRTIO_NET_STATS_TYPE_TX_BASIC (1 << 16)
> +#define VIRTIO_NET_STATS_TYPE_TX_CSUM (1 << 17)
> +#define VIRTIO_NET_STATS_TYPE_TX_GSO (1 << 18)
> +#define VIRTIO_NET_STATS_TYPE_TX_SPEED (1 << 19)
> +
> + __le64 supported_stats_types[1];
> +};
> +
> +struct virtio_net_ctrl_queue_stats {
> + struct {
> + __le16 vq_index;
> + __le16 reserved[3];
> + __le64 types_bitmap[1];
> + } stats[1];
> +};
> +
> +struct virtio_net_stats_reply_hdr {
> +#define VIRTIO_NET_STATS_TYPE_REPLY_CVQ 32
> +
> +#define VIRTIO_NET_STATS_TYPE_REPLY_RX_BASIC 0
> +#define VIRTIO_NET_STATS_TYPE_REPLY_RX_CSUM 1
> +#define VIRTIO_NET_STATS_TYPE_REPLY_RX_GSO 2
> +#define VIRTIO_NET_STATS_TYPE_REPLY_RX_SPEED 3
> +
> +#define VIRTIO_NET_STATS_TYPE_REPLY_TX_BASIC 16
> +#define VIRTIO_NET_STATS_TYPE_REPLY_TX_CSUM 17
> +#define VIRTIO_NET_STATS_TYPE_REPLY_TX_GSO 18
> +#define VIRTIO_NET_STATS_TYPE_REPLY_TX_SPEED 19
> + u8 type;
> + u8 reserved;
> + __le16 vq_index;
> + __le16 reserved1;
> + __le16 size;
> +};
> +
> +struct virtio_net_stats_cvq {
> + struct virtio_net_stats_reply_hdr hdr;
> +
> + __le64 command_num;
> + __le64 ok_num;
> +};
> +
> +struct virtio_net_stats_rx_basic {
> + struct virtio_net_stats_reply_hdr hdr;
> +
> + __le64 rx_notifications;
> +
> + __le64 rx_packets;
> + __le64 rx_bytes;
> +
> + __le64 rx_interrupts;
> +
> + __le64 rx_drops;
> + __le64 rx_drop_overruns;
> +};
> +
> +struct virtio_net_stats_tx_basic {
> + struct virtio_net_stats_reply_hdr hdr;
> +
> + __le64 tx_notifications;
> +
> + __le64 tx_packets;
> + __le64 tx_bytes;
> +
> + __le64 tx_interrupts;
> +
> + __le64 tx_drops;
> + __le64 tx_drop_malformed;
> +};
> +
> +struct virtio_net_stats_rx_csum {
> + struct virtio_net_stats_reply_hdr hdr;
> +
> + __le64 rx_csum_valid;
> + __le64 rx_needs_csum;
> + __le64 rx_csum_none;
> + __le64 rx_csum_bad;
> +};
> +
> +struct virtio_net_stats_tx_csum {
> + struct virtio_net_stats_reply_hdr hdr;
> +
> + __le64 tx_csum_none;
> + __le64 tx_needs_csum;
> +};
> +
> +struct virtio_net_stats_rx_gso {
> + struct virtio_net_stats_reply_hdr hdr;
> +
> + __le64 rx_gso_packets;
> + __le64 rx_gso_bytes;
> + __le64 rx_gso_packets_coalesced;
> + __le64 rx_gso_bytes_coalesced;
> +};
> +
> +struct virtio_net_stats_tx_gso {
> + struct virtio_net_stats_reply_hdr hdr;
> +
> + __le64 tx_gso_packets;
> + __le64 tx_gso_bytes;
> + __le64 tx_gso_segments;
> + __le64 tx_gso_segments_bytes;
> + __le64 tx_gso_packets_noseg;
> + __le64 tx_gso_bytes_noseg;
> +};
> +
> +struct virtio_net_stats_rx_speed {
> + struct virtio_net_stats_reply_hdr hdr;
> +
> + __le64 rx_packets_allowance_exceeded;
> + __le64 rx_bytes_allowance_exceeded;
> +};
> +
> +struct virtio_net_stats_tx_speed {
> + struct virtio_net_stats_reply_hdr hdr;
> +
> + __le64 tx_packets_allowance_exceeded;
> + __le64 tx_bytes_allowance_exceeded;
> +};
> +
> #endif /* _UAPI_LINUX_VIRTIO_NET_H */
next prev parent reply other threads:[~2023-12-25 8:01 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-22 3:30 [PATCH net-next 0/6] virtio-net: support device stats Xuan Zhuo
2023-12-22 3:30 ` [PATCH net-next 1/6] virtio_net: introduce device stats feature and structures Xuan Zhuo
2023-12-23 17:55 ` kernel test robot
2023-12-24 8:40 ` Zhu Yanjun
2023-12-25 8:01 ` Zhu Yanjun [this message]
2023-12-26 6:17 ` Xuan Zhuo
2023-12-26 8:58 ` Michael S. Tsirkin
2023-12-26 9:00 ` Xuan Zhuo
2023-12-26 9:08 ` Michael S. Tsirkin
2023-12-26 9:09 ` Xuan Zhuo
2023-12-26 9:19 ` Michael S. Tsirkin
2023-12-26 9:24 ` Xuan Zhuo
2023-12-22 3:30 ` [PATCH net-next 2/6] virtio_net: virtnet_send_command supports command-specific-result Xuan Zhuo
2023-12-22 3:30 ` [PATCH net-next 3/6] virtio_net: support device stats Xuan Zhuo
2023-12-23 17:03 ` kernel test robot
2023-12-23 17:23 ` kernel test robot
2023-12-24 8:55 ` Zhu Yanjun
2024-01-03 21:03 ` Simon Horman
2023-12-22 3:30 ` [PATCH net-next 4/6] virtio_net: stats map include driver stats Xuan Zhuo
2023-12-22 3:30 ` [PATCH net-next 5/6] virtio_net: add the total stats field Xuan Zhuo
2023-12-22 3:30 ` [PATCH net-next 6/6] virtio_net: rename stat tx_timeout to timeout Xuan Zhuo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f6cea3db-aef6-43a9-96a9-04fe42e6a1f3@linux.dev \
--to=yanjun.zhu@linux.dev \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=jasowang@redhat.com \
--cc=kuba@kernel.org \
--cc=mst@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=virtualization@lists.linux.dev \
--cc=xuanzhuo@linux.alibaba.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.