← Documents Documentation/networking/device_drivers/ethernet/mellanox/mlx5/tracepoints.rst GitHub 원문 ↗

Linux 6.18.37 · Networking

mlx5 Tracepoints

mlx5의 TC/eSwitch, bridge, QoS와 subfunction 수명 주기를 kernel tracepoint로 추적하는 방법입니다.

Source pathDocumentation/networking/device_drivers/ethernet/mellanox/mlx5/tracepoints.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약·해설

tracepoints.rst:1-229

tracepoint는 누적 카운터가 알려 주지 못하는 사건의 순서와 필드를 보여 줍니다. 문제 범위에 맞는 이벤트만 `set_event`에 추가하고 trace에서 cookie, port index, hardware ID, TSAR index 같은 상관 키를 따라가면 됩니다.

추적 범위 선택
증상이벤트 계열상관 키
TC 규칙 미적용`mlx5e_*flower`cookie, actions
터널 경로 갱신`*neigh*`netdev, IP, MAC
bridge FDB/VLAN`mlx5_esw_bridge_*`MAC, VID, vPort
대역폭 설정`mlx5_esw_*qos*`TSAR index, group, rate
SF 생성·삭제`mlx5_sf_*`port index, hardware ID, SF number

증상과 이벤트 계열을 연결합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 .. SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB
2 .. include:: <isonum.txt>
3
4 ===========
5 Tracepoints
6 ===========
7
8 :Copyright: |copy| 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
9
10 mlx5 driver provides internal tracepoints for tracking and debugging using
11 kernel tracepoints interfaces (refer to Documentation/trace/ftrace.rst).
12
13 For the list of support mlx5 events, check /sys/kernel/tracing/events/mlx5/.
14
15 tc and eswitch offloads tracepoints:
16
17 - mlx5e_configure_flower: trace flower filter actions and cookies offloaded to mlx5::
18
19 $ echo mlx5:mlx5e_configure_flower >> /sys/kernel/tracing/set_event
20 $ cat /sys/kernel/tracing/trace
21 ...
22 tc-6535 [019] ...1 2672.404466: mlx5e_configure_flower: cookie=0000000067874a55 actions= REDIRECT
23
24 - mlx5e_delete_flower: trace flower filter actions and cookies deleted from mlx5::
25
26 $ echo mlx5:mlx5e_delete_flower >> /sys/kernel/tracing/set_event
27 $ cat /sys/kernel/tracing/trace
28 ...
29 tc-6569 [010] .N.1 2686.379075: mlx5e_delete_flower: cookie=0000000067874a55 actions= NULL
30
31 - mlx5e_stats_flower: trace flower stats request::
32
33 $ echo mlx5:mlx5e_stats_flower >> /sys/kernel/tracing/set_event
34 $ cat /sys/kernel/tracing/trace
35 ...
36 tc-6546 [010] ...1 2679.704889: mlx5e_stats_flower: cookie=0000000060eb3d6a bytes=0 packets=0 lastused=4295560217
37
38 - mlx5e_tc_update_neigh_used_value: trace tunnel rule neigh update value offloaded to mlx5::
39
40 $ echo mlx5:mlx5e_tc_update_neigh_used_value >> /sys/kernel/tracing/set_event
41 $ cat /sys/kernel/tracing/trace
42 ...
43 kworker/u48:4-8806 [009] ...1 55117.882428: mlx5e_tc_update_neigh_used_value: netdev: ens1f0 IPv4: 1.1.1.10 IPv6: ::ffff:1.1.1.10 neigh_used=1
44
45 - mlx5e_rep_neigh_update: trace neigh update tasks scheduled due to neigh state change events::
46
47 $ echo mlx5:mlx5e_rep_neigh_update >> /sys/kernel/tracing/set_event
48 $ cat /sys/kernel/tracing/trace
49 ...
50 kworker/u48:7-2221 [009] ...1 1475.387435: mlx5e_rep_neigh_update: netdev: ens1f0 MAC: 24:8a:07:9a:17:9a IPv4: 1.1.1.10 IPv6: ::ffff:1.1.1.10 neigh_connected=1
51
52 Bridge offloads tracepoints:
53
54 - mlx5_esw_bridge_fdb_entry_init: trace bridge FDB entry offloaded to mlx5::
55
56 $ echo mlx5:mlx5_esw_bridge_fdb_entry_init >> set_event
57 $ cat /sys/kernel/tracing/trace
58 ...
59 kworker/u20:9-2217 [003] ...1 318.582243: mlx5_esw_bridge_fdb_entry_init: net_device=enp8s0f0_0 addr=e4:fd:05:08:00:02 vid=0 flags=0 used=0
60
61 - mlx5_esw_bridge_fdb_entry_cleanup: trace bridge FDB entry deleted from mlx5::
62
63 $ echo mlx5:mlx5_esw_bridge_fdb_entry_cleanup >> set_event
64 $ cat /sys/kernel/tracing/trace
65 ...
66 ip-2581 [005] ...1 318.629871: mlx5_esw_bridge_fdb_entry_cleanup: net_device=enp8s0f0_1 addr=e4:fd:05:08:00:03 vid=0 flags=0 used=16
67
68 - mlx5_esw_bridge_fdb_entry_refresh: trace bridge FDB entry offload refreshed in
69 mlx5::
70
71 $ echo mlx5:mlx5_esw_bridge_fdb_entry_refresh >> set_event
72 $ cat /sys/kernel/tracing/trace
73 ...
74 kworker/u20:8-3849 [003] ...1 466716: mlx5_esw_bridge_fdb_entry_refresh: net_device=enp8s0f0_0 addr=e4:fd:05:08:00:02 vid=3 flags=0 used=0
75
76 - mlx5_esw_bridge_vlan_create: trace bridge VLAN object add on mlx5
77 representor::
78
79 $ echo mlx5:mlx5_esw_bridge_vlan_create >> set_event
80 $ cat /sys/kernel/tracing/trace
81 ...
82 ip-2560 [007] ...1 318.460258: mlx5_esw_bridge_vlan_create: vid=1 flags=6
83
84 - mlx5_esw_bridge_vlan_cleanup: trace bridge VLAN object delete from mlx5
85 representor::
86
87 $ echo mlx5:mlx5_esw_bridge_vlan_cleanup >> set_event
88 $ cat /sys/kernel/tracing/trace
89 ...
90 bridge-2582 [007] ...1 318.653496: mlx5_esw_bridge_vlan_cleanup: vid=2 flags=8
91
92 - mlx5_esw_bridge_vport_init: trace mlx5 vport assigned with bridge upper
93 device::
94
95 $ echo mlx5:mlx5_esw_bridge_vport_init >> set_event
96 $ cat /sys/kernel/tracing/trace
97 ...
98 ip-2560 [007] ...1 318.458915: mlx5_esw_bridge_vport_init: vport_num=1
99
100 - mlx5_esw_bridge_vport_cleanup: trace mlx5 vport removed from bridge upper
101 device::
102
103 $ echo mlx5:mlx5_esw_bridge_vport_cleanup >> set_event
104 $ cat /sys/kernel/tracing/trace
105 ...
106 ip-5387 [000] ...1 573713: mlx5_esw_bridge_vport_cleanup: vport_num=1
107
108 Eswitch QoS tracepoints:
109
110 - mlx5_esw_vport_qos_create: trace creation of transmit scheduler arbiter for vport::
111
112 $ echo mlx5:mlx5_esw_vport_qos_create >> /sys/kernel/tracing/set_event
113 $ cat /sys/kernel/tracing/trace
114 ...
115 <...>-23496 [018] .... 73136.838831: mlx5_esw_vport_qos_create: (0000:82:00.0) vport=2 tsar_ix=4 bw_share=0, max_rate=0 group=000000007b576bb3
116
117 - mlx5_esw_vport_qos_config: trace configuration of transmit scheduler arbiter for vport::
118
119 $ echo mlx5:mlx5_esw_vport_qos_config >> /sys/kernel/tracing/set_event
120 $ cat /sys/kernel/tracing/trace
121 ...
122 <...>-26548 [023] .... 75754.223823: mlx5_esw_vport_qos_config: (0000:82:00.0) vport=1 tsar_ix=3 bw_share=34, max_rate=10000 group=000000007b576bb3
123
124 - mlx5_esw_vport_qos_destroy: trace deletion of transmit scheduler arbiter for vport::
125
126 $ echo mlx5:mlx5_esw_vport_qos_destroy >> /sys/kernel/tracing/set_event
127 $ cat /sys/kernel/tracing/trace
128 ...
129 <...>-27418 [004] .... 76546.680901: mlx5_esw_vport_qos_destroy: (0000:82:00.0) vport=1 tsar_ix=3
130
131 - mlx5_esw_group_qos_create: trace creation of transmit scheduler arbiter for rate group::
132
133 $ echo mlx5:mlx5_esw_group_qos_create >> /sys/kernel/tracing/set_event
134 $ cat /sys/kernel/tracing/trace
135 ...
136 <...>-26578 [008] .... 75776.022112: mlx5_esw_group_qos_create: (0000:82:00.0) group=000000008dac63ea tsar_ix=5
137
138 - mlx5_esw_group_qos_config: trace configuration of transmit scheduler arbiter for rate group::
139
140 $ echo mlx5:mlx5_esw_group_qos_config >> /sys/kernel/tracing/set_event
141 $ cat /sys/kernel/tracing/trace
142 ...
143 <...>-27303 [020] .... 76461.455356: mlx5_esw_group_qos_config: (0000:82:00.0) group=000000008dac63ea tsar_ix=5 bw_share=100 max_rate=20000
144
145 - mlx5_esw_group_qos_destroy: trace deletion of transmit scheduler arbiter for group::
146
147 $ echo mlx5:mlx5_esw_group_qos_destroy >> /sys/kernel/tracing/set_event
148 $ cat /sys/kernel/tracing/trace
149 ...
150 <...>-27418 [006] .... 76547.187258: mlx5_esw_group_qos_destroy: (0000:82:00.0) group=000000007b576bb3 tsar_ix=1
151
152 SF tracepoints:
153
154 - mlx5_sf_add: trace addition of the SF port::
155
156 $ echo mlx5:mlx5_sf_add >> /sys/kernel/tracing/set_event
157 $ cat /sys/kernel/tracing/trace
158 ...
159 devlink-9363 [031] ..... 24610.188722: mlx5_sf_add: (0000:06:00.0) port_index=32768 controller=0 hw_id=0x8000 sfnum=88
160
161 - mlx5_sf_free: trace freeing of the SF port::
162
163 $ echo mlx5:mlx5_sf_free >> /sys/kernel/tracing/set_event
164 $ cat /sys/kernel/tracing/trace
165 ...
166 devlink-9830 [038] ..... 26300.404749: mlx5_sf_free: (0000:06:00.0) port_index=32768 controller=0 hw_id=0x8000
167
168 - mlx5_sf_activate: trace activation of the SF port::
169
170 $ echo mlx5:mlx5_sf_activate >> /sys/kernel/tracing/set_event
171 $ cat /sys/kernel/tracing/trace
172 ...
173 devlink-29841 [008] ..... 3669.635095: mlx5_sf_activate: (0000:08:00.0) port_index=32768 controller=0 hw_id=0x8000
174
175 - mlx5_sf_deactivate: trace deactivation of the SF port::
176
177 $ echo mlx5:mlx5_sf_deactivate >> /sys/kernel/tracing/set_event
178 $ cat /sys/kernel/tracing/trace
179 ...
180 devlink-29994 [008] ..... 4015.969467: mlx5_sf_deactivate: (0000:08:00.0) port_index=32768 controller=0 hw_id=0x8000
181
182 - mlx5_sf_hwc_alloc: trace allocating of the hardware SF context::
183
184 $ echo mlx5:mlx5_sf_hwc_alloc >> /sys/kernel/tracing/set_event
185 $ cat /sys/kernel/tracing/trace
186 ...
187 devlink-9775 [031] ..... 26296.385259: mlx5_sf_hwc_alloc: (0000:06:00.0) controller=0 hw_id=0x8000 sfnum=88
188
189 - mlx5_sf_hwc_free: trace freeing of the hardware SF context::
190
191 $ echo mlx5:mlx5_sf_hwc_free >> /sys/kernel/tracing/set_event
192 $ cat /sys/kernel/tracing/trace
193 ...
194 kworker/u128:3-9093 [046] ..... 24625.365771: mlx5_sf_hwc_free: (0000:06:00.0) hw_id=0x8000
195
196 - mlx5_sf_hwc_deferred_free: trace deferred freeing of the hardware SF context::
197
198 $ echo mlx5:mlx5_sf_hwc_deferred_free >> /sys/kernel/tracing/set_event
199 $ cat /sys/kernel/tracing/trace
200 ...
201 devlink-9519 [046] ..... 24624.400271: mlx5_sf_hwc_deferred_free: (0000:06:00.0) hw_id=0x8000
202
203 - mlx5_sf_update_state: trace state updates for SF contexts::
204
205 $ echo mlx5:mlx5_sf_update_state >> /sys/kernel/tracing/set_event
206 $ cat /sys/kernel/tracing/trace
207 ...
208 kworker/u20:3-29490 [009] ..... 4141.453530: mlx5_sf_update_state: (0000:08:00.0) port_index=32768 controller=0 hw_id=0x8000 state=2
209
210 - mlx5_sf_vhca_event: trace SF vhca event and state::
211
212 $ echo mlx5:mlx5_sf_vhca_event >> /sys/kernel/tracing/set_event
213 $ cat /sys/kernel/tracing/trace
214 ...
215 kworker/u128:3-9093 [046] ..... 24625.365525: mlx5_sf_vhca_event: (0000:06:00.0) hw_id=0x8000 sfnum=88 vhca_state=1
216
217 - mlx5_sf_dev_add: trace SF device add event::
218
219 $ echo mlx5:mlx5_sf_dev_add>> /sys/kernel/tracing/set_event
220 $ cat /sys/kernel/tracing/trace
221 ...
222 kworker/u128:3-9093 [000] ..... 24616.524495: mlx5_sf_dev_add: (0000:06:00.0) sfdev=00000000fc5d96fd aux_id=4 hw_id=0x8000 sfnum=88
223
224 - mlx5_sf_dev_del: trace SF device delete event::
225
226 $ echo mlx5:mlx5_sf_dev_del >> /sys/kernel/tracing/set_event
227 $ cat /sys/kernel/tracing/trace
228 ...
229 kworker/u128:3-9093 [044] ..... 24624.400749: mlx5_sf_dev_del: (0000:06:00.0) sfdev=00000000fc5d96fd aux_id=4 hw_id=0x8000 sfnum=88
230

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

TC와 eSwitch 오프로딩 추적점

1-51

이 문서는 `GPL-2.0 OR Linux-OpenIB` 이중 라이선스를 따릅니다.

추적점

mlx5 드라이버는 커널 tracepoint 인터페이스로 내부 동작을 추적하고 디버깅합니다. 자세한 사용법은 `Documentation/trace/ftrace.rst`, 지원 이벤트 목록은 `/sys/kernel/tracing/events/mlx5/`에서 확인합니다.

TC와 eSwitch 오프로딩 이벤트
이벤트의미주요 필드
`mlx5e_configure_flower`mlx5로 오프로딩한 flower filter action과 cookie`cookie`, `actions`
`mlx5e_delete_flower`mlx5에서 삭제한 flower filter action과 cookie`cookie`, `actions`
`mlx5e_stats_flower`flower 통계 조회 요청`bytes`, `packets`, `lastused`
`mlx5e_tc_update_neigh_used_value`터널 규칙의 neighbor 사용 값 갱신netdev, IPv4/IPv6, `neigh_used`
`mlx5e_rep_neigh_update`neighbor 상태 변화로 예약한 representor 갱신 작업netdev, MAC, IP, `neigh_connected`

flower 규칙 수명 주기와 터널 neighbor 갱신을 추적합니다.

