[azure][PATCH v2 1/3] Revert "UBUNTU: SAUCE: tracing/hyper-v: trace hyperv_mmu_flush_tlb_others()"
Marcelo Henrique Cerri
marcelo.cerri at canonical.com
Mon Oct 2 14:45:40 UTC 2017
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 at 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 --git a/MAINTAINERS b/MAINTAINERS
index 6f260f64dc05..02037b705cd2 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -6088,7 +6088,6 @@ L: devel at 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>
--
2.7.4
More information about the kernel-team
mailing list