mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-07-19 09:16:29 +00:00
kernel: Add Hyper-V socket trace points to 4.14 kernel
This should make debugging a lot easier. Note, 991f8f1c6eb6 ("hyper-v: trace channel events"), patch 18, required some minor modifications from upstream as another patch was not easy to cherry-pick. Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
This commit is contained in:
parent
43ba6de147
commit
bf18c1366b
@ -1,8 +1,8 @@
|
||||
From 6bbdbaead3d12453aec28a37cb33bff2485a148a Mon Sep 17 00:00:00 2001
|
||||
From: Cheng-mean Liu <soccerl@microsoft.com>
|
||||
Date: Tue, 11 Jul 2017 16:58:26 -0700
|
||||
Subject: [PATCH] NVDIMM: reducded ND_MIN_NAMESPACE_SIZE from 4MB to 4KB (page
|
||||
size)
|
||||
Subject: [PATCH 01/18] NVDIMM: reducded ND_MIN_NAMESPACE_SIZE from 4MB to 4KB
|
||||
(page size)
|
||||
|
||||
Signed-off-by: Cheng-mean Liu <soccerl@microsoft.com>
|
||||
Origin: https://github.com/Microsoft/opengcs/blob/master/kernelconfig/4.11/patch_lower-the-minimum-PMEM-size.patch
|
||||
|
111
kernel/patches-4.14.x/0002-hyper-v-trace-vmbus_on_msg_dpc.patch
Normal file
111
kernel/patches-4.14.x/0002-hyper-v-trace-vmbus_on_msg_dpc.patch
Normal file
@ -0,0 +1,111 @@
|
||||
From 4e238653b5403128c184405dd84787f99ef12d77 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/18] 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
|
||||
|
@ -0,0 +1,49 @@
|
||||
From c87244e9cba6dc88b82cbe0a5d4ada4f9951e319 Mon Sep 17 00:00:00 2001
|
||||
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
Date: Sun, 29 Oct 2017 12:21:01 -0700
|
||||
Subject: [PATCH 03/18] hyper-v: trace vmbus_on_message()
|
||||
|
||||
Add tracepoint to vmbus_on_message() which is called when we start
|
||||
processing a blocking from work context.
|
||||
|
||||
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 716fa52fb474a36ddd3cbc981108f93610c973ef)
|
||||
---
|
||||
drivers/hv/channel_mgmt.c | 2 ++
|
||||
drivers/hv/hv_trace.h | 5 +++++
|
||||
2 files changed, 7 insertions(+)
|
||||
|
||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
||||
index 65c6d6bdce4c..7948fff52a6d 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -1169,6 +1169,8 @@ void vmbus_onmessage(void *context)
|
||||
hdr = (struct vmbus_channel_message_header *)msg->u.payload;
|
||||
size = msg->header.payload_size;
|
||||
|
||||
+ trace_vmbus_on_message(hdr);
|
||||
+
|
||||
if (hdr->msgtype >= CHANNELMSG_COUNT) {
|
||||
pr_err("Received invalid channel message type %d size %d\n",
|
||||
hdr->msgtype, size);
|
||||
diff --git a/drivers/hv/hv_trace.h b/drivers/hv/hv_trace.h
|
||||
index 9c2772922c76..d432aba5df8a 100644
|
||||
--- a/drivers/hv/hv_trace.h
|
||||
+++ b/drivers/hv/hv_trace.h
|
||||
@@ -19,6 +19,11 @@ DEFINE_EVENT(vmbus_hdr_msg, vmbus_on_msg_dpc,
|
||||
TP_ARGS(hdr)
|
||||
);
|
||||
|
||||
+DEFINE_EVENT(vmbus_hdr_msg, vmbus_on_message,
|
||||
+ TP_PROTO(const struct vmbus_channel_message_header *hdr),
|
||||
+ TP_ARGS(hdr)
|
||||
+);
|
||||
+
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
#define TRACE_INCLUDE_PATH .
|
||||
#undef TRACE_INCLUDE_FILE
|
||||
--
|
||||
2.16.0
|
||||
|
80
kernel/patches-4.14.x/0004-hyper-v-trace-vmbus_onoffer.patch
Normal file
80
kernel/patches-4.14.x/0004-hyper-v-trace-vmbus_onoffer.patch
Normal file
@ -0,0 +1,80 @@
|
||||
From b37f6409b9cb749a1f1dd00fbdc080290b8c88ab Mon Sep 17 00:00:00 2001
|
||||
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
Date: Sun, 29 Oct 2017 12:21:02 -0700
|
||||
Subject: [PATCH 04/18] hyper-v: trace vmbus_onoffer()
|
||||
|
||||
Add tracepoint to CHANNELMSG_OFFERCHANNEL handler.
|
||||
|
||||
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 03b81e66c78b076bfc127714ce6fd25655784600)
|
||||
---
|
||||
drivers/hv/channel_mgmt.c | 2 ++
|
||||
drivers/hv/hv_trace.h | 37 +++++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 39 insertions(+)
|
||||
|
||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
||||
index 7948fff52a6d..1909c5c571d1 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -806,6 +806,8 @@ static void vmbus_onoffer(struct vmbus_channel_message_header *hdr)
|
||||
|
||||
offer = (struct vmbus_channel_offer_channel *)hdr;
|
||||
|
||||
+ trace_vmbus_onoffer(offer);
|
||||
+
|
||||
/* Allocate the channel object and save this offer. */
|
||||
newchannel = alloc_channel();
|
||||
if (!newchannel) {
|
||||
diff --git a/drivers/hv/hv_trace.h b/drivers/hv/hv_trace.h
|
||||
index d432aba5df8a..488b873b563e 100644
|
||||
--- a/drivers/hv/hv_trace.h
|
||||
+++ b/drivers/hv/hv_trace.h
|
||||
@@ -24,6 +24,43 @@ DEFINE_EVENT(vmbus_hdr_msg, vmbus_on_message,
|
||||
TP_ARGS(hdr)
|
||||
);
|
||||
|
||||
+TRACE_EVENT(vmbus_onoffer,
|
||||
+ TP_PROTO(const struct vmbus_channel_offer_channel *offer),
|
||||
+ TP_ARGS(offer),
|
||||
+ TP_STRUCT__entry(
|
||||
+ __field(u32, child_relid)
|
||||
+ __field(u8, monitorid)
|
||||
+ __field(u16, is_ddc_int)
|
||||
+ __field(u32, connection_id)
|
||||
+ __array(char, if_type, 16)
|
||||
+ __array(char, if_instance, 16)
|
||||
+ __field(u16, chn_flags)
|
||||
+ __field(u16, mmio_mb)
|
||||
+ __field(u16, sub_idx)
|
||||
+ ),
|
||||
+ TP_fast_assign(__entry->child_relid = offer->child_relid;
|
||||
+ __entry->monitorid = offer->monitorid;
|
||||
+ __entry->is_ddc_int = offer->is_dedicated_interrupt;
|
||||
+ __entry->connection_id = offer->connection_id;
|
||||
+ memcpy(__entry->if_type,
|
||||
+ &offer->offer.if_type.b, 16);
|
||||
+ memcpy(__entry->if_instance,
|
||||
+ &offer->offer.if_instance.b, 16);
|
||||
+ __entry->chn_flags = offer->offer.chn_flags;
|
||||
+ __entry->mmio_mb = offer->offer.mmio_megabytes;
|
||||
+ __entry->sub_idx = offer->offer.sub_channel_index;
|
||||
+ ),
|
||||
+ TP_printk("child_relid 0x%x, monitorid 0x%x, is_dedicated %d, "
|
||||
+ "connection_id 0x%x, if_type %pUl, if_instance %pUl, "
|
||||
+ "chn_flags 0x%x, mmio_megabytes %d, sub_channel_index %d",
|
||||
+ __entry->child_relid, __entry->monitorid,
|
||||
+ __entry->is_ddc_int, __entry->connection_id,
|
||||
+ __entry->if_type, __entry->if_instance,
|
||||
+ __entry->chn_flags, __entry->mmio_mb,
|
||||
+ __entry->sub_idx
|
||||
+ )
|
||||
+ );
|
||||
+
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
#define TRACE_INCLUDE_PATH .
|
||||
#undef TRACE_INCLUDE_FILE
|
||||
--
|
||||
2.16.0
|
||||
|
@ -0,0 +1,51 @@
|
||||
From 635e04ba7b3f11d986f8657aaf8eba8ed72762e4 Mon Sep 17 00:00:00 2001
|
||||
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
Date: Sun, 29 Oct 2017 12:21:03 -0700
|
||||
Subject: [PATCH 05/18] hyper-v: trace vmbus_onoffer_rescind()
|
||||
|
||||
Add tracepoint to CHANNELMSG_RESCIND_CHANNELOFFER handler.
|
||||
|
||||
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 5175167c77afb19993bd86ab8b4be63d9cb4a928)
|
||||
---
|
||||
drivers/hv/channel_mgmt.c | 2 ++
|
||||
drivers/hv/hv_trace.h | 8 ++++++++
|
||||
2 files changed, 10 insertions(+)
|
||||
|
||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
||||
index 1909c5c571d1..54235b32ac82 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -849,6 +849,8 @@ static void vmbus_onoffer_rescind(struct vmbus_channel_message_header *hdr)
|
||||
|
||||
rescind = (struct vmbus_channel_rescind_offer *)hdr;
|
||||
|
||||
+ trace_vmbus_onoffer_rescind(rescind);
|
||||
+
|
||||
/*
|
||||
* The offer msg and the corresponding rescind msg
|
||||
* from the host are guranteed to be ordered -
|
||||
diff --git a/drivers/hv/hv_trace.h b/drivers/hv/hv_trace.h
|
||||
index 488b873b563e..dbbed1d1f327 100644
|
||||
--- a/drivers/hv/hv_trace.h
|
||||
+++ b/drivers/hv/hv_trace.h
|
||||
@@ -61,6 +61,14 @@ TRACE_EVENT(vmbus_onoffer,
|
||||
)
|
||||
);
|
||||
|
||||
+TRACE_EVENT(vmbus_onoffer_rescind,
|
||||
+ TP_PROTO(const struct vmbus_channel_rescind_offer *offer),
|
||||
+ TP_ARGS(offer),
|
||||
+ TP_STRUCT__entry(__field(u32, child_relid)),
|
||||
+ TP_fast_assign(__entry->child_relid = offer->child_relid),
|
||||
+ TP_printk("child_relid 0x%x", __entry->child_relid)
|
||||
+ );
|
||||
+
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
#define TRACE_INCLUDE_PATH .
|
||||
#undef TRACE_INCLUDE_FILE
|
||||
--
|
||||
2.16.0
|
||||
|
@ -0,0 +1,60 @@
|
||||
From ec7221a006dc8537f684a0f5164227ed6a4cc362 Mon Sep 17 00:00:00 2001
|
||||
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
Date: Sun, 29 Oct 2017 12:21:04 -0700
|
||||
Subject: [PATCH 06/18] hyper-v: trace vmbus_onopen_result()
|
||||
|
||||
Add tracepoint to CHANNELMSG_OPENCHANNEL_RESULT handler.
|
||||
|
||||
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 9f23ce1a23b6bf471d5920bdca5cc40940419e60)
|
||||
---
|
||||
drivers/hv/channel_mgmt.c | 2 ++
|
||||
drivers/hv/hv_trace.h | 17 +++++++++++++++++
|
||||
2 files changed, 19 insertions(+)
|
||||
|
||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
||||
index 54235b32ac82..66aa6b079b2e 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -979,6 +979,8 @@ static void vmbus_onopen_result(struct vmbus_channel_message_header *hdr)
|
||||
|
||||
result = (struct vmbus_channel_open_result *)hdr;
|
||||
|
||||
+ trace_vmbus_onopen_result(result);
|
||||
+
|
||||
/*
|
||||
* Find the open msg, copy the result and signal/unblock the wait event
|
||||
*/
|
||||
diff --git a/drivers/hv/hv_trace.h b/drivers/hv/hv_trace.h
|
||||
index dbbed1d1f327..9757c19d1c08 100644
|
||||
--- a/drivers/hv/hv_trace.h
|
||||
+++ b/drivers/hv/hv_trace.h
|
||||
@@ -69,6 +69,23 @@ TRACE_EVENT(vmbus_onoffer_rescind,
|
||||
TP_printk("child_relid 0x%x", __entry->child_relid)
|
||||
);
|
||||
|
||||
+TRACE_EVENT(vmbus_onopen_result,
|
||||
+ TP_PROTO(const struct vmbus_channel_open_result *result),
|
||||
+ TP_ARGS(result),
|
||||
+ TP_STRUCT__entry(
|
||||
+ __field(u32, child_relid)
|
||||
+ __field(u32, openid)
|
||||
+ __field(u32, status)
|
||||
+ ),
|
||||
+ TP_fast_assign(__entry->child_relid = result->child_relid;
|
||||
+ __entry->openid = result->openid;
|
||||
+ __entry->status = result->status;
|
||||
+ ),
|
||||
+ TP_printk("child_relid 0x%x, openid %d, status %d",
|
||||
+ __entry->child_relid, __entry->openid, __entry->status
|
||||
+ )
|
||||
+ );
|
||||
+
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
#define TRACE_INCLUDE_PATH .
|
||||
#undef TRACE_INCLUDE_FILE
|
||||
--
|
||||
2.16.0
|
||||
|
@ -0,0 +1,60 @@
|
||||
From 1cae1a53932c3357f3f6ee3f5d1635a6280f4408 Mon Sep 17 00:00:00 2001
|
||||
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
Date: Sun, 29 Oct 2017 12:21:05 -0700
|
||||
Subject: [PATCH 07/18] hyper-v: trace vmbus_ongpadl_created()
|
||||
|
||||
Add tracepoint to CHANNELMSG_GPADL_CREATED handler.
|
||||
|
||||
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 a13bf0ea4a60a7946bf335bd57e60adc344033bd)
|
||||
---
|
||||
drivers/hv/channel_mgmt.c | 2 ++
|
||||
drivers/hv/hv_trace.h | 17 +++++++++++++++++
|
||||
2 files changed, 19 insertions(+)
|
||||
|
||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
||||
index 66aa6b079b2e..ca5eccd3dceb 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -1025,6 +1025,8 @@ static void vmbus_ongpadl_created(struct vmbus_channel_message_header *hdr)
|
||||
|
||||
gpadlcreated = (struct vmbus_channel_gpadl_created *)hdr;
|
||||
|
||||
+ trace_vmbus_ongpadl_created(gpadlcreated);
|
||||
+
|
||||
/*
|
||||
* Find the establish msg, copy the result and signal/unblock the wait
|
||||
* event
|
||||
diff --git a/drivers/hv/hv_trace.h b/drivers/hv/hv_trace.h
|
||||
index 9757c19d1c08..20734b7b341b 100644
|
||||
--- a/drivers/hv/hv_trace.h
|
||||
+++ b/drivers/hv/hv_trace.h
|
||||
@@ -86,6 +86,23 @@ TRACE_EVENT(vmbus_onopen_result,
|
||||
)
|
||||
);
|
||||
|
||||
+TRACE_EVENT(vmbus_ongpadl_created,
|
||||
+ TP_PROTO(const struct vmbus_channel_gpadl_created *gpadlcreated),
|
||||
+ TP_ARGS(gpadlcreated),
|
||||
+ TP_STRUCT__entry(
|
||||
+ __field(u32, child_relid)
|
||||
+ __field(u32, gpadl)
|
||||
+ __field(u32, status)
|
||||
+ ),
|
||||
+ TP_fast_assign(__entry->child_relid = gpadlcreated->child_relid;
|
||||
+ __entry->gpadl = gpadlcreated->gpadl;
|
||||
+ __entry->status = gpadlcreated->creation_status;
|
||||
+ ),
|
||||
+ TP_printk("child_relid 0x%x, gpadl 0x%x, creation_status %d",
|
||||
+ __entry->child_relid, __entry->gpadl, __entry->status
|
||||
+ )
|
||||
+ );
|
||||
+
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
#define TRACE_INCLUDE_PATH .
|
||||
#undef TRACE_INCLUDE_FILE
|
||||
--
|
||||
2.16.0
|
||||
|
@ -0,0 +1,51 @@
|
||||
From 69f601d5d2b8cbf98c72bfd4881d3e90baa6fa8e Mon Sep 17 00:00:00 2001
|
||||
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
Date: Sun, 29 Oct 2017 12:21:06 -0700
|
||||
Subject: [PATCH 08/18] hyper-v: trace vmbus_ongpadl_torndown()
|
||||
|
||||
Add tracepoint to CHANNELMSG_GPADL_TORNDOWN handler.
|
||||
|
||||
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 602a8c525c8c7b2ff446894fc6b21f42471c952f)
|
||||
---
|
||||
drivers/hv/channel_mgmt.c | 2 ++
|
||||
drivers/hv/hv_trace.h | 8 ++++++++
|
||||
2 files changed, 10 insertions(+)
|
||||
|
||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
||||
index ca5eccd3dceb..1e8b0ebe1b9e 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -1075,6 +1075,8 @@ static void vmbus_ongpadl_torndown(
|
||||
|
||||
gpadl_torndown = (struct vmbus_channel_gpadl_torndown *)hdr;
|
||||
|
||||
+ trace_vmbus_ongpadl_torndown(gpadl_torndown);
|
||||
+
|
||||
/*
|
||||
* Find the open msg, copy the result and signal/unblock the wait event
|
||||
*/
|
||||
diff --git a/drivers/hv/hv_trace.h b/drivers/hv/hv_trace.h
|
||||
index 20734b7b341b..84c08cdf7235 100644
|
||||
--- a/drivers/hv/hv_trace.h
|
||||
+++ b/drivers/hv/hv_trace.h
|
||||
@@ -103,6 +103,14 @@ TRACE_EVENT(vmbus_ongpadl_created,
|
||||
)
|
||||
);
|
||||
|
||||
+TRACE_EVENT(vmbus_ongpadl_torndown,
|
||||
+ TP_PROTO(const struct vmbus_channel_gpadl_torndown *gpadltorndown),
|
||||
+ TP_ARGS(gpadltorndown),
|
||||
+ TP_STRUCT__entry(__field(u32, gpadl)),
|
||||
+ TP_fast_assign(__entry->gpadl = gpadltorndown->gpadl),
|
||||
+ TP_printk("gpadl 0x%x", __entry->gpadl)
|
||||
+ );
|
||||
+
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
#define TRACE_INCLUDE_PATH .
|
||||
#undef TRACE_INCLUDE_FILE
|
||||
--
|
||||
2.16.0
|
||||
|
@ -0,0 +1,55 @@
|
||||
From 21b6485093fe73933793d024f5fc07d17fb4f564 Mon Sep 17 00:00:00 2001
|
||||
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
Date: Sun, 29 Oct 2017 12:21:07 -0700
|
||||
Subject: [PATCH 09/18] hyper-v: trace vmbus_onversion_response()
|
||||
|
||||
Add tracepoint to CHANNELMSG_VERSION_RESPONSE handler.
|
||||
|
||||
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 c7924fb07a2646c9ff661efcad1167a1106d6019)
|
||||
---
|
||||
drivers/hv/channel_mgmt.c | 3 +++
|
||||
drivers/hv/hv_trace.h | 11 +++++++++++
|
||||
2 files changed, 14 insertions(+)
|
||||
|
||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
||||
index 1e8b0ebe1b9e..26d5452ee2be 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -1120,6 +1120,9 @@ static void vmbus_onversion_response(
|
||||
unsigned long flags;
|
||||
|
||||
version_response = (struct vmbus_channel_version_response *)hdr;
|
||||
+
|
||||
+ trace_vmbus_onversion_response(version_response);
|
||||
+
|
||||
spin_lock_irqsave(&vmbus_connection.channelmsg_lock, flags);
|
||||
|
||||
list_for_each_entry(msginfo, &vmbus_connection.chn_msg_list,
|
||||
diff --git a/drivers/hv/hv_trace.h b/drivers/hv/hv_trace.h
|
||||
index 84c08cdf7235..2a046547107f 100644
|
||||
--- a/drivers/hv/hv_trace.h
|
||||
+++ b/drivers/hv/hv_trace.h
|
||||
@@ -111,6 +111,17 @@ TRACE_EVENT(vmbus_ongpadl_torndown,
|
||||
TP_printk("gpadl 0x%x", __entry->gpadl)
|
||||
);
|
||||
|
||||
+TRACE_EVENT(vmbus_onversion_response,
|
||||
+ TP_PROTO(const struct vmbus_channel_version_response *response),
|
||||
+ TP_ARGS(response),
|
||||
+ TP_STRUCT__entry(
|
||||
+ __field(u8, ver)
|
||||
+ ),
|
||||
+ TP_fast_assign(__entry->ver = response->version_supported;
|
||||
+ ),
|
||||
+ TP_printk("version_supported %d", __entry->ver)
|
||||
+ );
|
||||
+
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
#define TRACE_INCLUDE_PATH .
|
||||
#undef TRACE_INCLUDE_FILE
|
||||
--
|
||||
2.16.0
|
||||
|
@ -0,0 +1,55 @@
|
||||
From e171d5a3845680154bdc51a663e419543e9eb823 Mon Sep 17 00:00:00 2001
|
||||
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
Date: Sun, 29 Oct 2017 12:21:08 -0700
|
||||
Subject: [PATCH 10/18] hyper-v: trace vmbus_request_offers()
|
||||
|
||||
Add tracepoint to CHANNELMSG_REQUESTOFFERS sender.
|
||||
|
||||
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 d6706e63367a9c783974db4b94cf8980d31c4cb2)
|
||||
---
|
||||
drivers/hv/channel_mgmt.c | 4 +++-
|
||||
drivers/hv/hv_trace.h | 8 ++++++++
|
||||
2 files changed, 11 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
||||
index 26d5452ee2be..51156ee83b93 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -1217,9 +1217,11 @@ int vmbus_request_offers(void)
|
||||
|
||||
msg->msgtype = CHANNELMSG_REQUESTOFFERS;
|
||||
|
||||
-
|
||||
ret = vmbus_post_msg(msg, sizeof(struct vmbus_channel_message_header),
|
||||
true);
|
||||
+
|
||||
+ trace_vmbus_request_offers(ret);
|
||||
+
|
||||
if (ret != 0) {
|
||||
pr_err("Unable to request offers - %d\n", ret);
|
||||
|
||||
diff --git a/drivers/hv/hv_trace.h b/drivers/hv/hv_trace.h
|
||||
index 2a046547107f..566ac0f2fe56 100644
|
||||
--- a/drivers/hv/hv_trace.h
|
||||
+++ b/drivers/hv/hv_trace.h
|
||||
@@ -122,6 +122,14 @@ TRACE_EVENT(vmbus_onversion_response,
|
||||
TP_printk("version_supported %d", __entry->ver)
|
||||
);
|
||||
|
||||
+TRACE_EVENT(vmbus_request_offers,
|
||||
+ TP_PROTO(int ret),
|
||||
+ TP_ARGS(ret),
|
||||
+ TP_STRUCT__entry(__field(int, ret)),
|
||||
+ TP_fast_assign(__entry->ret = ret),
|
||||
+ TP_printk("sending ret %d", __entry->ret)
|
||||
+ );
|
||||
+
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
#define TRACE_INCLUDE_PATH .
|
||||
#undef TRACE_INCLUDE_FILE
|
||||
--
|
||||
2.16.0
|
||||
|
70
kernel/patches-4.14.x/0011-hyper-v-trace-vmbus_open.patch
Normal file
70
kernel/patches-4.14.x/0011-hyper-v-trace-vmbus_open.patch
Normal file
@ -0,0 +1,70 @@
|
||||
From ab0cedcde1c60fee6ea7baac4f563ef314cb81a2 Mon Sep 17 00:00:00 2001
|
||||
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
Date: Sun, 29 Oct 2017 12:21:09 -0700
|
||||
Subject: [PATCH 11/18] hyper-v: trace vmbus_open()
|
||||
|
||||
Add tracepoint to CHANNELMSG_OPENCHANNEL sender.
|
||||
|
||||
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 9202d771ca37514bfbc2c3a8fdcb018f40a6bd8a)
|
||||
---
|
||||
drivers/hv/channel.c | 2 ++
|
||||
drivers/hv/hv_trace.h | 27 +++++++++++++++++++++++++++
|
||||
2 files changed, 29 insertions(+)
|
||||
|
||||
diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
|
||||
index 05964347008d..b562a7fb4c42 100644
|
||||
--- a/drivers/hv/channel.c
|
||||
+++ b/drivers/hv/channel.c
|
||||
@@ -185,6 +185,8 @@ int vmbus_open(struct vmbus_channel *newchannel, u32 send_ringbuffer_size,
|
||||
ret = vmbus_post_msg(open_msg,
|
||||
sizeof(struct vmbus_channel_open_channel), true);
|
||||
|
||||
+ trace_vmbus_open(open_msg, ret);
|
||||
+
|
||||
if (ret != 0) {
|
||||
err = ret;
|
||||
goto error_clean_msglist;
|
||||
diff --git a/drivers/hv/hv_trace.h b/drivers/hv/hv_trace.h
|
||||
index 566ac0f2fe56..38fedb803bd8 100644
|
||||
--- a/drivers/hv/hv_trace.h
|
||||
+++ b/drivers/hv/hv_trace.h
|
||||
@@ -130,6 +130,33 @@ TRACE_EVENT(vmbus_request_offers,
|
||||
TP_printk("sending ret %d", __entry->ret)
|
||||
);
|
||||
|
||||
+TRACE_EVENT(vmbus_open,
|
||||
+ TP_PROTO(const struct vmbus_channel_open_channel *msg, int ret),
|
||||
+ TP_ARGS(msg, ret),
|
||||
+ TP_STRUCT__entry(
|
||||
+ __field(u32, child_relid)
|
||||
+ __field(u32, openid)
|
||||
+ __field(u32, gpadlhandle)
|
||||
+ __field(u32, target_vp)
|
||||
+ __field(u32, offset)
|
||||
+ __field(int, ret)
|
||||
+ ),
|
||||
+ TP_fast_assign(
|
||||
+ __entry->child_relid = msg->child_relid;
|
||||
+ __entry->openid = msg->openid;
|
||||
+ __entry->gpadlhandle = msg->ringbuffer_gpadlhandle;
|
||||
+ __entry->target_vp = msg->target_vp;
|
||||
+ __entry->offset = msg->downstream_ringbuffer_pageoffset;
|
||||
+ __entry->ret = ret;
|
||||
+ ),
|
||||
+ TP_printk("sending child_relid 0x%x, openid %d, "
|
||||
+ "gpadlhandle 0x%x, target_vp 0x%x, offset 0x%x, ret %d",
|
||||
+ __entry->child_relid, __entry->openid,
|
||||
+ __entry->gpadlhandle, __entry->target_vp,
|
||||
+ __entry->offset, __entry->ret
|
||||
+ )
|
||||
+ );
|
||||
+
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
#define TRACE_INCLUDE_PATH .
|
||||
#undef TRACE_INCLUDE_FILE
|
||||
--
|
||||
2.16.0
|
||||
|
@ -0,0 +1,58 @@
|
||||
From 2398d2a0e00a57022e2b43bb248ad8262ba63649 Mon Sep 17 00:00:00 2001
|
||||
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
Date: Sun, 29 Oct 2017 12:21:10 -0700
|
||||
Subject: [PATCH 12/18] hyper-v: trace vmbus_close_internal()
|
||||
|
||||
Add tracepoint to CHANNELMSG_CLOSECHANNEL sender.
|
||||
|
||||
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 633b005df0dff555c0d4f22b5f1f8b04dba67ac5)
|
||||
---
|
||||
drivers/hv/channel.c | 2 ++
|
||||
drivers/hv/hv_trace.h | 15 +++++++++++++++
|
||||
2 files changed, 17 insertions(+)
|
||||
|
||||
diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
|
||||
index b562a7fb4c42..70babce00ddc 100644
|
||||
--- a/drivers/hv/channel.c
|
||||
+++ b/drivers/hv/channel.c
|
||||
@@ -591,6 +591,8 @@ static int vmbus_close_internal(struct vmbus_channel *channel)
|
||||
ret = vmbus_post_msg(msg, sizeof(struct vmbus_channel_close_channel),
|
||||
true);
|
||||
|
||||
+ trace_vmbus_close_internal(msg, ret);
|
||||
+
|
||||
if (ret) {
|
||||
pr_err("Close failed: close post msg return is %d\n", ret);
|
||||
/*
|
||||
diff --git a/drivers/hv/hv_trace.h b/drivers/hv/hv_trace.h
|
||||
index 38fedb803bd8..302bd4e964f0 100644
|
||||
--- a/drivers/hv/hv_trace.h
|
||||
+++ b/drivers/hv/hv_trace.h
|
||||
@@ -157,6 +157,21 @@ TRACE_EVENT(vmbus_open,
|
||||
)
|
||||
);
|
||||
|
||||
+TRACE_EVENT(vmbus_close_internal,
|
||||
+ TP_PROTO(const struct vmbus_channel_close_channel *msg, int ret),
|
||||
+ TP_ARGS(msg, ret),
|
||||
+ TP_STRUCT__entry(
|
||||
+ __field(u32, child_relid)
|
||||
+ __field(int, ret)
|
||||
+ ),
|
||||
+ TP_fast_assign(
|
||||
+ __entry->child_relid = msg->child_relid;
|
||||
+ __entry->ret = ret;
|
||||
+ ),
|
||||
+ TP_printk("sending child_relid 0x%x, ret %d", __entry->child_relid,
|
||||
+ __entry->ret)
|
||||
+ );
|
||||
+
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
#define TRACE_INCLUDE_PATH .
|
||||
#undef TRACE_INCLUDE_FILE
|
||||
--
|
||||
2.16.0
|
||||
|
@ -0,0 +1,96 @@
|
||||
From 02a9a8babb01ccd78337756138ced187ab13fa26 Mon Sep 17 00:00:00 2001
|
||||
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
Date: Sun, 29 Oct 2017 12:21:11 -0700
|
||||
Subject: [PATCH 13/18] hyper-v: trace vmbus_establish_gpadl()
|
||||
|
||||
Add tracepoint to CHANNELMSG_GPADL_HEADER/CHANNELMSG_GPADL_BODY sender.
|
||||
|
||||
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 69edbd5f4729a58e11437b2804103bf8ea52745c)
|
||||
---
|
||||
drivers/hv/channel.c | 6 ++++++
|
||||
drivers/hv/hv_trace.h | 42 ++++++++++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 48 insertions(+)
|
||||
|
||||
diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
|
||||
index 70babce00ddc..a7ac16c091a9 100644
|
||||
--- a/drivers/hv/channel.c
|
||||
+++ b/drivers/hv/channel.c
|
||||
@@ -435,6 +435,9 @@ int vmbus_establish_gpadl(struct vmbus_channel *channel, void *kbuffer,
|
||||
|
||||
ret = vmbus_post_msg(gpadlmsg, msginfo->msgsize -
|
||||
sizeof(*msginfo), true);
|
||||
+
|
||||
+ trace_vmbus_establish_gpadl_header(gpadlmsg, ret);
|
||||
+
|
||||
if (ret != 0)
|
||||
goto cleanup;
|
||||
|
||||
@@ -450,6 +453,9 @@ int vmbus_establish_gpadl(struct vmbus_channel *channel, void *kbuffer,
|
||||
ret = vmbus_post_msg(gpadl_body,
|
||||
submsginfo->msgsize - sizeof(*submsginfo),
|
||||
true);
|
||||
+
|
||||
+ trace_vmbus_establish_gpadl_body(gpadl_body, ret);
|
||||
+
|
||||
if (ret != 0)
|
||||
goto cleanup;
|
||||
|
||||
diff --git a/drivers/hv/hv_trace.h b/drivers/hv/hv_trace.h
|
||||
index 302bd4e964f0..978e70bdc7c5 100644
|
||||
--- a/drivers/hv/hv_trace.h
|
||||
+++ b/drivers/hv/hv_trace.h
|
||||
@@ -172,6 +172,48 @@ TRACE_EVENT(vmbus_close_internal,
|
||||
__entry->ret)
|
||||
);
|
||||
|
||||
+TRACE_EVENT(vmbus_establish_gpadl_header,
|
||||
+ TP_PROTO(const struct vmbus_channel_gpadl_header *msg, int ret),
|
||||
+ TP_ARGS(msg, ret),
|
||||
+ TP_STRUCT__entry(
|
||||
+ __field(u32, child_relid)
|
||||
+ __field(u32, gpadl)
|
||||
+ __field(u16, range_buflen)
|
||||
+ __field(u16, rangecount)
|
||||
+ __field(int, ret)
|
||||
+ ),
|
||||
+ TP_fast_assign(
|
||||
+ __entry->child_relid = msg->child_relid;
|
||||
+ __entry->gpadl = msg->gpadl;
|
||||
+ __entry->range_buflen = msg->range_buflen;
|
||||
+ __entry->rangecount = msg->rangecount;
|
||||
+ __entry->ret = ret;
|
||||
+ ),
|
||||
+ TP_printk("sending child_relid 0x%x, gpadl 0x%x, range_buflen %d "
|
||||
+ "rangecount %d, ret %d",
|
||||
+ __entry->child_relid, __entry->gpadl,
|
||||
+ __entry->range_buflen, __entry->rangecount, __entry->ret
|
||||
+ )
|
||||
+ );
|
||||
+
|
||||
+TRACE_EVENT(vmbus_establish_gpadl_body,
|
||||
+ TP_PROTO(const struct vmbus_channel_gpadl_body *msg, int ret),
|
||||
+ TP_ARGS(msg, ret),
|
||||
+ TP_STRUCT__entry(
|
||||
+ __field(u32, msgnumber)
|
||||
+ __field(u32, gpadl)
|
||||
+ __field(int, ret)
|
||||
+ ),
|
||||
+ TP_fast_assign(
|
||||
+ __entry->msgnumber = msg->msgnumber;
|
||||
+ __entry->gpadl = msg->gpadl;
|
||||
+ __entry->ret = ret;
|
||||
+ ),
|
||||
+ TP_printk("sending msgnumber %d, gpadl 0x%x, ret %d",
|
||||
+ __entry->msgnumber, __entry->gpadl, __entry->ret
|
||||
+ )
|
||||
+ );
|
||||
+
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
#define TRACE_INCLUDE_PATH .
|
||||
#undef TRACE_INCLUDE_FILE
|
||||
--
|
||||
2.16.0
|
||||
|
@ -0,0 +1,61 @@
|
||||
From ee9c6f7bcee6f9e224910b9d6e1416d14e8a2148 Mon Sep 17 00:00:00 2001
|
||||
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
Date: Sun, 29 Oct 2017 12:21:12 -0700
|
||||
Subject: [PATCH 14/18] hyper-v: trace vmbus_teardown_gpadl()
|
||||
|
||||
Add tracepoint to CHANNELMSG_GPADL_TEARDOWN sender.
|
||||
|
||||
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 09cdf8f87c15dbe9a3eeb6de04aaafd0cd922d6d)
|
||||
---
|
||||
drivers/hv/channel.c | 2 ++
|
||||
drivers/hv/hv_trace.h | 18 ++++++++++++++++++
|
||||
2 files changed, 20 insertions(+)
|
||||
|
||||
diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
|
||||
index a7ac16c091a9..ba4b4eceb563 100644
|
||||
--- a/drivers/hv/channel.c
|
||||
+++ b/drivers/hv/channel.c
|
||||
@@ -519,6 +519,8 @@ int vmbus_teardown_gpadl(struct vmbus_channel *channel, u32 gpadl_handle)
|
||||
ret = vmbus_post_msg(msg, sizeof(struct vmbus_channel_gpadl_teardown),
|
||||
true);
|
||||
|
||||
+ trace_vmbus_teardown_gpadl(msg, ret);
|
||||
+
|
||||
if (ret)
|
||||
goto post_msg_err;
|
||||
|
||||
diff --git a/drivers/hv/hv_trace.h b/drivers/hv/hv_trace.h
|
||||
index 978e70bdc7c5..cd33a52ef27f 100644
|
||||
--- a/drivers/hv/hv_trace.h
|
||||
+++ b/drivers/hv/hv_trace.h
|
||||
@@ -214,6 +214,24 @@ TRACE_EVENT(vmbus_establish_gpadl_body,
|
||||
)
|
||||
);
|
||||
|
||||
+TRACE_EVENT(vmbus_teardown_gpadl,
|
||||
+ TP_PROTO(const struct vmbus_channel_gpadl_teardown *msg, int ret),
|
||||
+ TP_ARGS(msg, ret),
|
||||
+ TP_STRUCT__entry(
|
||||
+ __field(u32, child_relid)
|
||||
+ __field(u32, gpadl)
|
||||
+ __field(int, ret)
|
||||
+ ),
|
||||
+ TP_fast_assign(
|
||||
+ __entry->child_relid = msg->child_relid;
|
||||
+ __entry->gpadl = msg->gpadl;
|
||||
+ __entry->ret = ret;
|
||||
+ ),
|
||||
+ TP_printk("sending child_relid 0x%x, gpadl 0x%x, ret %d",
|
||||
+ __entry->child_relid, __entry->gpadl, __entry->ret
|
||||
+ )
|
||||
+ );
|
||||
+
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
#define TRACE_INCLUDE_PATH .
|
||||
#undef TRACE_INCLUDE_FILE
|
||||
--
|
||||
2.16.0
|
||||
|
@ -0,0 +1,70 @@
|
||||
From d25867a69fbb2602c717d54485afd16f526ff1aa Mon Sep 17 00:00:00 2001
|
||||
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
Date: Sun, 29 Oct 2017 12:21:13 -0700
|
||||
Subject: [PATCH 15/18] hyper-v: trace vmbus_negotiate_version()
|
||||
|
||||
Add tracepoint to CHANNELMSG_INITIATE_CONTACT sender.
|
||||
|
||||
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 034ebf552e0a3403eeb7e7f8a3a502fc0c70a24c)
|
||||
---
|
||||
drivers/hv/connection.c | 3 +++
|
||||
drivers/hv/hv_trace.h | 26 ++++++++++++++++++++++++++
|
||||
2 files changed, 29 insertions(+)
|
||||
|
||||
diff --git a/drivers/hv/connection.c b/drivers/hv/connection.c
|
||||
index f41901f80b64..5e36f86d0b0c 100644
|
||||
--- a/drivers/hv/connection.c
|
||||
+++ b/drivers/hv/connection.c
|
||||
@@ -117,6 +117,9 @@ static int vmbus_negotiate_version(struct vmbus_channel_msginfo *msginfo,
|
||||
ret = vmbus_post_msg(msg,
|
||||
sizeof(struct vmbus_channel_initiate_contact),
|
||||
true);
|
||||
+
|
||||
+ trace_vmbus_negotiate_version(msg, ret);
|
||||
+
|
||||
if (ret != 0) {
|
||||
spin_lock_irqsave(&vmbus_connection.channelmsg_lock, flags);
|
||||
list_del(&msginfo->msglistentry);
|
||||
diff --git a/drivers/hv/hv_trace.h b/drivers/hv/hv_trace.h
|
||||
index cd33a52ef27f..f06284d64a8c 100644
|
||||
--- a/drivers/hv/hv_trace.h
|
||||
+++ b/drivers/hv/hv_trace.h
|
||||
@@ -232,6 +232,32 @@ TRACE_EVENT(vmbus_teardown_gpadl,
|
||||
)
|
||||
);
|
||||
|
||||
+TRACE_EVENT(vmbus_negotiate_version,
|
||||
+ TP_PROTO(const struct vmbus_channel_initiate_contact *msg, int ret),
|
||||
+ TP_ARGS(msg, ret),
|
||||
+ TP_STRUCT__entry(
|
||||
+ __field(u32, ver)
|
||||
+ __field(u32, target_vcpu)
|
||||
+ __field(int, ret)
|
||||
+ __field(u64, int_page)
|
||||
+ __field(u64, mon_page1)
|
||||
+ __field(u64, mon_page2)
|
||||
+ ),
|
||||
+ TP_fast_assign(
|
||||
+ __entry->ver = msg->vmbus_version_requested;
|
||||
+ __entry->target_vcpu = msg->target_vcpu;
|
||||
+ __entry->int_page = msg->interrupt_page;
|
||||
+ __entry->mon_page1 = msg->monitor_page1;
|
||||
+ __entry->mon_page2 = msg->monitor_page2;
|
||||
+ __entry->ret = ret;
|
||||
+ ),
|
||||
+ TP_printk("sending vmbus_version_requested %d, target_vcpu 0x%x, "
|
||||
+ "pages %llx:%llx:%llx, ret %d",
|
||||
+ __entry->ver, __entry->target_vcpu, __entry->int_page,
|
||||
+ __entry->mon_page1, __entry->mon_page2, __entry->ret
|
||||
+ )
|
||||
+ );
|
||||
+
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
#define TRACE_INCLUDE_PATH .
|
||||
#undef TRACE_INCLUDE_FILE
|
||||
--
|
||||
2.16.0
|
||||
|
@ -0,0 +1,68 @@
|
||||
From c04ba9625defb6a199e554b6a5fc73fcb3ddf557 Mon Sep 17 00:00:00 2001
|
||||
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
Date: Sun, 29 Oct 2017 12:21:14 -0700
|
||||
Subject: [PATCH 16/18] hyper-v: trace vmbus_release_relid()
|
||||
|
||||
Add tracepoint to CHANNELMSG_RELID_RELEASED sender.
|
||||
|
||||
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 259cc665e9c08d054549a877c1b53b793de15753)
|
||||
---
|
||||
drivers/hv/channel_mgmt.c | 7 +++++--
|
||||
drivers/hv/hv_trace.h | 16 ++++++++++++++++
|
||||
2 files changed, 21 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/hv/channel_mgmt.c b/drivers/hv/channel_mgmt.c
|
||||
index 51156ee83b93..9263e3c86476 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -374,12 +374,15 @@ static void percpu_channel_deq(void *arg)
|
||||
static void vmbus_release_relid(u32 relid)
|
||||
{
|
||||
struct vmbus_channel_relid_released msg;
|
||||
+ int ret;
|
||||
|
||||
memset(&msg, 0, sizeof(struct vmbus_channel_relid_released));
|
||||
msg.child_relid = relid;
|
||||
msg.header.msgtype = CHANNELMSG_RELID_RELEASED;
|
||||
- vmbus_post_msg(&msg, sizeof(struct vmbus_channel_relid_released),
|
||||
- true);
|
||||
+ ret = vmbus_post_msg(&msg, sizeof(struct vmbus_channel_relid_released),
|
||||
+ true);
|
||||
+
|
||||
+ trace_vmbus_release_relid(&msg, ret);
|
||||
}
|
||||
|
||||
void hv_process_channel_removal(u32 relid)
|
||||
diff --git a/drivers/hv/hv_trace.h b/drivers/hv/hv_trace.h
|
||||
index f06284d64a8c..f0e437c3522f 100644
|
||||
--- a/drivers/hv/hv_trace.h
|
||||
+++ b/drivers/hv/hv_trace.h
|
||||
@@ -258,6 +258,22 @@ TRACE_EVENT(vmbus_negotiate_version,
|
||||
)
|
||||
);
|
||||
|
||||
+TRACE_EVENT(vmbus_release_relid,
|
||||
+ TP_PROTO(const struct vmbus_channel_relid_released *msg, int ret),
|
||||
+ TP_ARGS(msg, ret),
|
||||
+ TP_STRUCT__entry(
|
||||
+ __field(u32, child_relid)
|
||||
+ __field(int, ret)
|
||||
+ ),
|
||||
+ TP_fast_assign(
|
||||
+ __entry->child_relid = msg->child_relid;
|
||||
+ __entry->ret = ret;
|
||||
+ ),
|
||||
+ TP_printk("sending child_relid 0x%x, ret %d",
|
||||
+ __entry->child_relid, __entry->ret
|
||||
+ )
|
||||
+ );
|
||||
+
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
#define TRACE_INCLUDE_PATH .
|
||||
#undef TRACE_INCLUDE_FILE
|
||||
--
|
||||
2.16.0
|
||||
|
@ -0,0 +1,74 @@
|
||||
From a19d56b5c3f5bb6fc2eae083b53191f9235c7899 Mon Sep 17 00:00:00 2001
|
||||
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
Date: Sun, 29 Oct 2017 12:21:15 -0700
|
||||
Subject: [PATCH 17/18] hyper-v: trace vmbus_send_tl_connect_request()
|
||||
|
||||
Add tracepoint to CHANNELMSG_TL_CONNECT_REQUEST sender.
|
||||
|
||||
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 98f31a0050ca8ba47b57c6d67599013cdbdd2122)
|
||||
---
|
||||
drivers/hv/channel.c | 7 ++++++-
|
||||
drivers/hv/hv_trace.h | 20 ++++++++++++++++++++
|
||||
2 files changed, 26 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
|
||||
index ba4b4eceb563..218d16c7fbae 100644
|
||||
--- a/drivers/hv/channel.c
|
||||
+++ b/drivers/hv/channel.c
|
||||
@@ -236,13 +236,18 @@ int vmbus_send_tl_connect_request(const uuid_le *shv_guest_servie_id,
|
||||
const uuid_le *shv_host_servie_id)
|
||||
{
|
||||
struct vmbus_channel_tl_connect_request conn_msg;
|
||||
+ int ret;
|
||||
|
||||
memset(&conn_msg, 0, sizeof(conn_msg));
|
||||
conn_msg.header.msgtype = CHANNELMSG_TL_CONNECT_REQUEST;
|
||||
conn_msg.guest_endpoint_id = *shv_guest_servie_id;
|
||||
conn_msg.host_service_id = *shv_host_servie_id;
|
||||
|
||||
- return vmbus_post_msg(&conn_msg, sizeof(conn_msg), true);
|
||||
+ ret = vmbus_post_msg(&conn_msg, sizeof(conn_msg), true);
|
||||
+
|
||||
+ trace_vmbus_send_tl_connect_request(&conn_msg, ret);
|
||||
+
|
||||
+ return ret;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(vmbus_send_tl_connect_request);
|
||||
|
||||
diff --git a/drivers/hv/hv_trace.h b/drivers/hv/hv_trace.h
|
||||
index f0e437c3522f..5382d9630306 100644
|
||||
--- a/drivers/hv/hv_trace.h
|
||||
+++ b/drivers/hv/hv_trace.h
|
||||
@@ -274,6 +274,26 @@ TRACE_EVENT(vmbus_release_relid,
|
||||
)
|
||||
);
|
||||
|
||||
+TRACE_EVENT(vmbus_send_tl_connect_request,
|
||||
+ TP_PROTO(const struct vmbus_channel_tl_connect_request *msg,
|
||||
+ int ret),
|
||||
+ TP_ARGS(msg, ret),
|
||||
+ TP_STRUCT__entry(
|
||||
+ __array(char, guest_id, 16)
|
||||
+ __array(char, host_id, 16)
|
||||
+ __field(int, ret)
|
||||
+ ),
|
||||
+ TP_fast_assign(
|
||||
+ memcpy(__entry->guest_id, &msg->guest_endpoint_id.b, 16);
|
||||
+ memcpy(__entry->host_id, &msg->host_service_id.b, 16);
|
||||
+ __entry->ret = ret;
|
||||
+ ),
|
||||
+ TP_printk("sending guest_endpoint_id %pUl, host_service_id %pUl, "
|
||||
+ "ret %d",
|
||||
+ __entry->guest_id, __entry->host_id, __entry->ret
|
||||
+ )
|
||||
+ );
|
||||
+
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
#define TRACE_INCLUDE_PATH .
|
||||
#undef TRACE_INCLUDE_FILE
|
||||
--
|
||||
2.16.0
|
||||
|
101
kernel/patches-4.14.x/0018-hyper-v-trace-channel-events.patch
Normal file
101
kernel/patches-4.14.x/0018-hyper-v-trace-channel-events.patch
Normal file
@ -0,0 +1,101 @@
|
||||
From 6581af57280de139734ea6ddda9448a74899eaf7 Mon Sep 17 00:00:00 2001
|
||||
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||
Date: Sun, 29 Oct 2017 12:21:16 -0700
|
||||
Subject: [PATCH 18/18] hyper-v: trace channel events
|
||||
|
||||
Added an additional set of trace points for when channel gets notified
|
||||
or signals host.
|
||||
|
||||
Slightly modified as 6981fbf37803("Drivers: hv: vmbus: Expose per-channel
|
||||
interrupts and events counters") is not fully applied and caused a
|
||||
cherry-pick conflict.
|
||||
|
||||
Suggested-by: Stephen Hemminger <sthemmin@microsoft.com>
|
||||
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>
|
||||
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
|
||||
(cherry picked from commit 991f8f1c6eb634688952fa6a03cc0ce949b6e363)
|
||||
---
|
||||
drivers/hv/channel.c | 2 ++
|
||||
drivers/hv/connection.c | 2 ++
|
||||
drivers/hv/hv_trace.h | 23 +++++++++++++++++++++++
|
||||
drivers/hv/vmbus_drv.c | 2 ++
|
||||
4 files changed, 29 insertions(+)
|
||||
|
||||
diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
|
||||
index 218d16c7fbae..262ffbafeb52 100644
|
||||
--- a/drivers/hv/channel.c
|
||||
+++ b/drivers/hv/channel.c
|
||||
@@ -43,6 +43,8 @@ void vmbus_setevent(struct vmbus_channel *channel)
|
||||
{
|
||||
struct hv_monitor_page *monitorpage;
|
||||
|
||||
+ trace_vmbus_setevent(channel);
|
||||
+
|
||||
/*
|
||||
* For channels marked as in "low latency" mode
|
||||
* bypass the monitor page mechanism.
|
||||
diff --git a/drivers/hv/connection.c b/drivers/hv/connection.c
|
||||
index 5e36f86d0b0c..8acd2e0e7c8e 100644
|
||||
--- a/drivers/hv/connection.c
|
||||
+++ b/drivers/hv/connection.c
|
||||
@@ -322,6 +322,8 @@ void vmbus_on_event(unsigned long data)
|
||||
struct vmbus_channel *channel = (void *) data;
|
||||
unsigned long time_limit = jiffies + 2;
|
||||
|
||||
+ trace_vmbus_on_event(channel);
|
||||
+
|
||||
do {
|
||||
void (*callback_fn)(void *);
|
||||
|
||||
diff --git a/drivers/hv/hv_trace.h b/drivers/hv/hv_trace.h
|
||||
index 5382d9630306..d635ee95b20d 100644
|
||||
--- a/drivers/hv/hv_trace.h
|
||||
+++ b/drivers/hv/hv_trace.h
|
||||
@@ -294,6 +294,29 @@ TRACE_EVENT(vmbus_send_tl_connect_request,
|
||||
)
|
||||
);
|
||||
|
||||
+DECLARE_EVENT_CLASS(vmbus_channel,
|
||||
+ TP_PROTO(const struct vmbus_channel *channel),
|
||||
+ TP_ARGS(channel),
|
||||
+ TP_STRUCT__entry(__field(u32, relid)),
|
||||
+ TP_fast_assign(__entry->relid = channel->offermsg.child_relid),
|
||||
+ TP_printk("relid 0x%x", __entry->relid)
|
||||
+);
|
||||
+
|
||||
+DEFINE_EVENT(vmbus_channel, vmbus_chan_sched,
|
||||
+ TP_PROTO(const struct vmbus_channel *channel),
|
||||
+ TP_ARGS(channel)
|
||||
+);
|
||||
+
|
||||
+DEFINE_EVENT(vmbus_channel, vmbus_setevent,
|
||||
+ TP_PROTO(const struct vmbus_channel *channel),
|
||||
+ TP_ARGS(channel)
|
||||
+);
|
||||
+
|
||||
+DEFINE_EVENT(vmbus_channel, vmbus_on_event,
|
||||
+ TP_PROTO(const struct vmbus_channel *channel),
|
||||
+ TP_ARGS(channel)
|
||||
+);
|
||||
+
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
#define TRACE_INCLUDE_PATH .
|
||||
#undef TRACE_INCLUDE_FILE
|
||||
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
|
||||
index 9687e462fd43..27d5efd696ad 100644
|
||||
--- a/drivers/hv/vmbus_drv.c
|
||||
+++ b/drivers/hv/vmbus_drv.c
|
||||
@@ -944,6 +944,8 @@ static void vmbus_chan_sched(struct hv_per_cpu_context *hv_cpu)
|
||||
if (channel->rescind)
|
||||
continue;
|
||||
|
||||
+ trace_vmbus_chan_sched(channel);
|
||||
+
|
||||
switch (channel->callback_mode) {
|
||||
case HV_CALL_ISR:
|
||||
vmbus_channel_isr(channel);
|
||||
--
|
||||
2.16.0
|
||||
|
Loading…
Reference in New Issue
Block a user