From d94fa9dcf5ba9d35ae76e6c25aaca7cc947eadb4 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 2 Mar 2023 11:40:08 +0000 Subject: [PATCH] Revert "ANDROID: tracing: Add restricted vendor hooks for preemptirq events" This reverts commit 2e14f01dc4abfa95ab6192deea9b99c235f53ca3. It conflicts with changes in the tracing code in this file in 6.3-rc1. If this is still needed, it can be brought back after 6.3-rc1 is merged. Bug: 174541725 Cc: Pavankumar Kondeti Signed-off-by: Greg Kroah-Hartman Change-Id: I105e9b31647431a4a0fb8fa865ca5115ce4ac4a3 --- drivers/android/vendor_hooks.c | 5 ---- include/trace/hooks/preemptirq.h | 31 ------------------------- kernel/trace/trace_preemptirq.c | 40 +++++++------------------------- 3 files changed, 8 insertions(+), 68 deletions(-) delete mode 100644 include/trace/hooks/preemptirq.h diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index fe1f13348a08..e545d42c9759 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -19,7 +19,6 @@ #include #include #include -#include #include #include #include @@ -54,10 +53,6 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_printk_hotplug); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_show_suspend_epoch_val); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_show_resume_epoch_val); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_freq_table_limits); -EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_preempt_disable); -EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_preempt_enable); -EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_irqs_disable); -EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_irqs_enable); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpu_cgroup_attach); EXPORT_TRACEPOINT_SYMBOL_GPL(android_rvh_cpu_cgroup_online); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_ufs_fill_prdt); diff --git a/include/trace/hooks/preemptirq.h b/include/trace/hooks/preemptirq.h deleted file mode 100644 index 52308c882acb..000000000000 --- a/include/trace/hooks/preemptirq.h +++ /dev/null @@ -1,31 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -#undef TRACE_SYSTEM -#define TRACE_SYSTEM preemptirq - -#undef TRACE_INCLUDE_PATH -#define TRACE_INCLUDE_PATH trace/hooks - -#if !defined(_TRACE_HOOK_PREEMPTIRQ_H) || defined(TRACE_HEADER_MULTI_READ) -#define _TRACE_HOOK_PREEMPTIRQ_H - -#include - -DECLARE_RESTRICTED_HOOK(android_rvh_preempt_disable, - TP_PROTO(unsigned long ip, unsigned long parent_ip), - TP_ARGS(ip, parent_ip), 1); - -DECLARE_RESTRICTED_HOOK(android_rvh_preempt_enable, - TP_PROTO(unsigned long ip, unsigned long parent_ip), - TP_ARGS(ip, parent_ip), 1); - -DECLARE_RESTRICTED_HOOK(android_rvh_irqs_disable, - TP_PROTO(unsigned long ip, unsigned long parent_ip), - TP_ARGS(ip, parent_ip), 1); - -DECLARE_RESTRICTED_HOOK(android_rvh_irqs_enable, - TP_PROTO(unsigned long ip, unsigned long parent_ip), - TP_ARGS(ip, parent_ip), 1); - -#endif /* _TRACE_HOOK_PREEMPTIRQ_H */ -/* This part must be outside protection */ -#include diff --git a/kernel/trace/trace_preemptirq.c b/kernel/trace/trace_preemptirq.c index 070befb7ad79..1e130da1b742 100644 --- a/kernel/trace/trace_preemptirq.c +++ b/kernel/trace/trace_preemptirq.c @@ -14,8 +14,6 @@ #define CREATE_TRACE_POINTS #include -#undef CREATE_TRACE_POINTS -#include #ifdef CONFIG_TRACE_IRQFLAGS /* Per-cpu variable to prevent redundant calls when IRQs already off */ @@ -30,11 +28,8 @@ static DEFINE_PER_CPU(int, tracing_irq_cpu); void trace_hardirqs_on_prepare(void) { if (this_cpu_read(tracing_irq_cpu)) { - if (!in_nmi()) { + if (!in_nmi()) trace_irq_enable(CALLER_ADDR0, CALLER_ADDR1); - trace_android_rvh_irqs_enable(CALLER_ADDR0, - CALLER_ADDR1); - } tracer_hardirqs_on(CALLER_ADDR0, CALLER_ADDR1); this_cpu_write(tracing_irq_cpu, 0); } @@ -45,11 +40,8 @@ NOKPROBE_SYMBOL(trace_hardirqs_on_prepare); void trace_hardirqs_on(void) { if (this_cpu_read(tracing_irq_cpu)) { - if (!in_nmi()) { + if (!in_nmi()) trace_irq_enable_rcuidle(CALLER_ADDR0, CALLER_ADDR1); - trace_android_rvh_irqs_enable(CALLER_ADDR0, - CALLER_ADDR1); - } tracer_hardirqs_on(CALLER_ADDR0, CALLER_ADDR1); this_cpu_write(tracing_irq_cpu, 0); } @@ -71,11 +63,8 @@ void trace_hardirqs_off_finish(void) if (!this_cpu_read(tracing_irq_cpu)) { this_cpu_write(tracing_irq_cpu, 1); tracer_hardirqs_off(CALLER_ADDR0, CALLER_ADDR1); - if (!in_nmi()) { + if (!in_nmi()) trace_irq_disable(CALLER_ADDR0, CALLER_ADDR1); - trace_android_rvh_irqs_disable(CALLER_ADDR0, - CALLER_ADDR1); - } } } @@ -89,11 +78,8 @@ void trace_hardirqs_off(void) if (!this_cpu_read(tracing_irq_cpu)) { this_cpu_write(tracing_irq_cpu, 1); tracer_hardirqs_off(CALLER_ADDR0, CALLER_ADDR1); - if (!in_nmi()) { + if (!in_nmi()) trace_irq_disable_rcuidle(CALLER_ADDR0, CALLER_ADDR1); - trace_android_rvh_irqs_disable(CALLER_ADDR0, - CALLER_ADDR1); - } } } EXPORT_SYMBOL(trace_hardirqs_off); @@ -102,11 +88,8 @@ NOKPROBE_SYMBOL(trace_hardirqs_off); __visible void trace_hardirqs_on_caller(unsigned long caller_addr) { if (this_cpu_read(tracing_irq_cpu)) { - if (!in_nmi()) { + if (!in_nmi()) trace_irq_enable_rcuidle(CALLER_ADDR0, caller_addr); - trace_android_rvh_irqs_enable(CALLER_ADDR0, - caller_addr); - } tracer_hardirqs_on(CALLER_ADDR0, caller_addr); this_cpu_write(tracing_irq_cpu, 0); } @@ -124,11 +107,8 @@ __visible void trace_hardirqs_off_caller(unsigned long caller_addr) if (!this_cpu_read(tracing_irq_cpu)) { this_cpu_write(tracing_irq_cpu, 1); tracer_hardirqs_off(CALLER_ADDR0, caller_addr); - if (!in_nmi()) { + if (!in_nmi()) trace_irq_disable_rcuidle(CALLER_ADDR0, caller_addr); - trace_android_rvh_irqs_enable(CALLER_ADDR0, - caller_addr); - } } } EXPORT_SYMBOL(trace_hardirqs_off_caller); @@ -139,19 +119,15 @@ NOKPROBE_SYMBOL(trace_hardirqs_off_caller); void trace_preempt_on(unsigned long a0, unsigned long a1) { - if (!in_nmi()) { + if (!in_nmi()) trace_preempt_enable_rcuidle(a0, a1); - trace_android_rvh_preempt_enable(a0, a1); - } tracer_preempt_on(a0, a1); } void trace_preempt_off(unsigned long a0, unsigned long a1) { - if (!in_nmi()) { + if (!in_nmi()) trace_preempt_disable_rcuidle(a0, a1); - trace_android_rvh_preempt_disable(a0, a1); - } tracer_preempt_off(a0, a1); } #endif