Commit e6506eb2 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'trace-v4.17-rc4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace

Pull tracing fix from Steven Rostedt:
 "Some of the ftrace internal events use a zero for a data size of a
  field event. This is increasingly important for the histogram trigger
  work that is being extended.

  While auditing trace events, I found that a couple of the xen events
  were used as just marking that a function was called, by creating a
  static array of size zero. This can play havoc with the tracing
  features if these events are used, because a zero size of a static
  array is denoted as a special nul terminated dynamic array (this is
  what the trace_marker code uses). But since the xen events have no
  size, they are not nul terminated, and unexpected results may occur.

  As trace events were never intended on being a marker to denote that a
  function was hit or not, especially since function tracing and kprobes
  can trivially do the same, the best course of action is to simply
  remove these events"

* tag 'trace-v4.17-rc4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
  tracing/x86/xen: Remove zero data size trace events trace_xen_mmu_flush_tlb{_all}
parents 9d38cd06 45dd9b06
...@@ -42,13 +42,11 @@ xmaddr_t arbitrary_virt_to_machine(void *vaddr) ...@@ -42,13 +42,11 @@ xmaddr_t arbitrary_virt_to_machine(void *vaddr)
} }
EXPORT_SYMBOL_GPL(arbitrary_virt_to_machine); EXPORT_SYMBOL_GPL(arbitrary_virt_to_machine);
static void xen_flush_tlb_all(void) static noinline void xen_flush_tlb_all(void)
{ {
struct mmuext_op *op; struct mmuext_op *op;
struct multicall_space mcs; struct multicall_space mcs;
trace_xen_mmu_flush_tlb_all(0);
preempt_disable(); preempt_disable();
mcs = xen_mc_entry(sizeof(*op)); mcs = xen_mc_entry(sizeof(*op));
......
...@@ -1310,13 +1310,11 @@ unsigned long xen_read_cr2_direct(void) ...@@ -1310,13 +1310,11 @@ unsigned long xen_read_cr2_direct(void)
return this_cpu_read(xen_vcpu_info.arch.cr2); return this_cpu_read(xen_vcpu_info.arch.cr2);
} }
static void xen_flush_tlb(void) static noinline void xen_flush_tlb(void)
{ {
struct mmuext_op *op; struct mmuext_op *op;
struct multicall_space mcs; struct multicall_space mcs;
trace_xen_mmu_flush_tlb(0);
preempt_disable(); preempt_disable();
mcs = xen_mc_entry(sizeof(*op)); mcs = xen_mc_entry(sizeof(*op));
......
...@@ -352,22 +352,6 @@ DECLARE_EVENT_CLASS(xen_mmu_pgd, ...@@ -352,22 +352,6 @@ DECLARE_EVENT_CLASS(xen_mmu_pgd,
DEFINE_XEN_MMU_PGD_EVENT(xen_mmu_pgd_pin); DEFINE_XEN_MMU_PGD_EVENT(xen_mmu_pgd_pin);
DEFINE_XEN_MMU_PGD_EVENT(xen_mmu_pgd_unpin); DEFINE_XEN_MMU_PGD_EVENT(xen_mmu_pgd_unpin);
TRACE_EVENT(xen_mmu_flush_tlb_all,
TP_PROTO(int x),
TP_ARGS(x),
TP_STRUCT__entry(__array(char, x, 0)),
TP_fast_assign((void)x),
TP_printk("%s", "")
);
TRACE_EVENT(xen_mmu_flush_tlb,
TP_PROTO(int x),
TP_ARGS(x),
TP_STRUCT__entry(__array(char, x, 0)),
TP_fast_assign((void)x),
TP_printk("%s", "")
);
TRACE_EVENT(xen_mmu_flush_tlb_one_user, TRACE_EVENT(xen_mmu_flush_tlb_one_user,
TP_PROTO(unsigned long addr), TP_PROTO(unsigned long addr),
TP_ARGS(addr), TP_ARGS(addr),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment