mirror of
https://github.com/linuxkit/linuxkit.git
synced 2026-01-30 01:35:07 +00:00
112 lines
3.4 KiB
Diff
112 lines
3.4 KiB
Diff
From 91ea7857e64e1c208291cbaffaaa9c76a74f23df Mon Sep 17 00:00:00 2001
|
|
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
|
Date: Sun, 29 Oct 2017 12:21:00 -0700
|
|
Subject: [PATCH 02/21] hyper-v: trace vmbus_on_msg_dpc()
|
|
|
|
Add tracing subsystem to Hyper-V VMBus module and add tracepoint
|
|
to vmbus_on_msg_dpc() which is called when we receive a message from host.
|
|
|
|
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
|
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
|
|
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
(cherry picked from commit c9fe0f8fa4136c2451dcc012e48fbf4470d6b592)
|
|
---
|
|
drivers/hv/Makefile | 4 +++-
|
|
drivers/hv/hv_trace.c | 4 ++++
|
|
drivers/hv/hv_trace.h | 29 +++++++++++++++++++++++++++++
|
|
drivers/hv/hyperv_vmbus.h | 2 ++
|
|
drivers/hv/vmbus_drv.c | 2 ++
|
|
5 files changed, 40 insertions(+), 1 deletion(-)
|
|
create mode 100644 drivers/hv/hv_trace.c
|
|
create mode 100644 drivers/hv/hv_trace.h
|
|
|
|
diff --git a/drivers/hv/Makefile b/drivers/hv/Makefile
|
|
index e7b1d796ba2e..14c22786b519 100644
|
|
--- a/drivers/hv/Makefile
|
|
+++ b/drivers/hv/Makefile
|
|
@@ -3,7 +3,9 @@ obj-$(CONFIG_HYPERV) += hv_vmbus.o
|
|
obj-$(CONFIG_HYPERV_UTILS) += hv_utils.o
|
|
obj-$(CONFIG_HYPERV_BALLOON) += hv_balloon.o
|
|
|
|
+CFLAGS_hv_trace.o = -I$(src)
|
|
+
|
|
hv_vmbus-y := vmbus_drv.o \
|
|
hv.o connection.o channel.o \
|
|
- channel_mgmt.o ring_buffer.o
|
|
+ channel_mgmt.o ring_buffer.o hv_trace.o
|
|
hv_utils-y := hv_util.o hv_kvp.o hv_snapshot.o hv_fcopy.o hv_utils_transport.o
|
|
diff --git a/drivers/hv/hv_trace.c b/drivers/hv/hv_trace.c
|
|
new file mode 100644
|
|
index 000000000000..df47acd01a81
|
|
--- /dev/null
|
|
+++ b/drivers/hv/hv_trace.c
|
|
@@ -0,0 +1,4 @@
|
|
+#include "hyperv_vmbus.h"
|
|
+
|
|
+#define CREATE_TRACE_POINTS
|
|
+#include "hv_trace.h"
|
|
diff --git a/drivers/hv/hv_trace.h b/drivers/hv/hv_trace.h
|
|
new file mode 100644
|
|
index 000000000000..9c2772922c76
|
|
--- /dev/null
|
|
+++ b/drivers/hv/hv_trace.h
|
|
@@ -0,0 +1,29 @@
|
|
+#undef TRACE_SYSTEM
|
|
+#define TRACE_SYSTEM hyperv
|
|
+
|
|
+#if !defined(_HV_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
|
|
+#define _HV_TRACE_H
|
|
+
|
|
+#include <linux/tracepoint.h>
|
|
+
|
|
+DECLARE_EVENT_CLASS(vmbus_hdr_msg,
|
|
+ TP_PROTO(const struct vmbus_channel_message_header *hdr),
|
|
+ TP_ARGS(hdr),
|
|
+ TP_STRUCT__entry(__field(unsigned int, msgtype)),
|
|
+ TP_fast_assign(__entry->msgtype = hdr->msgtype;),
|
|
+ TP_printk("msgtype=%u", __entry->msgtype)
|
|
+);
|
|
+
|
|
+DEFINE_EVENT(vmbus_hdr_msg, vmbus_on_msg_dpc,
|
|
+ TP_PROTO(const struct vmbus_channel_message_header *hdr),
|
|
+ TP_ARGS(hdr)
|
|
+);
|
|
+
|
|
+#undef TRACE_INCLUDE_PATH
|
|
+#define TRACE_INCLUDE_PATH .
|
|
+#undef TRACE_INCLUDE_FILE
|
|
+#define TRACE_INCLUDE_FILE hv_trace
|
|
+#endif /* _HV_TRACE_H */
|
|
+
|
|
+/* This part must be outside protection */
|
|
+#include <trace/define_trace.h>
|
|
diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h
|
|
index 49569f8fe038..82eb082f3302 100644
|
|
--- a/drivers/hv/hyperv_vmbus.h
|
|
+++ b/drivers/hv/hyperv_vmbus.h
|
|
@@ -31,6 +31,8 @@
|
|
#include <linux/hyperv.h>
|
|
#include <linux/interrupt.h>
|
|
|
|
+#include "hv_trace.h"
|
|
+
|
|
/*
|
|
* Timeout for services such as KVP and fcopy.
|
|
*/
|
|
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
|
|
index 2cd134dd94d2..9687e462fd43 100644
|
|
--- a/drivers/hv/vmbus_drv.c
|
|
+++ b/drivers/hv/vmbus_drv.c
|
|
@@ -833,6 +833,8 @@ void vmbus_on_msg_dpc(unsigned long data)
|
|
|
|
hdr = (struct vmbus_channel_message_header *)msg->u.payload;
|
|
|
|
+ trace_vmbus_on_msg_dpc(hdr);
|
|
+
|
|
if (hdr->msgtype >= CHANNELMSG_COUNT) {
|
|
WARN_ONCE(1, "unknown msgtype=%d\n", hdr->msgtype);
|
|
goto msg_handled;
|
|
--
|
|
2.16.0
|
|
|