$ echo mlx5:mlx5e_configure_flower >> /sys/kernel/tracing/set_event
$ cat /sys/kernel/tracing/trace
...
tc-6535  [019] ...1  2672.404466: mlx5e_configure_flower: cookie=0000000067874a55 actions= REDIRECT
$ echo mlx5:mlx5e_delete_flower >> /sys/kernel/tracing/set_event
$ cat /sys/kernel/tracing/trace
...
tc-6569  [010] .N.1  2686.379075: mlx5e_delete_flower: cookie=0000000067874a55 actions= NULL
$ echo mlx5:mlx5e_stats_flower >> /sys/kernel/tracing/set_event
$ cat /sys/kernel/tracing/trace
...
tc-6546  [010] ...1  2679.704889: mlx5e_stats_flower: cookie=0000000060eb3d6a bytes=0 packets=0 lastused=4295560217
$ echo mlx5:mlx5e_tc_update_neigh_used_value >> /sys/kernel/tracing/set_event
$ cat /sys/kernel/tracing/trace
...
kworker/u48:4-8806  [009] ...1 55117.882428: mlx5e_tc_update_neigh_used_value: netdev: ens1f0 IPv4: 1.1.1.10 IPv6: ::ffff:1.1.1.10 neigh_used=1
$ echo mlx5:mlx5e_rep_neigh_update >> /sys/kernel/tracing/set_event
$ cat /sys/kernel/tracing/trace
...
kworker/u48:7-2221  [009] ...1  1475.387435: mlx5e_rep_neigh_update: netdev: ens1f0 MAC: 24:8a:07:9a:17:9a IPv4: 1.1.1.10 IPv6: ::ffff:1.1.1.10 neigh_connected=1
.. SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB
.. include:: <isonum.txt>

