diff options
Diffstat (limited to 'net/mac80211/driver-trace.h')
-rw-r--r-- | net/mac80211/driver-trace.h | 207 |
1 files changed, 155 insertions, 52 deletions
diff --git a/net/mac80211/driver-trace.h b/net/mac80211/driver-trace.h index 37b9051afcf3..41baf730a5c7 100644 --- a/net/mac80211/driver-trace.h +++ b/net/mac80211/driver-trace.h | |||
@@ -25,10 +25,12 @@ static inline void trace_ ## name(proto) {} | |||
25 | #define STA_PR_FMT " sta:%pM" | 25 | #define STA_PR_FMT " sta:%pM" |
26 | #define STA_PR_ARG __entry->sta_addr | 26 | #define STA_PR_ARG __entry->sta_addr |
27 | 27 | ||
28 | #define VIF_ENTRY __field(enum nl80211_iftype, vif_type) __field(void *, vif) | 28 | #define VIF_ENTRY __field(enum nl80211_iftype, vif_type) __field(void *, sdata) \ |
29 | #define VIF_ASSIGN __entry->vif_type = vif ? vif->type : 0; __entry->vif = vif | 29 | __string(vif_name, sdata->dev ? sdata->dev->name : "<nodev>") |
30 | #define VIF_PR_FMT " vif:%p(%d)" | 30 | #define VIF_ASSIGN __entry->vif_type = sdata->vif.type; __entry->sdata = sdata; \ |
31 | #define VIF_PR_ARG __entry->vif, __entry->vif_type | 31 | __assign_str(vif_name, sdata->dev ? sdata->dev->name : "<nodev>") |
32 | #define VIF_PR_FMT " vif:%s(%d)" | ||
33 | #define VIF_PR_ARG __get_str(vif_name), __entry->vif_type | ||
32 | 34 | ||
33 | TRACE_EVENT(drv_start, | 35 | TRACE_EVENT(drv_start, |
34 | TP_PROTO(struct ieee80211_local *local, int ret), | 36 | TP_PROTO(struct ieee80211_local *local, int ret), |
@@ -70,11 +72,10 @@ TRACE_EVENT(drv_stop, | |||
70 | 72 | ||
71 | TRACE_EVENT(drv_add_interface, | 73 | TRACE_EVENT(drv_add_interface, |
72 | TP_PROTO(struct ieee80211_local *local, | 74 | TP_PROTO(struct ieee80211_local *local, |
73 | const u8 *addr, | 75 | struct ieee80211_sub_if_data *sdata, |
74 | struct ieee80211_vif *vif, | ||
75 | int ret), | 76 | int ret), |
76 | 77 | ||
77 | TP_ARGS(local, addr, vif, ret), | 78 | TP_ARGS(local, sdata, ret), |
78 | 79 | ||
79 | TP_STRUCT__entry( | 80 | TP_STRUCT__entry( |
80 | LOCAL_ENTRY | 81 | LOCAL_ENTRY |
@@ -86,7 +87,7 @@ TRACE_EVENT(drv_add_interface, | |||
86 | TP_fast_assign( | 87 | TP_fast_assign( |
87 | LOCAL_ASSIGN; | 88 | LOCAL_ASSIGN; |
88 | VIF_ASSIGN; | 89 | VIF_ASSIGN; |
89 | memcpy(__entry->addr, addr, 6); | 90 | memcpy(__entry->addr, sdata->vif.addr, 6); |
90 | __entry->ret = ret; | 91 | __entry->ret = ret; |
91 | ), | 92 | ), |
92 | 93 | ||
@@ -97,10 +98,9 @@ TRACE_EVENT(drv_add_interface, | |||
97 | ); | 98 | ); |
98 | 99 | ||
99 | TRACE_EVENT(drv_remove_interface, | 100 | TRACE_EVENT(drv_remove_interface, |
100 | TP_PROTO(struct ieee80211_local *local, | 101 | TP_PROTO(struct ieee80211_local *local, struct ieee80211_sub_if_data *sdata), |
101 | const u8 *addr, struct ieee80211_vif *vif), | ||
102 | 102 | ||
103 | TP_ARGS(local, addr, vif), | 103 | TP_ARGS(local, sdata), |
104 | 104 | ||
105 | TP_STRUCT__entry( | 105 | TP_STRUCT__entry( |
106 | LOCAL_ENTRY | 106 | LOCAL_ENTRY |
@@ -111,7 +111,7 @@ TRACE_EVENT(drv_remove_interface, | |||
111 | TP_fast_assign( | 111 | TP_fast_assign( |
112 | LOCAL_ASSIGN; | 112 | LOCAL_ASSIGN; |
113 | VIF_ASSIGN; | 113 | VIF_ASSIGN; |
114 | memcpy(__entry->addr, addr, 6); | 114 | memcpy(__entry->addr, sdata->vif.addr, 6); |
115 | ), | 115 | ), |
116 | 116 | ||
117 | TP_printk( | 117 | TP_printk( |
@@ -131,27 +131,47 @@ TRACE_EVENT(drv_config, | |||
131 | LOCAL_ENTRY | 131 | LOCAL_ENTRY |
132 | __field(u32, changed) | 132 | __field(u32, changed) |
133 | __field(int, ret) | 133 | __field(int, ret) |
134 | __field(u32, flags) | ||
135 | __field(int, power_level) | ||
136 | __field(int, dynamic_ps_timeout) | ||
137 | __field(int, max_sleep_period) | ||
138 | __field(u16, listen_interval) | ||
139 | __field(u8, long_frame_max_tx_count) | ||
140 | __field(u8, short_frame_max_tx_count) | ||
141 | __field(int, center_freq) | ||
142 | __field(int, channel_type) | ||
143 | __field(int, smps) | ||
134 | ), | 144 | ), |
135 | 145 | ||
136 | TP_fast_assign( | 146 | TP_fast_assign( |
137 | LOCAL_ASSIGN; | 147 | LOCAL_ASSIGN; |
138 | __entry->changed = changed; | 148 | __entry->changed = changed; |
139 | __entry->ret = ret; | 149 | __entry->ret = ret; |
150 | __entry->flags = local->hw.conf.flags; | ||
151 | __entry->power_level = local->hw.conf.power_level; | ||
152 | __entry->dynamic_ps_timeout = local->hw.conf.dynamic_ps_timeout; | ||
153 | __entry->max_sleep_period = local->hw.conf.max_sleep_period; | ||
154 | __entry->listen_interval = local->hw.conf.listen_interval; | ||
155 | __entry->long_frame_max_tx_count = local->hw.conf.long_frame_max_tx_count; | ||
156 | __entry->short_frame_max_tx_count = local->hw.conf.short_frame_max_tx_count; | ||
157 | __entry->center_freq = local->hw.conf.channel->center_freq; | ||
158 | __entry->channel_type = local->hw.conf.channel_type; | ||
159 | __entry->smps = local->hw.conf.smps_mode; | ||
140 | ), | 160 | ), |
141 | 161 | ||
142 | TP_printk( | 162 | TP_printk( |
143 | LOCAL_PR_FMT " ch:%#x ret:%d", | 163 | LOCAL_PR_FMT " ch:%#x freq:%d ret:%d", |
144 | LOCAL_PR_ARG, __entry->changed, __entry->ret | 164 | LOCAL_PR_ARG, __entry->changed, __entry->center_freq, __entry->ret |
145 | ) | 165 | ) |
146 | ); | 166 | ); |
147 | 167 | ||
148 | TRACE_EVENT(drv_bss_info_changed, | 168 | TRACE_EVENT(drv_bss_info_changed, |
149 | TP_PROTO(struct ieee80211_local *local, | 169 | TP_PROTO(struct ieee80211_local *local, |
150 | struct ieee80211_vif *vif, | 170 | struct ieee80211_sub_if_data *sdata, |
151 | struct ieee80211_bss_conf *info, | 171 | struct ieee80211_bss_conf *info, |
152 | u32 changed), | 172 | u32 changed), |
153 | 173 | ||
154 | TP_ARGS(local, vif, info, changed), | 174 | TP_ARGS(local, sdata, info, changed), |
155 | 175 | ||
156 | TP_STRUCT__entry( | 176 | TP_STRUCT__entry( |
157 | LOCAL_ENTRY | 177 | LOCAL_ENTRY |
@@ -167,6 +187,8 @@ TRACE_EVENT(drv_bss_info_changed, | |||
167 | __field(u64, timestamp) | 187 | __field(u64, timestamp) |
168 | __field(u32, basic_rates) | 188 | __field(u32, basic_rates) |
169 | __field(u32, changed) | 189 | __field(u32, changed) |
190 | __field(bool, enable_beacon) | ||
191 | __field(u16, ht_operation_mode) | ||
170 | ), | 192 | ), |
171 | 193 | ||
172 | TP_fast_assign( | 194 | TP_fast_assign( |
@@ -183,6 +205,8 @@ TRACE_EVENT(drv_bss_info_changed, | |||
183 | __entry->assoc_cap = info->assoc_capability; | 205 | __entry->assoc_cap = info->assoc_capability; |
184 | __entry->timestamp = info->timestamp; | 206 | __entry->timestamp = info->timestamp; |
185 | __entry->basic_rates = info->basic_rates; | 207 | __entry->basic_rates = info->basic_rates; |
208 | __entry->enable_beacon = info->enable_beacon; | ||
209 | __entry->ht_operation_mode = info->ht_operation_mode; | ||
186 | ), | 210 | ), |
187 | 211 | ||
188 | TP_printk( | 212 | TP_printk( |
@@ -271,11 +295,11 @@ TRACE_EVENT(drv_set_tim, | |||
271 | 295 | ||
272 | TRACE_EVENT(drv_set_key, | 296 | TRACE_EVENT(drv_set_key, |
273 | TP_PROTO(struct ieee80211_local *local, | 297 | TP_PROTO(struct ieee80211_local *local, |
274 | enum set_key_cmd cmd, struct ieee80211_vif *vif, | 298 | enum set_key_cmd cmd, struct ieee80211_sub_if_data *sdata, |
275 | struct ieee80211_sta *sta, | 299 | struct ieee80211_sta *sta, |
276 | struct ieee80211_key_conf *key, int ret), | 300 | struct ieee80211_key_conf *key, int ret), |
277 | 301 | ||
278 | TP_ARGS(local, cmd, vif, sta, key, ret), | 302 | TP_ARGS(local, cmd, sdata, sta, key, ret), |
279 | 303 | ||
280 | TP_STRUCT__entry( | 304 | TP_STRUCT__entry( |
281 | LOCAL_ENTRY | 305 | LOCAL_ENTRY |
@@ -307,26 +331,29 @@ TRACE_EVENT(drv_set_key, | |||
307 | 331 | ||
308 | TRACE_EVENT(drv_update_tkip_key, | 332 | TRACE_EVENT(drv_update_tkip_key, |
309 | TP_PROTO(struct ieee80211_local *local, | 333 | TP_PROTO(struct ieee80211_local *local, |
334 | struct ieee80211_sub_if_data *sdata, | ||
310 | struct ieee80211_key_conf *conf, | 335 | struct ieee80211_key_conf *conf, |
311 | const u8 *address, u32 iv32), | 336 | struct ieee80211_sta *sta, u32 iv32), |
312 | 337 | ||
313 | TP_ARGS(local, conf, address, iv32), | 338 | TP_ARGS(local, sdata, conf, sta, iv32), |
314 | 339 | ||
315 | TP_STRUCT__entry( | 340 | TP_STRUCT__entry( |
316 | LOCAL_ENTRY | 341 | LOCAL_ENTRY |
317 | __array(u8, addr, 6) | 342 | VIF_ENTRY |
343 | STA_ENTRY | ||
318 | __field(u32, iv32) | 344 | __field(u32, iv32) |
319 | ), | 345 | ), |
320 | 346 | ||
321 | TP_fast_assign( | 347 | TP_fast_assign( |
322 | LOCAL_ASSIGN; | 348 | LOCAL_ASSIGN; |
323 | memcpy(__entry->addr, address, 6); | 349 | VIF_ASSIGN; |
350 | STA_ASSIGN; | ||
324 | __entry->iv32 = iv32; | 351 | __entry->iv32 = iv32; |
325 | ), | 352 | ), |
326 | 353 | ||
327 | TP_printk( | 354 | TP_printk( |
328 | LOCAL_PR_FMT " addr:%pM iv32:%#x", | 355 | LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " iv32:%#x", |
329 | LOCAL_PR_ARG, __entry->addr, __entry->iv32 | 356 | LOCAL_PR_ARG,VIF_PR_ARG,STA_PR_ARG, __entry->iv32 |
330 | ) | 357 | ) |
331 | ); | 358 | ); |
332 | 359 | ||
@@ -467,13 +494,36 @@ TRACE_EVENT(drv_set_rts_threshold, | |||
467 | ) | 494 | ) |
468 | ); | 495 | ); |
469 | 496 | ||
497 | TRACE_EVENT(drv_set_coverage_class, | ||
498 | TP_PROTO(struct ieee80211_local *local, u8 value, int ret), | ||
499 | |||
500 | TP_ARGS(local, value, ret), | ||
501 | |||
502 | TP_STRUCT__entry( | ||
503 | LOCAL_ENTRY | ||
504 | __field(u8, value) | ||
505 | __field(int, ret) | ||
506 | ), | ||
507 | |||
508 | TP_fast_assign( | ||
509 | LOCAL_ASSIGN; | ||
510 | __entry->ret = ret; | ||
511 | __entry->value = value; | ||
512 | ), | ||
513 | |||
514 | TP_printk( | ||
515 | LOCAL_PR_FMT " value:%d ret:%d", | ||
516 | LOCAL_PR_ARG, __entry->value, __entry->ret | ||
517 | ) | ||
518 | ); | ||
519 | |||
470 | TRACE_EVENT(drv_sta_notify, | 520 | TRACE_EVENT(drv_sta_notify, |
471 | TP_PROTO(struct ieee80211_local *local, | 521 | TP_PROTO(struct ieee80211_local *local, |
472 | struct ieee80211_vif *vif, | 522 | struct ieee80211_sub_if_data *sdata, |
473 | enum sta_notify_cmd cmd, | 523 | enum sta_notify_cmd cmd, |
474 | struct ieee80211_sta *sta), | 524 | struct ieee80211_sta *sta), |
475 | 525 | ||
476 | TP_ARGS(local, vif, cmd, sta), | 526 | TP_ARGS(local, sdata, cmd, sta), |
477 | 527 | ||
478 | TP_STRUCT__entry( | 528 | TP_STRUCT__entry( |
479 | LOCAL_ENTRY | 529 | LOCAL_ENTRY |
@@ -495,59 +545,88 @@ TRACE_EVENT(drv_sta_notify, | |||
495 | ) | 545 | ) |
496 | ); | 546 | ); |
497 | 547 | ||
498 | TRACE_EVENT(drv_conf_tx, | 548 | TRACE_EVENT(drv_sta_add, |
499 | TP_PROTO(struct ieee80211_local *local, u16 queue, | 549 | TP_PROTO(struct ieee80211_local *local, |
500 | const struct ieee80211_tx_queue_params *params, | 550 | struct ieee80211_sub_if_data *sdata, |
501 | int ret), | 551 | struct ieee80211_sta *sta, int ret), |
502 | 552 | ||
503 | TP_ARGS(local, queue, params, ret), | 553 | TP_ARGS(local, sdata, sta, ret), |
504 | 554 | ||
505 | TP_STRUCT__entry( | 555 | TP_STRUCT__entry( |
506 | LOCAL_ENTRY | 556 | LOCAL_ENTRY |
507 | __field(u16, queue) | 557 | VIF_ENTRY |
508 | __field(u16, txop) | 558 | STA_ENTRY |
509 | __field(u16, cw_min) | ||
510 | __field(u16, cw_max) | ||
511 | __field(u8, aifs) | ||
512 | __field(int, ret) | 559 | __field(int, ret) |
513 | ), | 560 | ), |
514 | 561 | ||
515 | TP_fast_assign( | 562 | TP_fast_assign( |
516 | LOCAL_ASSIGN; | 563 | LOCAL_ASSIGN; |
517 | __entry->queue = queue; | 564 | VIF_ASSIGN; |
565 | STA_ASSIGN; | ||
518 | __entry->ret = ret; | 566 | __entry->ret = ret; |
519 | __entry->txop = params->txop; | ||
520 | __entry->cw_max = params->cw_max; | ||
521 | __entry->cw_min = params->cw_min; | ||
522 | __entry->aifs = params->aifs; | ||
523 | ), | 567 | ), |
524 | 568 | ||
525 | TP_printk( | 569 | TP_printk( |
526 | LOCAL_PR_FMT " queue:%d ret:%d", | 570 | LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " ret:%d", |
527 | LOCAL_PR_ARG, __entry->queue, __entry->ret | 571 | LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, __entry->ret |
528 | ) | 572 | ) |
529 | ); | 573 | ); |
530 | 574 | ||
531 | TRACE_EVENT(drv_get_tx_stats, | 575 | TRACE_EVENT(drv_sta_remove, |
532 | TP_PROTO(struct ieee80211_local *local, | 576 | TP_PROTO(struct ieee80211_local *local, |
533 | struct ieee80211_tx_queue_stats *stats, | 577 | struct ieee80211_sub_if_data *sdata, |
578 | struct ieee80211_sta *sta), | ||
579 | |||
580 | TP_ARGS(local, sdata, sta), | ||
581 | |||
582 | TP_STRUCT__entry( | ||
583 | LOCAL_ENTRY | ||
584 | VIF_ENTRY | ||
585 | STA_ENTRY | ||
586 | ), | ||
587 | |||
588 | TP_fast_assign( | ||
589 | LOCAL_ASSIGN; | ||
590 | VIF_ASSIGN; | ||
591 | STA_ASSIGN; | ||
592 | ), | ||
593 | |||
594 | TP_printk( | ||
595 | LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT, | ||
596 | LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG | ||
597 | ) | ||
598 | ); | ||
599 | |||
600 | TRACE_EVENT(drv_conf_tx, | ||
601 | TP_PROTO(struct ieee80211_local *local, u16 queue, | ||
602 | const struct ieee80211_tx_queue_params *params, | ||
534 | int ret), | 603 | int ret), |
535 | 604 | ||
536 | TP_ARGS(local, stats, ret), | 605 | TP_ARGS(local, queue, params, ret), |
537 | 606 | ||
538 | TP_STRUCT__entry( | 607 | TP_STRUCT__entry( |
539 | LOCAL_ENTRY | 608 | LOCAL_ENTRY |
609 | __field(u16, queue) | ||
610 | __field(u16, txop) | ||
611 | __field(u16, cw_min) | ||
612 | __field(u16, cw_max) | ||
613 | __field(u8, aifs) | ||
540 | __field(int, ret) | 614 | __field(int, ret) |
541 | ), | 615 | ), |
542 | 616 | ||
543 | TP_fast_assign( | 617 | TP_fast_assign( |
544 | LOCAL_ASSIGN; | 618 | LOCAL_ASSIGN; |
619 | __entry->queue = queue; | ||
545 | __entry->ret = ret; | 620 | __entry->ret = ret; |
621 | __entry->txop = params->txop; | ||
622 | __entry->cw_max = params->cw_max; | ||
623 | __entry->cw_min = params->cw_min; | ||
624 | __entry->aifs = params->aifs; | ||
546 | ), | 625 | ), |
547 | 626 | ||
548 | TP_printk( | 627 | TP_printk( |
549 | LOCAL_PR_FMT " ret:%d", | 628 | LOCAL_PR_FMT " queue:%d ret:%d", |
550 | LOCAL_PR_ARG, __entry->ret | 629 | LOCAL_PR_ARG, __entry->queue, __entry->ret |
551 | ) | 630 | ) |
552 | ); | 631 | ); |
553 | 632 | ||
@@ -634,11 +713,12 @@ TRACE_EVENT(drv_tx_last_beacon, | |||
634 | 713 | ||
635 | TRACE_EVENT(drv_ampdu_action, | 714 | TRACE_EVENT(drv_ampdu_action, |
636 | TP_PROTO(struct ieee80211_local *local, | 715 | TP_PROTO(struct ieee80211_local *local, |
716 | struct ieee80211_sub_if_data *sdata, | ||
637 | enum ieee80211_ampdu_mlme_action action, | 717 | enum ieee80211_ampdu_mlme_action action, |
638 | struct ieee80211_sta *sta, u16 tid, | 718 | struct ieee80211_sta *sta, u16 tid, |
639 | u16 *ssn, int ret), | 719 | u16 *ssn, int ret), |
640 | 720 | ||
641 | TP_ARGS(local, action, sta, tid, ssn, ret), | 721 | TP_ARGS(local, sdata, action, sta, tid, ssn, ret), |
642 | 722 | ||
643 | TP_STRUCT__entry( | 723 | TP_STRUCT__entry( |
644 | LOCAL_ENTRY | 724 | LOCAL_ENTRY |
@@ -647,20 +727,43 @@ TRACE_EVENT(drv_ampdu_action, | |||
647 | __field(u16, tid) | 727 | __field(u16, tid) |
648 | __field(u16, ssn) | 728 | __field(u16, ssn) |
649 | __field(int, ret) | 729 | __field(int, ret) |
730 | VIF_ENTRY | ||
650 | ), | 731 | ), |
651 | 732 | ||
652 | TP_fast_assign( | 733 | TP_fast_assign( |
653 | LOCAL_ASSIGN; | 734 | LOCAL_ASSIGN; |
735 | VIF_ASSIGN; | ||
654 | STA_ASSIGN; | 736 | STA_ASSIGN; |
655 | __entry->ret = ret; | 737 | __entry->ret = ret; |
656 | __entry->action = action; | 738 | __entry->action = action; |
657 | __entry->tid = tid; | 739 | __entry->tid = tid; |
658 | __entry->ssn = *ssn; | 740 | __entry->ssn = ssn ? *ssn : 0; |
741 | ), | ||
742 | |||
743 | TP_printk( | ||
744 | LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " action:%d tid:%d ret:%d", | ||
745 | LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, __entry->action, __entry->tid, __entry->ret | ||
746 | ) | ||
747 | ); | ||
748 | |||
749 | TRACE_EVENT(drv_flush, | ||
750 | TP_PROTO(struct ieee80211_local *local, bool drop), | ||
751 | |||
752 | TP_ARGS(local, drop), | ||
753 | |||
754 | TP_STRUCT__entry( | ||
755 | LOCAL_ENTRY | ||
756 | __field(bool, drop) | ||
757 | ), | ||
758 | |||
759 | TP_fast_assign( | ||
760 | LOCAL_ASSIGN; | ||
761 | __entry->drop = drop; | ||
659 | ), | 762 | ), |
660 | 763 | ||
661 | TP_printk( | 764 | TP_printk( |
662 | LOCAL_PR_FMT STA_PR_FMT " action:%d tid:%d ret:%d", | 765 | LOCAL_PR_FMT " drop:%d", |
663 | LOCAL_PR_ARG, STA_PR_ARG, __entry->action, __entry->tid, __entry->ret | 766 | LOCAL_PR_ARG, __entry->drop |
664 | ) | 767 | ) |
665 | ); | 768 | ); |
666 | #endif /* !__MAC80211_DRIVER_TRACE || TRACE_HEADER_MULTI_READ */ | 769 | #endif /* !__MAC80211_DRIVER_TRACE || TRACE_HEADER_MULTI_READ */ |