All of lore.kernel.org
 help / color / mirror / Atom feed
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 */


  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.