mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-07-23 11:00:25 +00:00
kernel: Remove support for 4.14.x kernels
With 4.19.x and 5.4.x we already carry several LTS kernels. Signed-off-by: Rolf Neugebauer <rn@rneugeba.io>
This commit is contained in:
parent
60919fee96
commit
7b012919b3
@ -253,7 +253,6 @@ $(eval $(call kernel,5.4.39,5.4.x,$(EXTRA),$(DEBUG)))
|
||||
$(eval $(call kernel,5.4.39,5.4.x,,-dbg))
|
||||
#$(eval $(call kernel,5.4.28,5.4.x,-rt,))
|
||||
$(eval $(call kernel,4.19.121,4.19.x,$(EXTRA),$(DEBUG)))
|
||||
$(eval $(call kernel,4.14.179,4.14.x,$(EXTRA),$(DEBUG)))
|
||||
|
||||
else ifeq ($(ARCH),aarch64)
|
||||
$(eval $(call kernel,5.6.11,5.6.x,$(EXTRA),$(DEBUG)))
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,28 +0,0 @@
|
||||
From 333f5bbf9097beda89c22a4d55aadba6cd1cf14e 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 01/21] 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
|
||||
---
|
||||
include/uapi/linux/ndctl.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/include/uapi/linux/ndctl.h b/include/uapi/linux/ndctl.h
|
||||
index 145f242c7c90..e360610911f3 100644
|
||||
--- a/include/uapi/linux/ndctl.h
|
||||
+++ b/include/uapi/linux/ndctl.h
|
||||
@@ -257,7 +257,7 @@ enum nd_driver_flags {
|
||||
};
|
||||
|
||||
enum {
|
||||
- ND_MIN_NAMESPACE_SIZE = 0x00400000,
|
||||
+ ND_MIN_NAMESPACE_SIZE = 0x00001000,
|
||||
};
|
||||
|
||||
enum ars_masks {
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,111 +0,0 @@
|
||||
From c4d562dd53c8f0b202f04364f2586f5017d40fb1 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 a166de6efd99..02f13e803a8b 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 1fd812ed679b..70f857441399 100644
|
||||
--- a/drivers/hv/vmbus_drv.c
|
||||
+++ b/drivers/hv/vmbus_drv.c
|
||||
@@ -884,6 +884,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.26.2
|
||||
|
@ -1,49 +0,0 @@
|
||||
From b61d2eff742b292fecfb942f89c4e1aeb029e7b0 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/21] 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 43eaf54736f4..2087402b8d01 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -1244,6 +1244,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.26.2
|
||||
|
@ -1,80 +0,0 @@
|
||||
From 0a30366ac57372d2011aa6767f08ef731a1a9168 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/21] 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 2087402b8d01..28dae42c2b55 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -875,6 +875,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.26.2
|
||||
|
@ -1,51 +0,0 @@
|
||||
From 8e09b1485b89f84edeb6fc8955ce4c83d7a910e7 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/21] 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 28dae42c2b55..3f4ebd86cff2 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -918,6 +918,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.26.2
|
||||
|
@ -1,60 +0,0 @@
|
||||
From c0d6624139c592afd2f59bd89205367a17ac92f2 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/21] 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 3f4ebd86cff2..258c871621d1 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -1054,6 +1054,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.26.2
|
||||
|
@ -1,60 +0,0 @@
|
||||
From d2b780d10394f57e587c4d651c9654cbffa8c7d3 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/21] 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 258c871621d1..ba83cd1be409 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -1100,6 +1100,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.26.2
|
||||
|
@ -1,51 +0,0 @@
|
||||
From 962937432231380e0a30e8d5f031c76adb90cb70 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/21] 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 ba83cd1be409..d73d2677d16d 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -1150,6 +1150,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.26.2
|
||||
|
@ -1,55 +0,0 @@
|
||||
From f756c507992e113fa0ea1a9471d22c523677e160 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/21] 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 d73d2677d16d..66eddd6feb3c 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -1195,6 +1195,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.26.2
|
||||
|
@ -1,55 +0,0 @@
|
||||
From aecd20aa882d80ddd3e0b74ebdffd12359d9ec72 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/21] 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 66eddd6feb3c..610561f52fd5 100644
|
||||
--- a/drivers/hv/channel_mgmt.c
|
||||
+++ b/drivers/hv/channel_mgmt.c
|
||||
@@ -1292,9 +1292,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.26.2
|
||||
|
@ -1,70 +0,0 @@
|
||||
From 75faa50818868fa4c55b0f0c27e5fb409264026f 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/21] 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 e05de5032f0c..d0c115fa0b4c 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.26.2
|
||||
|
@ -1,58 +0,0 @@
|
||||
From decec8b295fd5149da9b3d2cd448f1259048d325 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/21] 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 d0c115fa0b4c..79b6c2a5a2d9 100644
|
||||
--- a/drivers/hv/channel.c
|
||||
+++ b/drivers/hv/channel.c
|
||||
@@ -609,6 +609,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.26.2
|
||||
|
@ -1,96 +0,0 @@
|
||||
From f070979217fbb19c35319c6867fa8c2ae28cad00 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/21] 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 79b6c2a5a2d9..bf2739dc9244 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.26.2
|
||||
|
@ -1,61 +0,0 @@
|
||||
From a82075db6979247b0a7e999e5a88936b518a93f0 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/21] 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 bf2739dc9244..f503bd3e60b3 100644
|
||||
--- a/drivers/hv/channel.c
|
||||
+++ b/drivers/hv/channel.c
|
||||
@@ -527,6 +527,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.26.2
|
||||
|
@ -1,70 +0,0 @@
|
||||
From 447c8b1e0ab65c15ca6551018c5950012a11877d 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/21] 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 4b1b70751be3..78214aaf7a87 100644
|
||||
--- a/drivers/hv/connection.c
|
||||
+++ b/drivers/hv/connection.c
|
||||
@@ -119,6 +119,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.26.2
|
||||
|
@ -1,68 +0,0 @@
|
||||
From 9e242661dd727b82f49740eaa8a8cdd1ee644d7a 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/21] 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 610561f52fd5..d31f504cdf55 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.26.2
|
||||
|
@ -1,74 +0,0 @@
|
||||
From bc7760edd08f073b7a83ce5abdf17b6d1cd4b2e6 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/21] 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 f503bd3e60b3..d2730378c0dc 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.26.2
|
||||
|
@ -1,101 +0,0 @@
|
||||
From 4b4897b070cab0d37051afa01b6044e19b207a1d 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/21] 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 d2730378c0dc..be05f7dde062 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 78214aaf7a87..bd6416768fc2 100644
|
||||
--- a/drivers/hv/connection.c
|
||||
+++ b/drivers/hv/connection.c
|
||||
@@ -342,6 +342,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 70f857441399..14288a2958d0 100644
|
||||
--- a/drivers/hv/vmbus_drv.c
|
||||
+++ b/drivers/hv/vmbus_drv.c
|
||||
@@ -995,6 +995,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.26.2
|
||||
|
@ -1,35 +0,0 @@
|
||||
From 287ff0902ddd374515a8a57119c786ece09840b2 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Borntraeger <borntraeger@de.ibm.com>
|
||||
Date: Tue, 12 Dec 2017 09:08:35 +0100
|
||||
Subject: [PATCH 19/21] serial: forbid 8250 on s390
|
||||
|
||||
Using "make kvmconfig" results in a potentially unusable linux image
|
||||
on s390. The reason is that both the (default on s390) sclp consoles
|
||||
as well as the 8250 console register a ttyS<x> as console. Since there
|
||||
will be no 8250 on s390 let's fence 8250. This will ensure that there
|
||||
is always a working sclp console.
|
||||
|
||||
Reported-by: Alice Frosi <alice@linux.vnet.ibm.com>
|
||||
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
|
||||
Reviewed-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
(cherry picked from commit 1598e38c0770b08c4d6371b670f9ee61a42ec68b)
|
||||
---
|
||||
drivers/tty/serial/8250/Kconfig | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/drivers/tty/serial/8250/Kconfig b/drivers/tty/serial/8250/Kconfig
|
||||
index a5c0ef1e7695..16b1496e6105 100644
|
||||
--- a/drivers/tty/serial/8250/Kconfig
|
||||
+++ b/drivers/tty/serial/8250/Kconfig
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
config SERIAL_8250
|
||||
tristate "8250/16550 and compatible serial support"
|
||||
+ depends on !S390
|
||||
select SERIAL_CORE
|
||||
---help---
|
||||
This selects whether you want to include the driver for the standard
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,132 +0,0 @@
|
||||
From a8536b61d61bbc7c7b08e02127b289878a324a89 Mon Sep 17 00:00:00 2001
|
||||
From: Cathy Avery <cavery@redhat.com>
|
||||
Date: Tue, 31 Oct 2017 08:52:06 -0400
|
||||
Subject: [PATCH 20/21] scsi: storvsc: Allow only one remove lun work item to
|
||||
be issued per lun
|
||||
|
||||
When running multipath on a VM if all available paths go down the driver
|
||||
can schedule large amounts of storvsc_remove_lun work items to the same
|
||||
lun. In response to the failing paths typically storvsc responds by
|
||||
taking host->scan_mutex and issuing a TUR per lun. If there has been
|
||||
heavy IO to the failed device all the failed IOs are returned from the
|
||||
host. A remove lun work item is issued per failed IO. If the outstanding
|
||||
TURs have not been completed in a timely manner the scan_mutex is never
|
||||
released or released too late. Consequently the many remove lun work
|
||||
items are not completed as scsi_remove_device also tries to take
|
||||
host->scan_mutex. This results in dragging the VM down and sometimes
|
||||
completely.
|
||||
|
||||
This patch only allows one remove lun to be issued to a particular lun
|
||||
while it is an instantiated member of the scsi stack.
|
||||
|
||||
Signed-off-by: Cathy Avery <cavery@redhat.com>
|
||||
Reviewed-by: Christoph Hellwig <hch@lst.de>
|
||||
Reviewed-by: Long Li <longli@microsoft.com>
|
||||
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
|
||||
(cherry picked from commit 436ad941335386c5fc7faa915a8fbdfe8c908084)
|
||||
---
|
||||
drivers/scsi/storvsc_drv.c | 27 ++++++++++++++++++++++-----
|
||||
1 file changed, 22 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c
|
||||
index 5adeb1e4b186..405b5da45fa1 100644
|
||||
--- a/drivers/scsi/storvsc_drv.c
|
||||
+++ b/drivers/scsi/storvsc_drv.c
|
||||
@@ -486,6 +486,7 @@ struct hv_host_device {
|
||||
unsigned int port;
|
||||
unsigned char path;
|
||||
unsigned char target;
|
||||
+ struct workqueue_struct *handle_error_wq;
|
||||
};
|
||||
|
||||
struct storvsc_scan_work {
|
||||
@@ -931,6 +932,7 @@ static void storvsc_handle_error(struct vmscsi_request *vm_srb,
|
||||
{
|
||||
struct storvsc_scan_work *wrk;
|
||||
void (*process_err_fn)(struct work_struct *work);
|
||||
+ struct hv_host_device *host_dev = shost_priv(host);
|
||||
bool do_work = false;
|
||||
|
||||
switch (SRB_STATUS(vm_srb->srb_status)) {
|
||||
@@ -998,7 +1000,7 @@ static void storvsc_handle_error(struct vmscsi_request *vm_srb,
|
||||
wrk->lun = vm_srb->lun;
|
||||
wrk->tgt_id = vm_srb->target_id;
|
||||
INIT_WORK(&wrk->work, process_err_fn);
|
||||
- schedule_work(&wrk->work);
|
||||
+ queue_work(host_dev->handle_error_wq, &wrk->work);
|
||||
}
|
||||
|
||||
|
||||
@@ -1816,10 +1818,19 @@ static int storvsc_probe(struct hv_device *device,
|
||||
if (stor_device->num_sc != 0)
|
||||
host->nr_hw_queues = stor_device->num_sc + 1;
|
||||
|
||||
+ /*
|
||||
+ * Set the error handler work queue.
|
||||
+ */
|
||||
+ host_dev->handle_error_wq =
|
||||
+ alloc_ordered_workqueue("storvsc_error_wq_%d",
|
||||
+ WQ_MEM_RECLAIM,
|
||||
+ host->host_no);
|
||||
+ if (!host_dev->handle_error_wq)
|
||||
+ goto err_out2;
|
||||
/* Register the HBA and start the scsi bus scan */
|
||||
ret = scsi_add_host(host, &device->device);
|
||||
if (ret != 0)
|
||||
- goto err_out2;
|
||||
+ goto err_out3;
|
||||
|
||||
if (!dev_is_ide) {
|
||||
scsi_scan_host(host);
|
||||
@@ -1828,7 +1839,7 @@ static int storvsc_probe(struct hv_device *device,
|
||||
device->dev_instance.b[4]);
|
||||
ret = scsi_add_device(host, 0, target, 0);
|
||||
if (ret)
|
||||
- goto err_out3;
|
||||
+ goto err_out4;
|
||||
}
|
||||
#if IS_ENABLED(CONFIG_SCSI_FC_ATTRS)
|
||||
if (host->transportt == fc_transport_template) {
|
||||
@@ -1839,17 +1850,21 @@ static int storvsc_probe(struct hv_device *device,
|
||||
fc_host_node_name(host) = stor_device->node_name;
|
||||
fc_host_port_name(host) = stor_device->port_name;
|
||||
stor_device->rport = fc_remote_port_add(host, 0, &ids);
|
||||
+
|
||||
if (!stor_device->rport) {
|
||||
ret = -ENOMEM;
|
||||
- goto err_out3;
|
||||
+ goto err_out4;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
return 0;
|
||||
|
||||
-err_out3:
|
||||
+err_out4:
|
||||
scsi_remove_host(host);
|
||||
|
||||
+err_out3:
|
||||
+ destroy_workqueue(host_dev->handle_error_wq);
|
||||
+
|
||||
err_out2:
|
||||
/*
|
||||
* Once we have connected with the host, we would need to
|
||||
@@ -1873,6 +1888,7 @@ static int storvsc_remove(struct hv_device *dev)
|
||||
{
|
||||
struct storvsc_device *stor_device = hv_get_drvdata(dev);
|
||||
struct Scsi_Host *host = stor_device->host;
|
||||
+ struct hv_host_device *host_dev = shost_priv(host);
|
||||
|
||||
#if IS_ENABLED(CONFIG_SCSI_FC_ATTRS)
|
||||
if (host->transportt == fc_transport_template) {
|
||||
@@ -1880,6 +1896,7 @@ static int storvsc_remove(struct hv_device *dev)
|
||||
fc_remove_host(host);
|
||||
}
|
||||
#endif
|
||||
+ destroy_workqueue(host_dev->handle_error_wq);
|
||||
scsi_remove_host(host);
|
||||
storvsc_dev_remove(dev);
|
||||
scsi_host_put(host);
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,110 +0,0 @@
|
||||
From 3e8f53a68377bfcbc335226b251e9939b46d388f Mon Sep 17 00:00:00 2001
|
||||
From: Long Li <longli@microsoft.com>
|
||||
Date: Tue, 31 Oct 2017 14:58:08 -0700
|
||||
Subject: [PATCH 21/21] scsi: storvsc: Avoid excessive host scan on controller
|
||||
change
|
||||
|
||||
When there are multiple disks attached to the same SCSI controller, the
|
||||
host may send several VSTOR_OPERATION_REMOVE_DEVICE or
|
||||
VSTOR_OPERATION_ENUMERATE_BUS messages in a row, to indicate there is a
|
||||
change on the SCSI controller. In response, storvsc rescans the SCSI
|
||||
host.
|
||||
|
||||
There is no need to do multiple scans on the same host. Fix the code to
|
||||
do only one scan.
|
||||
|
||||
[mkp: applied by hand]
|
||||
|
||||
Signed-off-by: Long Li <longli@microsoft.com>
|
||||
Tested-by: Cathy Avery <cavery@redhat.com>
|
||||
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
|
||||
(cherry picked from commit c58cc70fde299866bc261296166d26a87b4fa7ef)
|
||||
---
|
||||
drivers/scsi/storvsc_drv.c | 26 +++++++++++---------------
|
||||
1 file changed, 11 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c
|
||||
index 405b5da45fa1..7b9173eebdd7 100644
|
||||
--- a/drivers/scsi/storvsc_drv.c
|
||||
+++ b/drivers/scsi/storvsc_drv.c
|
||||
@@ -487,6 +487,8 @@ struct hv_host_device {
|
||||
unsigned char path;
|
||||
unsigned char target;
|
||||
struct workqueue_struct *handle_error_wq;
|
||||
+ struct work_struct host_scan_work;
|
||||
+ struct Scsi_Host *host;
|
||||
};
|
||||
|
||||
struct storvsc_scan_work {
|
||||
@@ -515,13 +517,12 @@ static void storvsc_device_scan(struct work_struct *work)
|
||||
|
||||
static void storvsc_host_scan(struct work_struct *work)
|
||||
{
|
||||
- struct storvsc_scan_work *wrk;
|
||||
struct Scsi_Host *host;
|
||||
struct scsi_device *sdev;
|
||||
+ struct hv_host_device *host_device =
|
||||
+ container_of(work, struct hv_host_device, host_scan_work);
|
||||
|
||||
- wrk = container_of(work, struct storvsc_scan_work, work);
|
||||
- host = wrk->host;
|
||||
-
|
||||
+ host = host_device->host;
|
||||
/*
|
||||
* Before scanning the host, first check to see if any of the
|
||||
* currrently known devices have been hot removed. We issue a
|
||||
@@ -541,8 +542,6 @@ static void storvsc_host_scan(struct work_struct *work)
|
||||
* Now scan the host to discover LUNs that may have been added.
|
||||
*/
|
||||
scsi_scan_host(host);
|
||||
-
|
||||
- kfree(wrk);
|
||||
}
|
||||
|
||||
static void storvsc_remove_lun(struct work_struct *work)
|
||||
@@ -1128,8 +1127,7 @@ static void storvsc_on_receive(struct storvsc_device *stor_device,
|
||||
struct vstor_packet *vstor_packet,
|
||||
struct storvsc_cmd_request *request)
|
||||
{
|
||||
- struct storvsc_scan_work *work;
|
||||
-
|
||||
+ struct hv_host_device *host_dev;
|
||||
switch (vstor_packet->operation) {
|
||||
case VSTOR_OPERATION_COMPLETE_IO:
|
||||
storvsc_on_io_completion(stor_device, vstor_packet, request);
|
||||
@@ -1137,13 +1135,9 @@ static void storvsc_on_receive(struct storvsc_device *stor_device,
|
||||
|
||||
case VSTOR_OPERATION_REMOVE_DEVICE:
|
||||
case VSTOR_OPERATION_ENUMERATE_BUS:
|
||||
- work = kmalloc(sizeof(struct storvsc_scan_work), GFP_ATOMIC);
|
||||
- if (!work)
|
||||
- return;
|
||||
-
|
||||
- INIT_WORK(&work->work, storvsc_host_scan);
|
||||
- work->host = stor_device->host;
|
||||
- schedule_work(&work->work);
|
||||
+ host_dev = shost_priv(stor_device->host);
|
||||
+ queue_work(
|
||||
+ host_dev->handle_error_wq, &host_dev->host_scan_work);
|
||||
break;
|
||||
|
||||
case VSTOR_OPERATION_FCHBA_DATA:
|
||||
@@ -1759,6 +1753,7 @@ static int storvsc_probe(struct hv_device *device,
|
||||
|
||||
host_dev->port = host->host_no;
|
||||
host_dev->dev = device;
|
||||
+ host_dev->host = host;
|
||||
|
||||
|
||||
stor_device = kzalloc(sizeof(struct storvsc_device), GFP_KERNEL);
|
||||
@@ -1827,6 +1822,7 @@ static int storvsc_probe(struct hv_device *device,
|
||||
host->host_no);
|
||||
if (!host_dev->handle_error_wq)
|
||||
goto err_out2;
|
||||
+ INIT_WORK(&host_dev->host_scan_work, storvsc_host_scan);
|
||||
/* Register the HBA and start the scsi bus scan */
|
||||
ret = scsi_add_host(host, &device->device);
|
||||
if (ret != 0)
|
||||
--
|
||||
2.26.2
|
||||
|
Loading…
Reference in New Issue
Block a user