mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 06:01:57 +00:00
netdev: add queue stat for alloc failures
Rx alloc failures are commonly counted by drivers. Support reporting those via netdev-genl queue stats. Acked-by: Stanislav Fomichev <sdf@google.com> Reviewed-by: Amritha Nambiar <amritha.nambiar@intel.com> Reviewed-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com> Link: https://lore.kernel.org/r/20240306195509.1502746-3-kuba@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
ab63a2387c
commit
92f8b1f5ca
@ -328,6 +328,13 @@ attribute-sets:
|
||||
name: tx-bytes
|
||||
doc: Successfully sent bytes, see `tx-packets`.
|
||||
type: uint
|
||||
-
|
||||
name: rx-alloc-fail
|
||||
doc: |
|
||||
Number of times skb or buffer allocation failed on the Rx datapath.
|
||||
Allocation failure may, or may not result in a packet drop, depending
|
||||
on driver implementation and whether system recovers quickly.
|
||||
type: uint
|
||||
|
||||
operations:
|
||||
list:
|
||||
|
@ -4,9 +4,11 @@
|
||||
|
||||
#include <linux/netdevice.h>
|
||||
|
||||
/* See the netdev.yaml spec for definition of each statistic */
|
||||
struct netdev_queue_stats_rx {
|
||||
u64 bytes;
|
||||
u64 packets;
|
||||
u64 alloc_fail;
|
||||
};
|
||||
|
||||
struct netdev_queue_stats_tx {
|
||||
|
@ -145,6 +145,7 @@ enum {
|
||||
NETDEV_A_QSTATS_RX_BYTES,
|
||||
NETDEV_A_QSTATS_TX_PACKETS,
|
||||
NETDEV_A_QSTATS_TX_BYTES,
|
||||
NETDEV_A_QSTATS_RX_ALLOC_FAIL,
|
||||
|
||||
__NETDEV_A_QSTATS_MAX,
|
||||
NETDEV_A_QSTATS_MAX = (__NETDEV_A_QSTATS_MAX - 1)
|
||||
|
@ -488,7 +488,8 @@ static int
|
||||
netdev_nl_stats_write_rx(struct sk_buff *rsp, struct netdev_queue_stats_rx *rx)
|
||||
{
|
||||
if (netdev_stat_put(rsp, NETDEV_A_QSTATS_RX_PACKETS, rx->packets) ||
|
||||
netdev_stat_put(rsp, NETDEV_A_QSTATS_RX_BYTES, rx->bytes))
|
||||
netdev_stat_put(rsp, NETDEV_A_QSTATS_RX_BYTES, rx->bytes) ||
|
||||
netdev_stat_put(rsp, NETDEV_A_QSTATS_RX_ALLOC_FAIL, rx->alloc_fail))
|
||||
return -EMSGSIZE;
|
||||
return 0;
|
||||
}
|
||||
|
@ -145,6 +145,7 @@ enum {
|
||||
NETDEV_A_QSTATS_RX_BYTES,
|
||||
NETDEV_A_QSTATS_TX_PACKETS,
|
||||
NETDEV_A_QSTATS_TX_BYTES,
|
||||
NETDEV_A_QSTATS_RX_ALLOC_FAIL,
|
||||
|
||||
__NETDEV_A_QSTATS_MAX,
|
||||
NETDEV_A_QSTATS_MAX = (__NETDEV_A_QSTATS_MAX - 1)
|
||||
|
Loading…
Reference in New Issue
Block a user