Skip to content

Commit

Permalink
mac80211: use DECLARE_EVENT_CLASS
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Johannes Berg authored and John W. Linville committed Jan 26, 2011
1 parent 62362de commit ba99d93
Showing 1 changed file with 33 additions and 169 deletions.
202 changes: 33 additions & 169 deletions net/mac80211/driver-trace.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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(
Expand All @@ -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),
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand All @@ -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,
Expand Down Expand Up @@ -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)
);

/*
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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)
);

/*
Expand Down

0 comments on commit ba99d93

Please sign in to comment.