提交 ba99d93b 编写于 作者: J Johannes Berg 提交者: John W. Linville

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: NJohannes Berg <johannes.berg@intel.com>
Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
上级 62362dee
...@@ -9,6 +9,11 @@ ...@@ -9,6 +9,11 @@
#undef TRACE_EVENT #undef TRACE_EVENT
#define TRACE_EVENT(name, proto, ...) \ #define TRACE_EVENT(name, proto, ...) \
static inline void trace_ ## 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 #endif
#undef TRACE_SYSTEM #undef TRACE_SYSTEM
...@@ -38,7 +43,7 @@ static inline void trace_ ## name(proto) {} ...@@ -38,7 +43,7 @@ static inline void trace_ ## name(proto) {}
* Tracing for driver callbacks. * Tracing for driver callbacks.
*/ */
TRACE_EVENT(drv_return_void, DECLARE_EVENT_CLASS(local_only_evt,
TP_PROTO(struct ieee80211_local *local), TP_PROTO(struct ieee80211_local *local),
TP_ARGS(local), TP_ARGS(local),
TP_STRUCT__entry( TP_STRUCT__entry(
...@@ -50,6 +55,11 @@ TRACE_EVENT(drv_return_void, ...@@ -50,6 +55,11 @@ TRACE_EVENT(drv_return_void,
TP_printk(LOCAL_PR_FMT, LOCAL_PR_ARG) 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, TRACE_EVENT(drv_return_int,
TP_PROTO(struct ieee80211_local *local, int ret), TP_PROTO(struct ieee80211_local *local, int ret),
TP_ARGS(local, ret), TP_ARGS(local, ret),
...@@ -78,40 +88,14 @@ TRACE_EVENT(drv_return_u64, ...@@ -78,40 +88,14 @@ TRACE_EVENT(drv_return_u64,
TP_printk(LOCAL_PR_FMT " - %llu", LOCAL_PR_ARG, __entry->ret) 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_PROTO(struct ieee80211_local *local),
TP_ARGS(local)
TP_ARGS(local),
TP_STRUCT__entry(
LOCAL_ENTRY
),
TP_fast_assign(
LOCAL_ASSIGN;
),
TP_printk(
LOCAL_PR_FMT, LOCAL_PR_ARG
)
); );
TRACE_EVENT(drv_stop, DEFINE_EVENT(local_only_evt, drv_stop,
TP_PROTO(struct ieee80211_local *local), TP_PROTO(struct ieee80211_local *local),
TP_ARGS(local)
TP_ARGS(local),
TP_STRUCT__entry(
LOCAL_ENTRY
),
TP_fast_assign(
LOCAL_ASSIGN;
),
TP_printk(
LOCAL_PR_FMT, LOCAL_PR_ARG
)
); );
TRACE_EVENT(drv_add_interface, TRACE_EVENT(drv_add_interface,
...@@ -439,40 +423,14 @@ TRACE_EVENT(drv_hw_scan, ...@@ -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_PROTO(struct ieee80211_local *local),
TP_ARGS(local)
TP_ARGS(local),
TP_STRUCT__entry(
LOCAL_ENTRY
),
TP_fast_assign(
LOCAL_ASSIGN;
),
TP_printk(
LOCAL_PR_FMT, LOCAL_PR_ARG
)
); );
TRACE_EVENT(drv_sw_scan_complete, DEFINE_EVENT(local_only_evt, drv_sw_scan_complete,
TP_PROTO(struct ieee80211_local *local), TP_PROTO(struct ieee80211_local *local),
TP_ARGS(local)
TP_ARGS(local),
TP_STRUCT__entry(
LOCAL_ENTRY
),
TP_fast_assign(
LOCAL_ASSIGN;
),
TP_printk(
LOCAL_PR_FMT, LOCAL_PR_ARG
)
); );
TRACE_EVENT(drv_get_stats, TRACE_EVENT(drv_get_stats,
...@@ -702,23 +660,9 @@ TRACE_EVENT(drv_conf_tx, ...@@ -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_PROTO(struct ieee80211_local *local),
TP_ARGS(local)
TP_ARGS(local),
TP_STRUCT__entry(
LOCAL_ENTRY
),
TP_fast_assign(
LOCAL_ASSIGN;
),
TP_printk(
LOCAL_PR_FMT,
LOCAL_PR_ARG
)
); );
TRACE_EVENT(drv_set_tsf, TRACE_EVENT(drv_set_tsf,
...@@ -742,41 +686,14 @@ 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_PROTO(struct ieee80211_local *local),
TP_ARGS(local)
TP_ARGS(local),
TP_STRUCT__entry(
LOCAL_ENTRY
),
TP_fast_assign(
LOCAL_ASSIGN;
),
TP_printk(
LOCAL_PR_FMT, LOCAL_PR_ARG
)
); );
TRACE_EVENT(drv_tx_last_beacon, DEFINE_EVENT(local_only_evt, drv_tx_last_beacon,
TP_PROTO(struct ieee80211_local *local), TP_PROTO(struct ieee80211_local *local),
TP_ARGS(local)
TP_ARGS(local),
TP_STRUCT__entry(
LOCAL_ENTRY
),
TP_fast_assign(
LOCAL_ASSIGN;
),
TP_printk(
LOCAL_PR_FMT,
LOCAL_PR_ARG
)
); );
TRACE_EVENT(drv_ampdu_action, TRACE_EVENT(drv_ampdu_action,
...@@ -962,22 +879,9 @@ TRACE_EVENT(drv_remain_on_channel, ...@@ -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_PROTO(struct ieee80211_local *local),
TP_ARGS(local)
TP_ARGS(local),
TP_STRUCT__entry(
LOCAL_ENTRY
),
TP_fast_assign(
LOCAL_ASSIGN;
),
TP_printk(
LOCAL_PR_FMT, LOCAL_PR_ARG
)
); );
/* /*
...@@ -1072,23 +976,9 @@ TRACE_EVENT(api_stop_tx_ba_cb, ...@@ -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_PROTO(struct ieee80211_local *local),
TP_ARGS(local)
TP_ARGS(local),
TP_STRUCT__entry(
LOCAL_ENTRY
),
TP_fast_assign(
LOCAL_ASSIGN;
),
TP_printk(
LOCAL_PR_FMT,
LOCAL_PR_ARG
)
); );
TRACE_EVENT(api_beacon_loss, TRACE_EVENT(api_beacon_loss,
...@@ -1217,40 +1107,14 @@ TRACE_EVENT(api_chswitch_done, ...@@ -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_PROTO(struct ieee80211_local *local),
TP_ARGS(local)
TP_ARGS(local),
TP_STRUCT__entry(
LOCAL_ENTRY
),
TP_fast_assign(
LOCAL_ASSIGN;
),
TP_printk(
LOCAL_PR_FMT, LOCAL_PR_ARG
)
); );
TRACE_EVENT(api_remain_on_channel_expired, DEFINE_EVENT(local_only_evt, api_remain_on_channel_expired,
TP_PROTO(struct ieee80211_local *local), TP_PROTO(struct ieee80211_local *local),
TP_ARGS(local)
TP_ARGS(local),
TP_STRUCT__entry(
LOCAL_ENTRY
),
TP_fast_assign(
LOCAL_ASSIGN;
),
TP_printk(
LOCAL_PR_FMT, LOCAL_PR_ARG
)
); );
/* /*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册