Hi, Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx> writes: > diff --git a/drivers/usb/host/xhci-trace.h b/drivers/usb/host/xhci-trace.h > index 1ac2cdf..c31eeaf 100644 > --- a/drivers/usb/host/xhci-trace.h > +++ b/drivers/usb/host/xhci-trace.h > @@ -285,6 +285,96 @@ DEFINE_EVENT(xhci_log_urb, xhci_urb_dequeue, > TP_ARGS(urb) > ); > > +DECLARE_EVENT_CLASS(xhci_log_cmd, > + TP_PROTO(struct xhci_command *cmd), > + TP_ARGS(cmd), > + TP_STRUCT__entry( > + __field(struct xhci_command *, cmd) > + __field(struct xhci_container_ctx *, in_ctx) > + __field(union xhci_trb *, cmd_trb) > + __field(int, slot_id) > + __field(int, status) > + __field(int, type) > + ), > + TP_fast_assign( > + __entry->cmd = cmd; > + __entry->in_ctx = cmd->in_ctx; > + __entry->cmd_trb = cmd->command_trb; > + __entry->slot_id = cmd->slot_id; > + __entry->status = cmd->status; > + __entry->type = TRB_FIELD_TO_TYPE(le32_to_cpu(cmd->command_trb->generic.field[3])) > + ), > + TP_printk("cmd @%p: %s: in_ctx=@%p, slot_id=%d, cmd_trb=@%p, status=%d", > + __entry->cmd, xhci_trb_type_string(__entry->type), > + __entry->in_ctx, __entry->slot_id, __entry->cmd_trb, > + __entry->status > + ) > +); we already have a generic TRB tracer that decodes every single TRB. What is this bringing that the previous doesn't provide? BTW, I also have ready Slot and EP context tracers, I didn't send before because I already had quite a large series pending for Mathias :-p -- balbi
Attachment:
signature.asc
Description: PGP signature