net: page_pool: expose page pool stats via netlink
Dump the stats into netlink. More clever approaches like dumping the stats per-CPU for each CPU individually to see where the packets get consumed can be implemented in the future. A trimmed example from a real (but recently booted system): $ ./cli.py --no-schema --spec netlink/specs/netdev.yaml \ --dump page-pool-stats-get [{'info': {'id': 19, 'ifindex': 2}, 'alloc-empty': 48, 'alloc-fast': 3024, 'alloc-refill': 0, 'alloc-slow': 48, 'alloc-slow-high-order': 0, 'alloc-waive': 0, 'recycle-cache-full': 0, 'recycle-cached': 0, 'recycle-released-refcnt': 0, 'recycle-ring': 0, 'recycle-ring-full': 0}, {'info': {'id': 18, 'ifindex': 2}, 'alloc-empty': 66, 'alloc-fast': 11811, 'alloc-refill': 35, 'alloc-slow': 66, 'alloc-slow-high-order': 0, 'alloc-waive': 0, 'recycle-cache-full': 1145, 'recycle-cached': 6541, 'recycle-released-refcnt': 0, 'recycle-ring': 1275, 'recycle-ring-full': 0}, {'info': {'id': 17, 'ifindex': 2}, 'alloc-empty': 73, 'alloc-fast': 62099, 'alloc-refill': 413, ... Acked-by: Jesper Dangaard Brouer <hawk@kernel.org> Signed-off-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
committed by
Paolo Abeni
parent
69cb4952b6
commit
d49010adae
@ -139,6 +139,59 @@ attribute-sets:
|
||||
"re-attached", they are just waiting to disappear.
|
||||
Attribute is absent if Page Pool has not been detached, and
|
||||
can still be used to allocate new memory.
|
||||
-
|
||||
name: page-pool-info
|
||||
subset-of: page-pool
|
||||
attributes:
|
||||
-
|
||||
name: id
|
||||
-
|
||||
name: ifindex
|
||||
-
|
||||
name: page-pool-stats
|
||||
doc: |
|
||||
Page pool statistics, see docs for struct page_pool_stats
|
||||
for information about individual statistics.
|
||||
attributes:
|
||||
-
|
||||
name: info
|
||||
doc: Page pool identifying information.
|
||||
type: nest
|
||||
nested-attributes: page-pool-info
|
||||
-
|
||||
name: alloc-fast
|
||||
type: uint
|
||||
value: 8 # reserve some attr ids in case we need more metadata later
|
||||
-
|
||||
name: alloc-slow
|
||||
type: uint
|
||||
-
|
||||
name: alloc-slow-high-order
|
||||
type: uint
|
||||
-
|
||||
name: alloc-empty
|
||||
type: uint
|
||||
-
|
||||
name: alloc-refill
|
||||
type: uint
|
||||
-
|
||||
name: alloc-waive
|
||||
type: uint
|
||||
-
|
||||
name: recycle-cached
|
||||
type: uint
|
||||
-
|
||||
name: recycle-cache-full
|
||||
type: uint
|
||||
-
|
||||
name: recycle-ring
|
||||
type: uint
|
||||
-
|
||||
name: recycle-ring-full
|
||||
type: uint
|
||||
-
|
||||
name: recycle-released-refcnt
|
||||
type: uint
|
||||
|
||||
operations:
|
||||
list:
|
||||
@ -212,6 +265,31 @@ operations:
|
||||
notify: page-pool-get
|
||||
mcgrp: page-pool
|
||||
config-cond: page-pool
|
||||
-
|
||||
name: page-pool-stats-get
|
||||
doc: Get page pool statistics.
|
||||
attribute-set: page-pool-stats
|
||||
do:
|
||||
request:
|
||||
attributes:
|
||||
- info
|
||||
reply: &pp-stats-reply
|
||||
attributes:
|
||||
- info
|
||||
- alloc-fast
|
||||
- alloc-slow
|
||||
- alloc-slow-high-order
|
||||
- alloc-empty
|
||||
- alloc-refill
|
||||
- alloc-waive
|
||||
- recycle-cached
|
||||
- recycle-cache-full
|
||||
- recycle-ring
|
||||
- recycle-ring-full
|
||||
- recycle-released-refcnt
|
||||
dump:
|
||||
reply: *pp-stats-reply
|
||||
config-cond: page-pool-stats
|
||||
|
||||
mcast-groups:
|
||||
list:
|
||||
|
Reference in New Issue
Block a user