mac80211: use DECLARE_EVENT_CLASS
authorJohannes Berg <johannes.berg@intel.com>
Wed, 26 Jan 2011 08:22:15 +0000 (09:22 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 26 Jan 2011 21:15:45 +0000 (16:15 -0500)
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>
net/mac80211/driver-trace.h

index fbabbc2f181a373ff9e7f6c65f4e5c6c7f2e8630..e5cce19a7d65b95e6d31605785a19c7191ee9e6c 100644 (file)
@@ -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)
 );
 
 /*