From 32b2b16737d40d0aea6e7a02740ce47acd4fdd2e Mon Sep 17 00:00:00 2001 From: Bryan O'Donoghue Date: Tue, 22 Sep 2015 18:06:38 -0700 Subject: [PATCH] greybus: tracepoints: add tracepoints for host_device tx/rx This patch adds new tracepoint declarations to greybus_trace.h to allow for capture of greybus host device tx and rx events. These two tracepoints allow an observer to see the point where the hardware interface driver performs the relevant read or write to receive or write the data it's been given from the higher layer greybus driver. The following two new tracepoints are declared: - trace_gb_host_device_send - trace_gb_host_device_recv Signed-off-by: Bryan O'Donoghue Signed-off-by: Greg Kroah-Hartman --- drivers/staging/greybus/core.c | 3 ++ drivers/staging/greybus/greybus_trace.h | 50 +++++++++++++++++++++++++ 2 files changed, 53 insertions(+) diff --git a/drivers/staging/greybus/core.c b/drivers/staging/greybus/core.c index 765e0db844f1..ea23aaff9465 100644 --- a/drivers/staging/greybus/core.c +++ b/drivers/staging/greybus/core.c @@ -13,6 +13,9 @@ #include "greybus.h" #include "greybus_trace.h" +EXPORT_TRACEPOINT_SYMBOL_GPL(gb_host_device_send); +EXPORT_TRACEPOINT_SYMBOL_GPL(gb_host_device_recv); + /* Allow greybus to be disabled at boot if needed */ static bool nogreybus; #ifdef MODULE diff --git a/drivers/staging/greybus/greybus_trace.h b/drivers/staging/greybus/greybus_trace.h index abceb3ac7a13..6c88d34d6f5d 100644 --- a/drivers/staging/greybus/greybus_trace.h +++ b/drivers/staging/greybus/greybus_trace.h @@ -15,6 +15,7 @@ #include struct gb_message; +struct greybus_host_device; DECLARE_EVENT_CLASS(gb_message, @@ -105,6 +106,55 @@ DEFINE_EVENT(gb_message, gb_message_cancel_incoming, TP_ARGS(message) ); +DECLARE_EVENT_CLASS(gb_host_device, + + TP_PROTO(struct greybus_host_device *hd, u16 intf_cport_id, + size_t payload_size), + + TP_ARGS(hd, intf_cport_id, payload_size), + + TP_STRUCT__entry( + __string(name, dev_name(hd->parent)) + __field(u16, intf_cport_id) + __field(size_t, payload_size) + ), + + TP_fast_assign( + __assign_str(name, dev_name(hd->parent)) + __entry->intf_cport_id = intf_cport_id; + __entry->payload_size = payload_size; + ), + + TP_printk("greybus:%s if_id=%04x l=%zu", __get_str(name), + __entry->intf_cport_id, __entry->payload_size) +); + +/* + * tracepoint name greybus:gb_host_device_send + * description tracepoint representing the point data are transmitted + * location es1.c/es2.c:message_send + */ +DEFINE_EVENT(gb_host_device, gb_host_device_send, + + TP_PROTO(struct greybus_host_device *hd, u16 intf_cport_id, + size_t payload_size), + + TP_ARGS(hd, intf_cport_id, payload_size) +); + +/* + * tracepoint name greybus:gb_host_device_recv + * description tracepoint representing the point data are received + * location es1.c/es2.c:cport_in_callback + */ +DEFINE_EVENT(gb_host_device, gb_host_device_recv, + + TP_PROTO(struct greybus_host_device *hd, u16 intf_cport_id, + size_t payload_size), + + TP_ARGS(hd, intf_cport_id, payload_size) +); + #endif /* _TRACE_GREYBUS_H */ /* This part must be outside protection */ -- 2.20.1