lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <58A4102C.3020502@linux.intel.com>
Date:   Wed, 15 Feb 2017 16:24:12 +0800
From:   Lu Baolu <baolu.lu@...ux.intel.com>
To:     Felipe Balbi <felipe.balbi@...ux.intel.com>,
        Mathias Nyman <mathias.nyman@...ux.intel.com>
Cc:     linux-usb@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/6] usb: xhci: add xhci_log_cmd trace events

Hi,

On 02/15/2017 03:58 PM, Felipe Balbi wrote:
> Hi,
>
> Lu Baolu <baolu.lu@...ux.intel.com> 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?

This tracer traces the life cycle of a command. It gives,

1) Which function started an xhci command?
2) What was name of that command?
3) Did hardware respond to it, or timed out?
4) If hardware responded, what was the execution result?
5) If timed out, did 'abort command ring operation' abort it successfully?
6) Was the command structure freed at last?

> 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
>

Sorry for the duplication.

Best regards,
Lu Baolu

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