mac80211: use DECLARE_EVENT_CLASS
For events that include only the local struct as their parameter, we can use DECLARE_EVENT_CLASS and save quite some binary size across segments as well lines of code. text data bss dec hex filename 375745 19296 916 395957 60ab5 mac80211.ko.before 367473 17888 916 386277 5e4e5 mac80211.ko.after -8272 -1408 0 -9680 -25d0 delta Some more tracepoints with identical arguments could be combined like this but for now this is the one that benefits most. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
62362dee83
commit
ba99d93b3d
|
@ -9,6 +9,11 @@
|
|||
#undef TRACE_EVENT
|
||||
#define TRACE_EVENT(name, proto, ...) \
|
||||
static inline void trace_ ## name(proto) {}
|
||||
#undef DECLARE_EVENT_CLASS
|
||||
#define DECLARE_EVENT_CLASS(...)
|
||||
#undef DEFINE_EVENT
|
||||
#define DEFINE_EVENT(evt_class, name, proto, ...) \
|
||||
static inline void trace_ ## name(proto) {}
|
||||
#endif
|
||||
|
||||
#undef TRACE_SYSTEM
|
||||
|
@ -38,7 +43,7 @@ static inline void trace_ ## name(proto) {}
|
|||
* Tracing for driver callbacks.
|
||||
*/
|
||||
|
||||
TRACE_EVENT(drv_return_void,
|
||||
DECLARE_EVENT_CLASS(local_only_evt,
|
||||
TP_PROTO(struct ieee80211_local *local),
|
||||
TP_ARGS(local),
|
||||
TP_STRUCT__entry(
|
||||
|
@ -50,6 +55,11 @@ TRACE_EVENT(drv_return_void,
|
|||
TP_printk(LOCAL_PR_FMT, LOCAL_PR_ARG)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(local_only_evt, drv_return_void,
|
||||
TP_PROTO(struct ieee80211_local *local),
|
||||
TP_ARGS(local)
|
||||
);
|
||||
|
||||
TRACE_EVENT(drv_return_int,
|
||||
TP_PROTO(struct ieee80211_local *local, int ret),
|
||||
TP_ARGS(local, ret),
|
||||
|
@ -78,40 +88,14 @@ TRACE_EVENT(drv_return_u64,
|
|||
TP_printk(LOCAL_PR_FMT " - %llu", LOCAL_PR_ARG, __entry->ret)
|
||||
);
|
||||
|
||||
TRACE_EVENT(drv_start,
|
||||
DEFINE_EVENT(local_only_evt, drv_start,
|
||||
TP_PROTO(struct ieee80211_local *local),
|
||||
|
||||
TP_ARGS(local),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
LOCAL_ENTRY
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
LOCAL_ASSIGN;
|
||||
),
|
||||
|
||||
TP_printk(
|
||||
LOCAL_PR_FMT, LOCAL_PR_ARG
|
||||
)
|
||||
TP_ARGS(local)
|
||||
);
|
||||
|
||||
TRACE_EVENT(drv_stop,
|
||||
DEFINE_EVENT(local_only_evt, drv_stop,
|
||||
TP_PROTO(struct ieee80211_local *local),
|
||||
|
||||
TP_ARGS(local),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
LOCAL_ENTRY
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
LOCAL_ASSIGN;
|
||||
),
|
||||
|
||||
TP_printk(
|
||||
LOCAL_PR_FMT, LOCAL_PR_ARG
|
||||
)
|
||||
TP_ARGS(local)
|
||||
);
|
||||
|
||||
TRACE_EVENT(drv_add_interface,
|
||||
|
@ -439,40 +423,14 @@ TRACE_EVENT(drv_hw_scan,
|
|||
)
|
||||
);
|
||||
|
||||
TRACE_EVENT(drv_sw_scan_start,
|
||||
DEFINE_EVENT(local_only_evt, drv_sw_scan_start,
|
||||
TP_PROTO(struct ieee80211_local *local),
|
||||
|
||||
TP_ARGS(local),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
LOCAL_ENTRY
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
LOCAL_ASSIGN;
|
||||
),
|
||||
|
||||
TP_printk(
|
||||
LOCAL_PR_FMT, LOCAL_PR_ARG
|
||||
)
|
||||
TP_ARGS(local)
|
||||
);
|
||||
|
||||
TRACE_EVENT(drv_sw_scan_complete,
|
||||
DEFINE_EVENT(local_only_evt, drv_sw_scan_complete,
|
||||
TP_PROTO(struct ieee80211_local *local),
|
||||
|
||||
TP_ARGS(local),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
LOCAL_ENTRY
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
LOCAL_ASSIGN;
|
||||
),
|
||||
|
||||
TP_printk(
|
||||
LOCAL_PR_FMT, LOCAL_PR_ARG
|
||||
)
|
||||
TP_ARGS(local)
|
||||
);
|
||||
|
||||
TRACE_EVENT(drv_get_stats,
|
||||
|
@ -702,23 +660,9 @@ TRACE_EVENT(drv_conf_tx,
|
|||
)
|
||||
);
|
||||
|
||||
TRACE_EVENT(drv_get_tsf,
|
||||
DEFINE_EVENT(local_only_evt, drv_get_tsf,
|
||||
TP_PROTO(struct ieee80211_local *local),
|
||||
|
||||
TP_ARGS(local),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
LOCAL_ENTRY
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
LOCAL_ASSIGN;
|
||||
),
|
||||
|
||||
TP_printk(
|
||||
LOCAL_PR_FMT,
|
||||
LOCAL_PR_ARG
|
||||
)
|
||||
TP_ARGS(local)
|
||||
);
|
||||
|
||||
TRACE_EVENT(drv_set_tsf,
|
||||
|
@ -742,41 +686,14 @@ TRACE_EVENT(drv_set_tsf,
|
|||
)
|
||||
);
|
||||
|
||||
TRACE_EVENT(drv_reset_tsf,
|
||||
DEFINE_EVENT(local_only_evt, drv_reset_tsf,
|
||||
TP_PROTO(struct ieee80211_local *local),
|
||||
|
||||
TP_ARGS(local),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
LOCAL_ENTRY
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
LOCAL_ASSIGN;
|
||||
),
|
||||
|
||||
TP_printk(
|
||||
LOCAL_PR_FMT, LOCAL_PR_ARG
|
||||
)
|
||||
TP_ARGS(local)
|
||||
);
|
||||
|
||||
TRACE_EVENT(drv_tx_last_beacon,
|
||||
DEFINE_EVENT(local_only_evt, drv_tx_last_beacon,
|
||||
TP_PROTO(struct ieee80211_local *local),
|
||||
|
||||
TP_ARGS(local),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
LOCAL_ENTRY
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
LOCAL_ASSIGN;
|
||||
),
|
||||
|
||||
TP_printk(
|
||||
LOCAL_PR_FMT,
|
||||
LOCAL_PR_ARG
|
||||
)
|
||||
TP_ARGS(local)
|
||||
);
|
||||
|
||||
TRACE_EVENT(drv_ampdu_action,
|
||||
|
@ -962,22 +879,9 @@ TRACE_EVENT(drv_remain_on_channel,
|
|||
)
|
||||
);
|
||||
|
||||
TRACE_EVENT(drv_cancel_remain_on_channel,
|
||||
DEFINE_EVENT(local_only_evt, drv_cancel_remain_on_channel,
|
||||
TP_PROTO(struct ieee80211_local *local),
|
||||
|
||||
TP_ARGS(local),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
LOCAL_ENTRY
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
LOCAL_ASSIGN;
|
||||
),
|
||||
|
||||
TP_printk(
|
||||
LOCAL_PR_FMT, LOCAL_PR_ARG
|
||||
)
|
||||
TP_ARGS(local)
|
||||
);
|
||||
|
||||
/*
|
||||
|
@ -1072,23 +976,9 @@ TRACE_EVENT(api_stop_tx_ba_cb,
|
|||
)
|
||||
);
|
||||
|
||||
TRACE_EVENT(api_restart_hw,
|
||||
DEFINE_EVENT(local_only_evt, api_restart_hw,
|
||||
TP_PROTO(struct ieee80211_local *local),
|
||||
|
||||
TP_ARGS(local),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
LOCAL_ENTRY
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
LOCAL_ASSIGN;
|
||||
),
|
||||
|
||||
TP_printk(
|
||||
LOCAL_PR_FMT,
|
||||
LOCAL_PR_ARG
|
||||
)
|
||||
TP_ARGS(local)
|
||||
);
|
||||
|
||||
TRACE_EVENT(api_beacon_loss,
|
||||
|
@ -1217,40 +1107,14 @@ TRACE_EVENT(api_chswitch_done,
|
|||
)
|
||||
);
|
||||
|
||||
TRACE_EVENT(api_ready_on_channel,
|
||||
DEFINE_EVENT(local_only_evt, api_ready_on_channel,
|
||||
TP_PROTO(struct ieee80211_local *local),
|
||||
|
||||
TP_ARGS(local),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
LOCAL_ENTRY
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
LOCAL_ASSIGN;
|
||||
),
|
||||
|
||||
TP_printk(
|
||||
LOCAL_PR_FMT, LOCAL_PR_ARG
|
||||
)
|
||||
TP_ARGS(local)
|
||||
);
|
||||
|
||||
TRACE_EVENT(api_remain_on_channel_expired,
|
||||
DEFINE_EVENT(local_only_evt, api_remain_on_channel_expired,
|
||||
TP_PROTO(struct ieee80211_local *local),
|
||||
|
||||
TP_ARGS(local),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
LOCAL_ENTRY
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
LOCAL_ASSIGN;
|
||||
),
|
||||
|
||||
TP_printk(
|
||||
LOCAL_PR_FMT, LOCAL_PR_ARG
|
||||
)
|
||||
TP_ARGS(local)
|
||||
);
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue