diff mbox series

[azure,v2,1/3] Revert "UBUNTU: SAUCE: tracing/hyper-v: trace hyperv_mmu_flush_tlb_others()"

Message ID 1506955542-27953-2-git-send-email-marcelo.cerri@canonical.com
State New
Headers show
Series [azure,v2,1/3] Revert "UBUNTU: SAUCE: tracing/hyper-v: trace hyperv_mmu_flush_tlb_others()" | expand

Commit Message

Marcelo Henrique Cerri Oct. 2, 2017, 2:45 p.m. UTC
BugLink: http://bugs.launchpad.net/bugs/1719045

This reverts commit 47755dae5ca9da9351bc93b4260f65cc86eaf26f.

Some golang applications are getting random failures with the linux-azure
kernel. The failures range from some unexpected SIGBUS or SIGSEGV errors to
internal memory allocation failures in the golang runtime.

Bisecting linux-azure shows the problem is caused by the changes that added
support for remote TLB flush via Hyper-V hypercalls. And removing this feature
causes the problem to not happen anymore.

Revert those changes until a proper fix is available.

Signed-off-by: Marcelo Henrique Cerri <marcelo.cerri@canonical.com>
---
 MAINTAINERS                         |  1 -
 arch/x86/hyperv/mmu.c               |  8 --------
 arch/x86/include/asm/trace/hyperv.h | 34 ----------------------------------
 3 files changed, 43 deletions(-)
 delete mode 100644 arch/x86/include/asm/trace/hyperv.h
diff mbox series

Patch

diff --git a/MAINTAINERS b/MAINTAINERS
index 6f260f64dc05..02037b705cd2 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -6088,7 +6088,6 @@  L:	devel@linuxdriverproject.org
 S:	Maintained
 F:	Documentation/networking/netvsc.txt
 F:	arch/x86/include/asm/mshyperv.h
-F:	arch/x86/include/asm/trace/hyperv.h
 F:	arch/x86/include/uapi/asm/hyperv.h
 F:	arch/x86/kernel/cpu/mshyperv.c
 F:	arch/x86/hyperv
diff --git a/arch/x86/hyperv/mmu.c b/arch/x86/hyperv/mmu.c
index f6b5211e52ab..c9cecb3502e9 100644
--- a/arch/x86/hyperv/mmu.c
+++ b/arch/x86/hyperv/mmu.c
@@ -6,10 +6,6 @@ 
 #include <asm/tlbflush.h>
 #include <asm/msr.h>
 #include <asm/fpu/api.h>
-#include <asm/trace/hyperv.h>
-
-#define CREATE_TRACE_POINTS
-DEFINE_TRACE(hyperv_mmu_flush_tlb_others);
 
 /* HvFlushVirtualAddressSpace, HvFlushVirtualAddressList hypercalls */
 struct hv_flush_pcpu {
@@ -79,8 +75,6 @@  static void hyperv_flush_tlb_others(const struct cpumask *cpus,
 	u64 status = -1ULL;
 	int cpu, vcpu, gva_n, max_gvas;
 
-	trace_hyperv_mmu_flush_tlb_others(cpus, mm, start, end);
-
 	if (!pcpu_flush || !hv_hypercall_pg)
 		goto do_native;
 
@@ -167,8 +161,6 @@  static void hyperv_flush_tlb_others_ex(const struct cpumask *cpus,
 	u64 status = -1ULL;
 	int nr_bank = 0, max_gvas, gva_n;
 
-	trace_hyperv_mmu_flush_tlb_others(cpus, mm, start, end);
-
 	if (!pcpu_flush_ex || !hv_hypercall_pg)
 		goto do_native;
 
diff --git a/arch/x86/include/asm/trace/hyperv.h b/arch/x86/include/asm/trace/hyperv.h
deleted file mode 100644
index e46a351fdcb3..000000000000
--- a/arch/x86/include/asm/trace/hyperv.h
+++ /dev/null
@@ -1,34 +0,0 @@ 
-#undef TRACE_SYSTEM
-#define TRACE_SYSTEM hyperv
-
-#if !defined(_TRACE_HYPERV_H) || defined(TRACE_HEADER_MULTI_READ)
-#define _TRACE_HYPERV_H
-
-#include <linux/tracepoint.h>
-
-#if IS_ENABLED(CONFIG_HYPERV)
-
-TRACE_EVENT(hyperv_mmu_flush_tlb_others,
-	    TP_PROTO(const struct cpumask *cpus, struct mm_struct *mm,
-		     unsigned long addr, unsigned long end),
-	    TP_ARGS(cpus, mm, addr, end),
-	    TP_STRUCT__entry(
-		    __field(unsigned int, ncpus)
-		    __field(struct mm_struct *, mm)
-		    __field(unsigned long, addr)
-		    __field(unsigned long, end)
-		    ),
-	    TP_fast_assign(__entry->ncpus = cpumask_weight(cpus);
-			   __entry->mm = mm;
-			   __entry->addr = addr,
-			   __entry->end = end),
-	    TP_printk("ncpus %d mm %p addr %lx, end %lx",
-		      __entry->ncpus, __entry->mm, __entry->addr, __entry->end)
-	);
-
-#endif /* CONFIG_HYPERV */
-
-#endif /* _TRACE_HYPERV_H */
-
-/* This part must be outside protection */
-#include <trace/define_trace.h>