Re: [PATCH 30/37] usb: host: xhci: make a generic TRB tracer

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On 01/02/2017 04:53 PM, Felipe Balbi wrote:
> Hi,
>
> Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx> writes:
>> Hi,
>>
>> On 12/30/2016 03:47 PM, Felipe Balbi wrote:
>>> Hi,
>>>
>>> Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx> writes:
>>>>> +DEFINE_EVENT(xhci_log_trb, xhci_handle_event,
>>>>> +	TP_PROTO(struct xhci_ring *ring, struct xhci_generic_trb *trb),
>>>>> +	TP_ARGS(ring, trb)
>>>>> +);
>>>>> +
>>>>> +DEFINE_EVENT(xhci_log_trb, xhci_handle_command,
>>>>> +	TP_PROTO(struct xhci_ring *ring, struct xhci_generic_trb *trb),
>>>>> +	TP_ARGS(ring, trb)
>>>>> +);
>>>>> +
>>>>> +DEFINE_EVENT(xhci_log_trb, xhci_handle_transfer,
>>>>> +	TP_PROTO(struct xhci_ring *ring, struct xhci_generic_trb *trb),
>>>>> +	TP_ARGS(ring, trb)
>>>>> +);
>>>>> +
>>>>> +DEFINE_EVENT(xhci_log_trb, xhci_queue_trb,
>>>>> +	TP_PROTO(struct xhci_ring *ring, struct xhci_generic_trb *trb),
>>>>> +	TP_ARGS(ring, trb)
>>>>>  );
>>>> How about add xhci_dequeue_trb for those dequeued from event ring?
>>> Sure, and where would the tracer be? When do we "dequeue" TRBs?
>> How about xhci_handle_event()? TRBs are dequeued from the event
>> ring there.
> we already have a tracer there ;-)
>
> @@ -2475,6 +2480,8 @@ static int xhci_handle_event(struct xhci_hcd *xhci)
>             xhci->event_ring->cycle_state)
>                 return 0;
>  
> +       trace_xhci_handle_event(xhci->event_ring, &event->generic);
> +
>         /*
>          * Barrier between reading the TRB_CYCLE (valid) flag above and any
>          * speculative reads of the event's flags/data below.
>
> We also have one for cmd completion:
>
> @@ -1346,6 +1346,9 @@ static void handle_cmd_completion(struct xhci_hcd *xhci,
>  
>         cmd_dma = le64_to_cpu(event->cmd_trb);
>         cmd_trb = xhci->cmd_ring->dequeue;
> +
> +       trace_xhci_handle_command(xhci->cmd_ring, &cmd_trb->generic);
> +
>         cmd_dequeue_dma = xhci_trb_virt_to_dma(xhci->cmd_ring->deq_seg,
>                         cmd_trb);
>         /*
>
> and another for transfer completion:
>
> @@ -2475,6 +2480,8 @@ static int xhci_handle_event(struct xhci_hcd *xhci)
>             xhci->event_ring->cycle_state)
>                 return 0;
>  
> +       trace_xhci_handle_event(xhci->event_ring, &event->generic);
> +
>         /*
>          * Barrier between reading the TRB_CYCLE (valid) flag above and any
>          * speculative reads of the event's flags/data below.
>
>
> I can't see what we're missing here.
>

Oh, yes. Thanks.

Best regards,
Lu Baolu
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux