usb: host: xhci: add xhci_virt_device tracer
Let's start tracing at least part of an xhci_virt_device lifetime. We might want to extend this tracepoint class later, but for now it already exposes quite a bit of valuable information. Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com> Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Este cometimento está contido em:

cometido por
Greg Kroah-Hartman

ascendente
d4d93e6c55
cometimento
a711edeeb1
@@ -158,6 +158,63 @@ DEFINE_EVENT(xhci_log_trb, xhci_queue_trb,
|
||||
TP_ARGS(ring, trb)
|
||||
);
|
||||
|
||||
DECLARE_EVENT_CLASS(xhci_log_virt_dev,
|
||||
TP_PROTO(struct xhci_virt_device *vdev),
|
||||
TP_ARGS(vdev),
|
||||
TP_STRUCT__entry(
|
||||
__field(void *, vdev)
|
||||
__field(unsigned long long, out_ctx)
|
||||
__field(unsigned long long, in_ctx)
|
||||
__field(int, devnum)
|
||||
__field(int, state)
|
||||
__field(int, speed)
|
||||
__field(u8, portnum)
|
||||
__field(u8, level)
|
||||
__field(int, slot_id)
|
||||
),
|
||||
TP_fast_assign(
|
||||
__entry->vdev = vdev;
|
||||
__entry->in_ctx = (unsigned long long) vdev->in_ctx->dma;
|
||||
__entry->out_ctx = (unsigned long long) vdev->out_ctx->dma;
|
||||
__entry->devnum = vdev->udev->devnum;
|
||||
__entry->state = vdev->udev->state;
|
||||
__entry->speed = vdev->udev->speed;
|
||||
__entry->portnum = vdev->udev->portnum;
|
||||
__entry->level = vdev->udev->level;
|
||||
__entry->slot_id = vdev->udev->slot_id;
|
||||
),
|
||||
TP_printk("vdev %p ctx %llx | %llx num %d state %d speed %d port %d level %d slot %d",
|
||||
__entry->vdev, __entry->in_ctx, __entry->out_ctx,
|
||||
__entry->devnum, __entry->state, __entry->speed,
|
||||
__entry->portnum, __entry->level, __entry->slot_id
|
||||
)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(xhci_log_virt_dev, xhci_alloc_virt_device,
|
||||
TP_PROTO(struct xhci_virt_device *vdev),
|
||||
TP_ARGS(vdev)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(xhci_log_virt_dev, xhci_free_virt_device,
|
||||
TP_PROTO(struct xhci_virt_device *vdev),
|
||||
TP_ARGS(vdev)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(xhci_log_virt_dev, xhci_setup_device,
|
||||
TP_PROTO(struct xhci_virt_device *vdev),
|
||||
TP_ARGS(vdev)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(xhci_log_virt_dev, xhci_setup_addressable_virt_device,
|
||||
TP_PROTO(struct xhci_virt_device *vdev),
|
||||
TP_ARGS(vdev)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(xhci_log_virt_dev, xhci_stop_device,
|
||||
TP_PROTO(struct xhci_virt_device *vdev),
|
||||
TP_ARGS(vdev)
|
||||
);
|
||||
|
||||
DECLARE_EVENT_CLASS(xhci_log_urb,
|
||||
TP_PROTO(struct urb *urb),
|
||||
TP_ARGS(urb),
|
||||
|
Criar uma nova questão referindo esta
Bloquear um utilizador