Skip to content

Commit 08dd860

Browse files
committed
firewire: core: add tracepoints events for initiating bus reset
At a commit 6732491 ("firewire: core: option to log bus reset initiation"), some kernel log messages were added to trace initiation of bus reset. The kernel log messages are really helpful, while nowadays it is not preferable just for debugging purpose. For the purpose, Linux kernel tracepoints is more preferable. This commit adds some alternative tracepoints events. Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Takashi Sakamoto <[email protected]>
1 parent 4237430 commit 08dd860

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

drivers/firewire/core-card.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include <asm/byteorder.h>
2424

2525
#include "core.h"
26+
#include <trace/events/firewire.h>
2627

2728
#define define_fw_printk_level(func, kern_level) \
2829
void func(const struct fw_card *card, const char *fmt, ...) \
@@ -221,6 +222,8 @@ static int reset_bus(struct fw_card *card, bool short_reset)
221222
int reg = short_reset ? 5 : 1;
222223
int bit = short_reset ? PHY_BUS_SHORT_RESET : PHY_BUS_RESET;
223224

225+
trace_bus_reset_initiate(card->generation, short_reset);
226+
224227
if (unlikely(fw_core_param_debug & FW_CORE_PARAM_DEBUG_BUSRESETS))
225228
fw_notice(card, "initiating %s bus reset\n",
226229
short_reset ? "short" : "long");
@@ -230,6 +233,8 @@ static int reset_bus(struct fw_card *card, bool short_reset)
230233

231234
void fw_schedule_bus_reset(struct fw_card *card, bool delayed, bool short_reset)
232235
{
236+
trace_bus_reset_schedule(card->generation, short_reset);
237+
233238
if (unlikely(fw_core_param_debug & FW_CORE_PARAM_DEBUG_BUSRESETS))
234239
fw_notice(card, "scheduling %s bus reset\n",
235240
short_reset ? "short" : "long");
@@ -252,6 +257,8 @@ static void br_work(struct work_struct *work)
252257
/* Delay for 2s after last reset per IEEE 1394 clause 8.2.1. */
253258
if (card->reset_jiffies != 0 &&
254259
time_before64(get_jiffies_64(), card->reset_jiffies + 2 * HZ)) {
260+
trace_bus_reset_postpone(card->generation, card->br_short);
261+
255262
if (unlikely(fw_core_param_debug & FW_CORE_PARAM_DEBUG_BUSRESETS))
256263
fw_notice(card, "delaying bus reset\n");
257264
if (!queue_delayed_work(fw_workqueue, &card->br_work, 2 * HZ))

include/trace/events/firewire.h

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,39 @@ TRACE_EVENT(async_phy_inbound,
284284
)
285285
);
286286

287+
DECLARE_EVENT_CLASS(bus_reset_arrange_template,
288+
TP_PROTO(unsigned int generation, bool short_reset),
289+
TP_ARGS(generation, short_reset),
290+
TP_STRUCT__entry(
291+
__field(u8, generation)
292+
__field(bool, short_reset)
293+
),
294+
TP_fast_assign(
295+
__entry->generation = generation;
296+
__entry->short_reset = short_reset;
297+
),
298+
TP_printk(
299+
"generation=%u short_reset=%s",
300+
__entry->generation,
301+
__entry->short_reset ? "true" : "false"
302+
)
303+
);
304+
305+
DEFINE_EVENT(bus_reset_arrange_template, bus_reset_initiate,
306+
TP_PROTO(unsigned int generation, bool short_reset),
307+
TP_ARGS(generation, short_reset)
308+
);
309+
310+
DEFINE_EVENT(bus_reset_arrange_template, bus_reset_schedule,
311+
TP_PROTO(unsigned int generation, bool short_reset),
312+
TP_ARGS(generation, short_reset)
313+
);
314+
315+
DEFINE_EVENT(bus_reset_arrange_template, bus_reset_postpone,
316+
TP_PROTO(unsigned int generation, bool short_reset),
317+
TP_ARGS(generation, short_reset)
318+
);
319+
287320
#endif // _FIREWIRE_TRACE_EVENT_H
288321

289322
#include <trace/define_trace.h>

0 commit comments

Comments
 (0)