1

firewire: core: record card index in async_phy_outbound_complete tracepoints event

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-6-o-takashi@sakamocchi.jp
Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
This commit is contained in:
Takashi Sakamoto 2024-06-13 22:14:37 +09:00
parent 3cb44a72a3
commit 810f2aa835
3 changed files with 8 additions and 5 deletions

View File

@ -1559,7 +1559,7 @@ static void outbound_phy_packet_callback(struct fw_packet *packet,
struct client *e_client = e->client; struct client *e_client = e->client;
u32 rcode; u32 rcode;
trace_async_phy_outbound_complete((uintptr_t)packet, status, packet->generation, trace_async_phy_outbound_complete((uintptr_t)packet, card->index, status, packet->generation,
packet->timestamp); packet->timestamp);
switch (status) { switch (status) {

View File

@ -464,7 +464,7 @@ static DECLARE_COMPLETION(phy_config_done);
static void transmit_phy_packet_callback(struct fw_packet *packet, static void transmit_phy_packet_callback(struct fw_packet *packet,
struct fw_card *card, int status) struct fw_card *card, int status)
{ {
trace_async_phy_outbound_complete((uintptr_t)packet, packet->generation, status, trace_async_phy_outbound_complete((uintptr_t)packet, card->index, packet->generation, status,
packet->timestamp); packet->timestamp);
complete(&phy_config_done); complete(&phy_config_done);
} }

View File

@ -244,23 +244,26 @@ TRACE_EVENT(async_phy_outbound_initiate,
); );
TRACE_EVENT(async_phy_outbound_complete, TRACE_EVENT(async_phy_outbound_complete,
TP_PROTO(u64 packet, unsigned int generation, unsigned int status, unsigned int timestamp), TP_PROTO(u64 packet, unsigned int card_index, unsigned int generation, unsigned int status, unsigned int timestamp),
TP_ARGS(packet, generation, status, timestamp), TP_ARGS(packet, card_index, generation, status, timestamp),
TP_STRUCT__entry( TP_STRUCT__entry(
__field(u64, packet) __field(u64, packet)
__field(u8, card_index)
__field(u8, generation) __field(u8, generation)
__field(u8, status) __field(u8, status)
__field(u16, timestamp) __field(u16, timestamp)
), ),
TP_fast_assign( TP_fast_assign(
__entry->packet = packet; __entry->packet = packet;
__entry->card_index = card_index;
__entry->generation = generation; __entry->generation = generation;
__entry->status = status; __entry->status = status;
__entry->timestamp = timestamp; __entry->timestamp = timestamp;
), ),
TP_printk( TP_printk(
"packet=0x%llx generation=%u status=%u timestamp=0x%04x", "packet=0x%llx card_index=%u generation=%u status=%u timestamp=0x%04x",
__entry->packet, __entry->packet,
__entry->card_index,
__entry->generation, __entry->generation,
__entry->status, __entry->status,
__entry->timestamp __entry->timestamp