Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

firewire: core: record card index in tracepoinrts events derived from bus_reset_arrange_template

The asynchronous transmission of phy packet is initiated on one of 1394
OHCI controller, however the existing tracepoints events has the lack of
data about it.

This commit adds card_index member into event structure to store the index
of host controller in use, and prints it.

Link: https://lore.kernel.org/r/20240613131440.431766-8-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>

+15 -12
+3 -3
drivers/firewire/core-card.c
··· 222 222 int reg = short_reset ? 5 : 1; 223 223 int bit = short_reset ? PHY_BUS_SHORT_RESET : PHY_BUS_RESET; 224 224 225 - trace_bus_reset_initiate(card->generation, short_reset); 225 + trace_bus_reset_initiate(card->index, card->generation, short_reset); 226 226 227 227 return card->driver->update_phy_reg(card, reg, 0, bit); 228 228 } 229 229 230 230 void fw_schedule_bus_reset(struct fw_card *card, bool delayed, bool short_reset) 231 231 { 232 - trace_bus_reset_schedule(card->generation, short_reset); 232 + trace_bus_reset_schedule(card->index, card->generation, short_reset); 233 233 234 234 /* We don't try hard to sort out requests of long vs. short resets. */ 235 235 card->br_short = short_reset; ··· 249 249 /* Delay for 2s after last reset per IEEE 1394 clause 8.2.1. */ 250 250 if (card->reset_jiffies != 0 && 251 251 time_before64(get_jiffies_64(), card->reset_jiffies + 2 * HZ)) { 252 - trace_bus_reset_postpone(card->generation, card->br_short); 252 + trace_bus_reset_postpone(card->index, card->generation, card->br_short); 253 253 254 254 if (!queue_delayed_work(fw_workqueue, &card->br_work, 2 * HZ)) 255 255 fw_card_put(card);
+12 -9
include/trace/events/firewire.h
··· 303 303 ); 304 304 305 305 DECLARE_EVENT_CLASS(bus_reset_arrange_template, 306 - TP_PROTO(unsigned int generation, bool short_reset), 307 - TP_ARGS(generation, short_reset), 306 + TP_PROTO(unsigned int card_index, unsigned int generation, bool short_reset), 307 + TP_ARGS(card_index, generation, short_reset), 308 308 TP_STRUCT__entry( 309 + __field(u8, card_index) 309 310 __field(u8, generation) 310 311 __field(bool, short_reset) 311 312 ), 312 313 TP_fast_assign( 314 + __entry->card_index = card_index; 313 315 __entry->generation = generation; 314 316 __entry->short_reset = short_reset; 315 317 ), 316 318 TP_printk( 317 - "generation=%u short_reset=%s", 319 + "card_index=%u generation=%u short_reset=%s", 320 + __entry->card_index, 318 321 __entry->generation, 319 322 __entry->short_reset ? "true" : "false" 320 323 ) 321 324 ); 322 325 323 326 DEFINE_EVENT(bus_reset_arrange_template, bus_reset_initiate, 324 - TP_PROTO(unsigned int generation, bool short_reset), 325 - TP_ARGS(generation, short_reset) 327 + TP_PROTO(unsigned int card_index, unsigned int generation, bool short_reset), 328 + TP_ARGS(card_index, generation, short_reset) 326 329 ); 327 330 328 331 DEFINE_EVENT(bus_reset_arrange_template, bus_reset_schedule, 329 - TP_PROTO(unsigned int generation, bool short_reset), 330 - TP_ARGS(generation, short_reset) 332 + TP_PROTO(unsigned int card_index, unsigned int generation, bool short_reset), 333 + TP_ARGS(card_index, generation, short_reset) 331 334 ); 332 335 333 336 DEFINE_EVENT(bus_reset_arrange_template, bus_reset_postpone, 334 - TP_PROTO(unsigned int generation, bool short_reset), 335 - TP_ARGS(generation, short_reset) 337 + TP_PROTO(unsigned int card_index, unsigned int generation, bool short_reset), 338 + TP_ARGS(card_index, generation, short_reset) 336 339 ); 337 340 338 341 TRACE_EVENT(bus_reset_handle,