Re: [PATCH 2/6] usb: xhci: enhance xhci_log_ctx trace events

2017-02-15 Thread Lu Baolu
Hi,

On 02/15/2017 04:00 PM, Felipe Balbi wrote:
> Hi,
>
> Lu Baolu  writes:
>> XHCI driver has defined xhci_log_ctx trace events to trace
>> the change of an xhci input or output context. This patch
>> extends the trace class of xhci_log_ctx to print out the
>> contents of a context block in a human readable way.
>>
>> This patch also adds some other xhci_log_ctx based events
>> where the xhci input or output context changes.
>>
>> Signed-off-by: Lu Baolu 
> how about?
>
> https://git.kernel.org/cgit/linux/kernel/git/balbi/usb.git/commit/?h=xhci-cleanup=4c45cec9f399fb3a53b77c4bb63d5e8fbe382171
>

Great. I will look into this.

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


Re: [PATCH 2/6] usb: xhci: enhance xhci_log_ctx trace events

2017-02-15 Thread Felipe Balbi

Hi,

Lu Baolu  writes:
> XHCI driver has defined xhci_log_ctx trace events to trace
> the change of an xhci input or output context. This patch
> extends the trace class of xhci_log_ctx to print out the
> contents of a context block in a human readable way.
>
> This patch also adds some other xhci_log_ctx based events
> where the xhci input or output context changes.
>
> Signed-off-by: Lu Baolu 

how about?

https://git.kernel.org/cgit/linux/kernel/git/balbi/usb.git/commit/?h=xhci-cleanup=4c45cec9f399fb3a53b77c4bb63d5e8fbe382171

-- 
balbi


signature.asc
Description: PGP signature


[PATCH 2/6] usb: xhci: enhance xhci_log_ctx trace events

2017-02-14 Thread Lu Baolu
XHCI driver has defined xhci_log_ctx trace events to trace
the change of an xhci input or output context. This patch
extends the trace class of xhci_log_ctx to print out the
contents of a context block in a human readable way.

This patch also adds some other xhci_log_ctx based events
where the xhci input or output context changes.

Signed-off-by: Lu Baolu 
---
 drivers/usb/host/xhci-trace.h | 63 ++-
 drivers/usb/host/xhci.c   | 23 +++-
 drivers/usb/host/xhci.h   | 60 +
 3 files changed, 121 insertions(+), 25 deletions(-)

diff --git a/drivers/usb/host/xhci-trace.h b/drivers/usb/host/xhci-trace.h
index c31eeaf..8fe01b1 100644
--- a/drivers/usb/host/xhci-trace.h
+++ b/drivers/usb/host/xhci-trace.h
@@ -75,44 +75,71 @@ DEFINE_EVENT(xhci_log_msg, xhci_dbg_ring_expansion,
 );
 
 DECLARE_EVENT_CLASS(xhci_log_ctx,
-   TP_PROTO(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx,
-unsigned int ep_num),
-   TP_ARGS(xhci, ctx, ep_num),
+   TP_PROTO(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx),
+   TP_ARGS(xhci, ctx),
TP_STRUCT__entry(
__field(int, ctx_64)
__field(unsigned, ctx_type)
__field(dma_addr_t, ctx_dma)
__field(u8 *, ctx_va)
__field(unsigned, ctx_ep_num)
-   __field(int, slot_id)
__dynamic_array(u32, ctx_data,
((HCC_64BYTE_CONTEXT(xhci->hcc_params) + 1) * 8) *
-   ((ctx->type == XHCI_CTX_TYPE_INPUT) + ep_num + 1))
+   ((ctx->type == XHCI_CTX_TYPE_INPUT) + 
xhci_get_ep_num(xhci, ctx) + 1))
),
TP_fast_assign(
-   struct usb_device *udev;
-
-   udev = to_usb_device(xhci_to_hcd(xhci)->self.controller);
__entry->ctx_64 = HCC_64BYTE_CONTEXT(xhci->hcc_params);
__entry->ctx_type = ctx->type;
__entry->ctx_dma = ctx->dma;
__entry->ctx_va = ctx->bytes;
-   __entry->slot_id = udev->slot_id;
-   __entry->ctx_ep_num = ep_num;
+   __entry->ctx_ep_num = xhci_get_ep_num(xhci, ctx);
memcpy(__get_dynamic_array(ctx_data), ctx->bytes,
((HCC_64BYTE_CONTEXT(xhci->hcc_params) + 1) * 32) *
-   ((ctx->type == XHCI_CTX_TYPE_INPUT) + ep_num + 1));
+   ((ctx->type == XHCI_CTX_TYPE_INPUT) + 
xhci_get_ep_num(xhci, ctx) + 1));
),
-   TP_printk("ctx_64=%d, ctx_type=%u, ctx_dma=@%llx, ctx_va=@%p",
-   __entry->ctx_64, __entry->ctx_type,
-   (unsigned long long) __entry->ctx_dma, __entry->ctx_va
+   TP_printk("ctx @%p: ctx_64=%d, ctx_type=%u, ctx_dma=@%llx: %s",
+   __entry->ctx_va, __entry->ctx_64, __entry->ctx_type,
+   (unsigned long long)__entry->ctx_dma,
+   xhci_decode_ctx((u8 *)__get_dynamic_array(ctx_data),
+   __entry->ctx_type,
+   __entry->ctx_ep_num,
+   __entry->ctx_64 ? 64 : 32)
)
 );
 
-DEFINE_EVENT(xhci_log_ctx, xhci_address_ctx,
-   TP_PROTO(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx,
-unsigned int ep_num),
-   TP_ARGS(xhci, ctx, ep_num)
+DEFINE_EVENT(xhci_log_ctx, ctx_xhci_setup_device,
+   TP_PROTO(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx),
+   TP_ARGS(xhci, ctx)
+);
+
+DEFINE_EVENT(xhci_log_ctx, ctx_xhci_check_maxpacket,
+   TP_PROTO(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx),
+   TP_ARGS(xhci, ctx)
+);
+
+DEFINE_EVENT(xhci_log_ctx, ctx_xhci_check_bandwidth,
+   TP_PROTO(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx),
+   TP_ARGS(xhci, ctx)
+);
+
+DEFINE_EVENT(xhci_log_ctx, ctx_xhci_alloc_streams,
+   TP_PROTO(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx),
+   TP_ARGS(xhci, ctx)
+);
+
+DEFINE_EVENT(xhci_log_ctx, ctx_xhci_free_streams,
+   TP_PROTO(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx),
+   TP_ARGS(xhci, ctx)
+);
+
+DEFINE_EVENT(xhci_log_ctx, ctx_xhci_update_hub_device,
+   TP_PROTO(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx),
+   TP_ARGS(xhci, ctx)
+);
+
+DEFINE_EVENT(xhci_log_ctx, ctx_xhci_change_max_exit_latency,
+   TP_PROTO(struct xhci_hcd *xhci, struct xhci_container_ctx *ctx),
+   TP_ARGS(xhci, ctx)
 );
 
 DECLARE_EVENT_CLASS(xhci_log_trb,
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index dff912e..304f38d 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -1311,8 +1311,10 @@ static int xhci_check_maxpacket(struct xhci_hcd *xhci, 
unsigned int slot_id,
xhci_dbg(xhci, "Slot %d output context\n", slot_id);
xhci_dbg_ctx(xhci, out_ctx, ep_index);
 
+