===========
Tracepoints
===========

:Copyright: |copy| 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved.

mlx5 driver provides internal tracepoints for tracking and debugging using
kernel tracepoints interfaces (refer to Documentation/trace/ftrace.rst).

For the list of support mlx5 events, check /sys/kernel/tracing/events/mlx5/.

tc and eswitch offloads tracepoints:

- mlx5e_configure_flower: trace flower filter actions and cookies offloaded to mlx5::

    $ echo mlx5:mlx5e_configure_flower >> /sys/kernel/tracing/set_event
    $ cat /sys/kernel/tracing/trace
    ...
    tc-6535  [019] ...1  2672.404466: mlx5e_configure_flower: cookie=0000000067874a55 actions= REDIRECT

- mlx5e_delete_flower: trace flower filter actions and cookies deleted from mlx5::

    $ echo mlx5:mlx5e_delete_flower >> /sys/kernel/tracing/set_event
    $ cat /sys/kernel/tracing/trace
    ...
    tc-6569  [010] .N.1  2686.379075: mlx5e_delete_flower: cookie=0000000067874a55 actions= NULL

- mlx5e_stats_flower: trace flower stats request::

    $ echo mlx5:mlx5e_stats_flower >> /sys/kernel/tracing/set_event
    $ cat /sys/kernel/tracing/trace
    ...
    tc-6546  [010] ...1  2679.704889: mlx5e_stats_flower: cookie=0000000060eb3d6a bytes=0 packets=0 lastused=4295560217

- mlx5e_tc_update_neigh_used_value: trace tunnel rule neigh update value offloaded to mlx5::

    $ echo mlx5:mlx5e_tc_update_neigh_used_value >> /sys/kernel/tracing/set_event
    $ cat /sys/kernel/tracing/trace
    ...
    kworker/u48:4-8806  [009] ...1 55117.882428: mlx5e_tc_update_neigh_used_value: netdev: ens1f0 IPv4: 1.1.1.10 IPv6: ::ffff:1.1.1.10 neigh_used=1

- mlx5e_rep_neigh_update: trace neigh update tasks scheduled due to neigh state change events::

    $ echo mlx5:mlx5e_rep_neigh_update >> /sys/kernel/tracing/set_event
    $ cat /sys/kernel/tracing/trace
    ...
    kworker/u48:7-2221  [009] ...1  1475.387435: mlx5e_rep_neigh_update: netdev: ens1f0 MAC: 24:8a:07:9a:17:9a IPv4: 1.1.1.10 IPv6: ::ffff:1.1.1.10 neigh_connected=1

브리지 오프로딩 추적점

52-107

브리지 오프로딩 추적점

브리지 FDB·VLAN·vPort 이벤트
이벤트의미주요 필드
`mlx5_esw_bridge_fdb_entry_init`mlx5에 오프로딩한 bridge FDB entrynetdev, MAC, VID, flags, used
`mlx5_esw_bridge_fdb_entry_cleanup`mlx5에서 삭제한 bridge FDB entrynetdev, MAC, VID, flags, used
`mlx5_esw_bridge_fdb_entry_refresh`mlx5에서 새로 고친 bridge FDB entrynetdev, MAC, VID, flags, used
`mlx5_esw_bridge_vlan_create`representor에 추가한 bridge VLAN 객체VID, flags
`mlx5_esw_bridge_vlan_cleanup`representor에서 삭제한 bridge VLAN 객체VID, flags
`mlx5_esw_bridge_vport_init`bridge upper device에 배정한 mlx5 vPort`vport_num`
`mlx5_esw_bridge_vport_cleanup`bridge upper device에서 제거한 mlx5 vPort`vport_num`

bridge 객체가 mlx5 하드웨어에 생성, 갱신, 삭제되는 과정을 추적합니다.

$ echo mlx5:mlx5_esw_bridge_fdb_entry_init >> set_event
$ cat /sys/kernel/tracing/trace
...
kworker/u20:9-2217    [003] ...1   318.582243: mlx5_esw_bridge_fdb_entry_init: net_device=enp8s0f0_0 addr=e4:fd:05:08:00:02 vid=0 flags=0 used=0
$ echo mlx5:mlx5_esw_bridge_fdb_entry_cleanup >> set_event
$ cat /sys/kernel/tracing/trace
...
ip-2581    [005] ...1   318.629871: mlx5_esw_bridge_fdb_entry_cleanup: net_device=enp8s0f0_1 addr=e4:fd:05:08:00:03 vid=0 flags=0 used=16
$ echo mlx5:mlx5_esw_bridge_fdb_entry_refresh >> set_event
$ cat /sys/kernel/tracing/trace
...
kworker/u20:8-3849    [003] ...1       466716: mlx5_esw_bridge_fdb_entry_refresh: net_device=enp8s0f0_0 addr=e4:fd:05:08:00:02 vid=3 flags=0 used=0
$ echo mlx5:mlx5_esw_bridge_vlan_create >> set_event
$ cat /sys/kernel/tracing/trace
...
ip-2560    [007] ...1   318.460258: mlx5_esw_bridge_vlan_create: vid=1 flags=6
$ echo mlx5:mlx5_esw_bridge_vlan_cleanup >> set_event
$ cat /sys/kernel/tracing/trace
...
bridge-2582    [007] ...1   318.653496: mlx5_esw_bridge_vlan_cleanup: vid=2 flags=8
$ echo mlx5:mlx5_esw_bridge_vport_init >> set_event
$ cat /sys/kernel/tracing/trace
...
ip-2560    [007] ...1   318.458915: mlx5_esw_bridge_vport_init: vport_num=1
$ echo mlx5:mlx5_esw_bridge_vport_cleanup >> set_event
$ cat /sys/kernel/tracing/trace
...
ip-5387    [000] ...1       573713: mlx5_esw_bridge_vport_cleanup: vport_num=1
Bridge offloads tracepoints:

- mlx5_esw_bridge_fdb_entry_init: trace bridge FDB entry offloaded to mlx5::

    $ echo mlx5:mlx5_esw_bridge_fdb_entry_init >> set_event
    $ cat /sys/kernel/tracing/trace
    ...
    kworker/u20:9-2217    [003] ...1   318.582243: mlx5_esw_bridge_fdb_entry_init: net_device=enp8s0f0_0 addr=e4:fd:05:08:00:02 vid=0 flags=0 used=0

- mlx5_esw_bridge_fdb_entry_cleanup: trace bridge FDB entry deleted from mlx5::

    $ echo mlx5:mlx5_esw_bridge_fdb_entry_cleanup >> set_event
    $ cat /sys/kernel/tracing/trace
    ...
    ip-2581    [005] ...1   318.629871: mlx5_esw_bridge_fdb_entry_cleanup: net_device=enp8s0f0_1 addr=e4:fd:05:08:00:03 vid=0 flags=0 used=16

- mlx5_esw_bridge_fdb_entry_refresh: trace bridge FDB entry offload refreshed in
  mlx5::

    $ echo mlx5:mlx5_esw_bridge_fdb_entry_refresh >> set_event
    $ cat /sys/kernel/tracing/trace
    ...
    kworker/u20:8-3849    [003] ...1       466716: mlx5_esw_bridge_fdb_entry_refresh: net_device=enp8s0f0_0 addr=e4:fd:05:08:00:02 vid=3 flags=0 used=0

- mlx5_esw_bridge_vlan_create: trace bridge VLAN object add on mlx5
  representor::

    $ echo mlx5:mlx5_esw_bridge_vlan_create >> set_event
    $ cat /sys/kernel/tracing/trace
    ...
    ip-2560    [007] ...1   318.460258: mlx5_esw_bridge_vlan_create: vid=1 flags=6

- mlx5_esw_bridge_vlan_cleanup: trace bridge VLAN object delete from mlx5
  representor::

    $ echo mlx5:mlx5_esw_bridge_vlan_cleanup >> set_event
    $ cat /sys/kernel/tracing/trace
    ...
    bridge-2582    [007] ...1   318.653496: mlx5_esw_bridge_vlan_cleanup: vid=2 flags=8

- mlx5_esw_bridge_vport_init: trace mlx5 vport assigned with bridge upper
  device::

    $ echo mlx5:mlx5_esw_bridge_vport_init >> set_event
    $ cat /sys/kernel/tracing/trace
    ...
    ip-2560    [007] ...1   318.458915: mlx5_esw_bridge_vport_init: vport_num=1

- mlx5_esw_bridge_vport_cleanup: trace mlx5 vport removed from bridge upper
  device::

    $ echo mlx5:mlx5_esw_bridge_vport_cleanup >> set_event
    $ cat /sys/kernel/tracing/trace
    ...
    ip-5387    [000] ...1       573713: mlx5_esw_bridge_vport_cleanup: vport_num=1

eSwitch QoS 추적점

108-151

eSwitch QoS 추적점

vPort·rate group QoS 이벤트
이벤트대상주요 필드
`mlx5_esw_vport_qos_create`vPort arbiter 생성vPort, `tsar_ix`, `bw_share`, `max_rate`, group
`mlx5_esw_vport_qos_config`vPort arbiter 설정vPort, `tsar_ix`, `bw_share`, `max_rate`, group
`mlx5_esw_vport_qos_destroy`vPort arbiter 삭제vPort, `tsar_ix`
`mlx5_esw_group_qos_create`rate group arbiter 생성group, `tsar_ix`
`mlx5_esw_group_qos_config`rate group arbiter 설정group, `tsar_ix`, `bw_share`, `max_rate`
`mlx5_esw_group_qos_destroy`rate group arbiter 삭제group, `tsar_ix`

송신 scheduler arbiter의 생성, 설정 변경과 삭제를 추적합니다.

$ echo mlx5:mlx5_esw_vport_qos_create >> /sys/kernel/tracing/set_event
$ cat /sys/kernel/tracing/trace
...
<...>-23496   [018] .... 73136.838831: mlx5_esw_vport_qos_create: (0000:82:00.0) vport=2 tsar_ix=4 bw_share=0, max_rate=0 group=000000007b576bb3
$ echo mlx5:mlx5_esw_vport_qos_config >> /sys/kernel/tracing/set_event
$ cat /sys/kernel/tracing/trace
...
<...>-26548   [023] .... 75754.223823: mlx5_esw_vport_qos_config: (0000:82:00.0) vport=1 tsar_ix=3 bw_share=34, max_rate=10000 group=000000007b576bb3
$ echo mlx5:mlx5_esw_vport_qos_destroy >> /sys/kernel/tracing/set_event
$ cat /sys/kernel/tracing/trace
...
<...>-27418   [004] .... 76546.680901: mlx5_esw_vport_qos_destroy: (0000:82:00.0) vport=1 tsar_ix=3
$ echo mlx5:mlx5_esw_group_qos_create >> /sys/kernel/tracing/set_event
$ cat /sys/kernel/tracing/trace
...
<...>-26578   [008] .... 75776.022112: mlx5_esw_group_qos_create: (0000:82:00.0) group=000000008dac63ea tsar_ix=5
$ echo mlx5:mlx5_esw_group_qos_config >> /sys/kernel/tracing/set_event
$ cat /sys/kernel/tracing/trace
...
<...>-27303   [020] .... 76461.455356: mlx5_esw_group_qos_config: (0000:82:00.0) group=000000008dac63ea tsar_ix=5 bw_share=100 max_rate=20000
$ echo mlx5:mlx5_esw_group_qos_destroy >> /sys/kernel/tracing/set_event
$ cat /sys/kernel/tracing/trace
...
<...>-27418   [006] .... 76547.187258: mlx5_esw_group_qos_destroy: (0000:82:00.0) group=000000007b576bb3 tsar_ix=1
Eswitch QoS tracepoints:

- mlx5_esw_vport_qos_create: trace creation of transmit scheduler arbiter for vport::

    $ echo mlx5:mlx5_esw_vport_qos_create >> /sys/kernel/tracing/set_event
    $ cat /sys/kernel/tracing/trace
    ...
    <...>-23496   [018] .... 73136.838831: mlx5_esw_vport_qos_create: (0000:82:00.0) vport=2 tsar_ix=4 bw_share=0, max_rate=0 group=000000007b576bb3

- mlx5_esw_vport_qos_config: trace configuration of transmit scheduler arbiter for vport::

    $ echo mlx5:mlx5_esw_vport_qos_config >> /sys/kernel/tracing/set_event
    $ cat /sys/kernel/tracing/trace
    ...
    <...>-26548   [023] .... 75754.223823: mlx5_esw_vport_qos_config: (0000:82:00.0) vport=1 tsar_ix=3 bw_share=34, max_rate=10000 group=000000007b576bb3

- mlx5_esw_vport_qos_destroy: trace deletion of transmit scheduler arbiter for vport::

    $ echo mlx5:mlx5_esw_vport_qos_destroy >> /sys/kernel/tracing/set_event
    $ cat /sys/kernel/tracing/trace
    ...
    <...>-27418   [004] .... 76546.680901: mlx5_esw_vport_qos_destroy: (0000:82:00.0) vport=1 tsar_ix=3

