Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

net/mlx5: Expose uar access and odp page fault counters

Add three counters to vnic health reporter:
bar_uar_access, odp_local_triggered_page_fault, and
odp_remote_triggered_page_fault.

- bar_uar_access
number of WRITE or READ access operations to the UAR on the PCIe
BAR.
- odp_local_triggered_page_fault
number of locally-triggered page-faults due to ODP.
- odp_remote_triggered_page_fault
number of remotly-triggered page-faults due to ODP.

Example access:
$ devlink health diagnose pci/0000:08:00.0 reporter vnic
vNIC env counters:
total_error_queues: 0 send_queue_priority_update_flow: 0
comp_eq_overrun: 0 async_eq_overrun: 0 cq_overrun: 0
invalid_command: 0 quota_exceeded_command: 0
nic_receive_steering_discard: 0 icm_consumption: 1032
bar_uar_access: 1279 odp_local_triggered_page_fault: 20
odp_remote_triggered_page_fault: 34

Signed-off-by: Akiva Goldberger <agoldberger@nvidia.com>
Reviewed-by: Moshe Shemesh <moshe@nvidia.com>
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/1758797130-829564-1-git-send-email-tariqt@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Akiva Goldberger and committed by
Jakub Kicinski
e835faae 1493c18f

+15
+6
Documentation/networking/devlink/mlx5.rst
··· 385 385 amount of Interconnect Host Memory (ICM) consumed by the vnic in 386 386 granularity of 4KB. ICM is host memory allocated by SW upon HCA request 387 387 and is used for storing data structures that control HCA operation. 388 + - bar_uar_access 389 + number of WRITE or READ access operations to the UAR on the PCIe BAR. 390 + - odp_local_triggered_page_fault 391 + number of locally-triggered page-faults due to ODP. 392 + - odp_remote_triggered_page_fault 393 + number of remotly-triggered page-faults due to ODP. 388 394 389 395 User commands examples: 390 396
+9
drivers/net/ethernet/mellanox/mlx5/core/diag/reporter_vnic.c
··· 107 107 } 108 108 if (MLX5_CAP_GEN(dev, nic_cap_reg)) 109 109 mlx5_reporter_vnic_diagnose_counter_icm(dev, fmsg, vport_num, other_vport); 110 + if (MLX5_CAP_GEN(dev, vnic_env_cnt_bar_uar_access)) 111 + devlink_fmsg_u32_pair_put(fmsg, "bar_uar_access", 112 + VNIC_ENV_GET(&vnic, bar_uar_access)); 113 + if (MLX5_CAP_GEN(dev, vnic_env_cnt_odp_page_fault)) { 114 + devlink_fmsg_u32_pair_put(fmsg, "odp_local_triggered_page_fault", 115 + VNIC_ENV_GET(&vnic, odp_local_triggered_page_fault)); 116 + devlink_fmsg_u32_pair_put(fmsg, "odp_remote_triggered_page_fault", 117 + VNIC_ENV_GET(&vnic, odp_remote_triggered_page_fault)); 118 + } 110 119 111 120 devlink_fmsg_obj_nest_end(fmsg); 112 121 devlink_fmsg_pair_nest_end(fmsg);