- mlx5_esw_group_qos_create: trace creation of transmit scheduler arbiter for rate group::

    $ echo mlx5:mlx5_esw_group_qos_create >> /sys/kernel/tracing/set_event
    $ cat /sys/kernel/tracing/trace
    ...
    <...>-26578   [008] .... 75776.022112: mlx5_esw_group_qos_create: (0000:82:00.0) group=000000008dac63ea tsar_ix=5

- mlx5_esw_group_qos_config: trace configuration of transmit scheduler arbiter for rate group::

    $ echo mlx5:mlx5_esw_group_qos_config >> /sys/kernel/tracing/set_event
    $ cat /sys/kernel/tracing/trace
    ...
    <...>-27303   [020] .... 76461.455356: mlx5_esw_group_qos_config: (0000:82:00.0) group=000000008dac63ea tsar_ix=5 bw_share=100 max_rate=20000

- mlx5_esw_group_qos_destroy: trace deletion of transmit scheduler arbiter for group::

    $ echo mlx5:mlx5_esw_group_qos_destroy >> /sys/kernel/tracing/set_event
    $ cat /sys/kernel/tracing/trace
    ...
    <...>-27418   [006] .... 76547.187258: mlx5_esw_group_qos_destroy: (0000:82:00.0) group=000000007b576bb3 tsar_ix=1

Subfunction 추적점

152-229

SF 추적점

SF 수명 주기 이벤트
이벤트의미주요 필드
`mlx5_sf_add`SF port 추가port index, controller, hardware ID, SF number
`mlx5_sf_free`SF port 해제port index, controller, hardware ID
`mlx5_sf_activate`SF port 활성화port index, controller, hardware ID
`mlx5_sf_deactivate`SF port 비활성화port index, controller, hardware ID
`mlx5_sf_hwc_alloc`hardware SF context 할당controller, hardware ID, SF number
`mlx5_sf_hwc_free`hardware SF context 해제hardware ID
`mlx5_sf_hwc_deferred_free`hardware SF context 지연 해제hardware ID
`mlx5_sf_update_state`SF context 상태 갱신port index, controller, hardware ID, state
`mlx5_sf_vhca_event`SF VHCA 이벤트와 상태hardware ID, SF number, VHCA state
`mlx5_sf_dev_add`SF auxiliary device 추가device pointer, auxiliary ID, hardware ID, SF number
`mlx5_sf_dev_del`SF auxiliary device 삭제device pointer, auxiliary ID, hardware ID, SF number

SF port, hardware context, VHCA 상태와 auxiliary device의 수명 주기를 추적합니다.

$ echo mlx5:mlx5_sf_add >> /sys/kernel/tracing/set_event
$ cat /sys/kernel/tracing/trace
...
devlink-9363    [031] ..... 24610.188722: mlx5_sf_add: (0000:06:00.0) port_index=32768 controller=0 hw_id=0x8000 sfnum=88
$ echo mlx5:mlx5_sf_free >> /sys/kernel/tracing/set_event
$ cat /sys/kernel/tracing/trace
...
devlink-9830    [038] ..... 26300.404749: mlx5_sf_free: (0000:06:00.0) port_index=32768 controller=0 hw_id=0x8000
$ echo mlx5:mlx5_sf_activate >> /sys/kernel/tracing/set_event
$ cat /sys/kernel/tracing/trace
...
devlink-29841   [008] .....  3669.635095: mlx5_sf_activate: (0000:08:00.0) port_index=32768 controller=0 hw_id=0x8000
$ echo mlx5:mlx5_sf_deactivate >> /sys/kernel/tracing/set_event
$ cat /sys/kernel/tracing/trace
...
devlink-29994   [008] .....  4015.969467: mlx5_sf_deactivate: (0000:08:00.0) port_index=32768 controller=0 hw_id=0x8000
$ echo mlx5:mlx5_sf_hwc_alloc >> /sys/kernel/tracing/set_event
$ cat /sys/kernel/tracing/trace
...
devlink-9775    [031] ..... 26296.385259: mlx5_sf_hwc_alloc: (0000:06:00.0) controller=0 hw_id=0x8000 sfnum=88
$ echo mlx5:mlx5_sf_hwc_free >> /sys/kernel/tracing/set_event
$ cat /sys/kernel/tracing/trace
...
kworker/u128:3-9093    [046] ..... 24625.365771: mlx5_sf_hwc_free: (0000:06:00.0) hw_id=0x8000
$ echo mlx5:mlx5_sf_hwc_deferred_free >> /sys/kernel/tracing/set_event
$ cat /sys/kernel/tracing/trace
...
devlink-9519    [046] ..... 24624.400271: mlx5_sf_hwc_deferred_free: (0000:06:00.0) hw_id=0x8000
$ echo mlx5:mlx5_sf_update_state >> /sys/kernel/tracing/set_event
$ cat /sys/kernel/tracing/trace
...
kworker/u20:3-29490   [009] .....  4141.453530: mlx5_sf_update_state: (0000:08:00.0) port_index=32768 controller=0 hw_id=0x8000 state=2
$ echo mlx5:mlx5_sf_vhca_event >> /sys/kernel/tracing/set_event
$ cat /sys/kernel/tracing/trace
...
kworker/u128:3-9093    [046] ..... 24625.365525: mlx5_sf_vhca_event: (0000:06:00.0) hw_id=0x8000 sfnum=88 vhca_state=1
$ echo mlx5:mlx5_sf_dev_add>> /sys/kernel/tracing/set_event
$ cat /sys/kernel/tracing/trace
...
kworker/u128:3-9093    [000] ..... 24616.524495: mlx5_sf_dev_add: (0000:06:00.0) sfdev=00000000fc5d96fd aux_id=4 hw_id=0x8000 sfnum=88
$ echo mlx5:mlx5_sf_dev_del >> /sys/kernel/tracing/set_event
$ cat /sys/kernel/tracing/trace
...
kworker/u128:3-9093    [044] ..... 24624.400749: mlx5_sf_dev_del: (0000:06:00.0) sfdev=00000000fc5d96fd aux_id=4 hw_id=0x8000 sfnum=88
SF tracepoints:

- mlx5_sf_add: trace addition of the SF port::

    $ echo mlx5:mlx5_sf_add >> /sys/kernel/tracing/set_event
    $ cat /sys/kernel/tracing/trace
    ...
    devlink-9363    [031] ..... 24610.188722: mlx5_sf_add: (0000:06:00.0) port_index=32768 controller=0 hw_id=0x8000 sfnum=88

- mlx5_sf_free: trace freeing of the SF port::

    $ echo mlx5:mlx5_sf_free >> /sys/kernel/tracing/set_event
    $ cat /sys/kernel/tracing/trace
    ...
    devlink-9830    [038] ..... 26300.404749: mlx5_sf_free: (0000:06:00.0) port_index=32768 controller=0 hw_id=0x8000

- mlx5_sf_activate: trace activation of the SF port::

    $ echo mlx5:mlx5_sf_activate >> /sys/kernel/tracing/set_event
    $ cat /sys/kernel/tracing/trace
    ...
    devlink-29841   [008] .....  3669.635095: mlx5_sf_activate: (0000:08:00.0) port_index=32768 controller=0 hw_id=0x8000

- mlx5_sf_deactivate: trace deactivation of the SF port::

    $ echo mlx5:mlx5_sf_deactivate >> /sys/kernel/tracing/set_event
    $ cat /sys/kernel/tracing/trace
    ...
    devlink-29994   [008] .....  4015.969467: mlx5_sf_deactivate: (0000:08:00.0) port_index=32768 controller=0 hw_id=0x8000

- mlx5_sf_hwc_alloc: trace allocating of the hardware SF context::

    $ echo mlx5:mlx5_sf_hwc_alloc >> /sys/kernel/tracing/set_event
    $ cat /sys/kernel/tracing/trace
    ...
    devlink-9775    [031] ..... 26296.385259: mlx5_sf_hwc_alloc: (0000:06:00.0) controller=0 hw_id=0x8000 sfnum=88

- mlx5_sf_hwc_free: trace freeing of the hardware SF context::

    $ echo mlx5:mlx5_sf_hwc_free >> /sys/kernel/tracing/set_event
    $ cat /sys/kernel/tracing/trace
    ...
    kworker/u128:3-9093    [046] ..... 24625.365771: mlx5_sf_hwc_free: (0000:06:00.0) hw_id=0x8000

- mlx5_sf_hwc_deferred_free: trace deferred freeing of the hardware SF context::

    $ echo mlx5:mlx5_sf_hwc_deferred_free >> /sys/kernel/tracing/set_event
    $ cat /sys/kernel/tracing/trace
    ...
    devlink-9519    [046] ..... 24624.400271: mlx5_sf_hwc_deferred_free: (0000:06:00.0) hw_id=0x8000

- mlx5_sf_update_state: trace state updates for SF contexts::

    $ echo mlx5:mlx5_sf_update_state >> /sys/kernel/tracing/set_event
    $ cat /sys/kernel/tracing/trace
    ...
    kworker/u20:3-29490   [009] .....  4141.453530: mlx5_sf_update_state: (0000:08:00.0) port_index=32768 controller=0 hw_id=0x8000 state=2

- mlx5_sf_vhca_event: trace SF vhca event and state::

    $ echo mlx5:mlx5_sf_vhca_event >> /sys/kernel/tracing/set_event
    $ cat /sys/kernel/tracing/trace
    ...
    kworker/u128:3-9093    [046] ..... 24625.365525: mlx5_sf_vhca_event: (0000:06:00.0) hw_id=0x8000 sfnum=88 vhca_state=1

- mlx5_sf_dev_add: trace SF device add event::

    $ echo mlx5:mlx5_sf_dev_add>> /sys/kernel/tracing/set_event
    $ cat /sys/kernel/tracing/trace
    ...
    kworker/u128:3-9093    [000] ..... 24616.524495: mlx5_sf_dev_add: (0000:06:00.0) sfdev=00000000fc5d96fd aux_id=4 hw_id=0x8000 sfnum=88

- mlx5_sf_dev_del: trace SF device delete event::

    $ echo mlx5:mlx5_sf_dev_del >> /sys/kernel/tracing/set_event
    $ cat /sys/kernel/tracing/trace
    ...
    kworker/u128:3-9093    [044] ..... 24624.400749: mlx5_sf_dev_del: (0000:06:00.0) sfdev=00000000fc5d96fd aux_id=4 hw_id=0x8000 sfnum=88