mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-03-22 07:27:12 +08:00
Merge tag 'trace-unused-v6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace
Pull tracepoint cleanup from Steven Rostedt:
"Remove or hide unused tracepoints
Tracepoints take up memory (around 5K per tracepoint) even when they
are unused. Changes are being made to detect when a tracepoint is
defined but unused and a warning is shown at build. But those changes
are not yet ready for inclusion.
- Fix some of the unused tracepoints that it detected
Some tracepoints were removed and others were hidden by config
settings to match the config settings of where they are
instantiated. Some tracepoints were moved into architecture
specific code as only one architecture used them.
- Call the ftrace_test_filter tracepoint in an unreachable if
statement
The ftrace_test_filter tracepoint which is defined when ftrace
selftests are configured and is used to test the filter logic, but
the tracepoint is not actually called. It is put into an if
statement to not have it get compiled out, but also not warn for
not being used"
* tag 'trace-unused-v6.17' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
tracing: sched: Hide numa events under CONFIG_NUMA_BALANCING
powerpc/thp: tracing: Hide hugepage events under CONFIG_PPC_BOOK3S_64
tracing: Call trace_ftrace_test_filter() for the event
tracing: arm: arm64: Hide trace events ipi_raise, ipi_entry and ipi_exit
binder: Remove unused binder lock events
PM: tracing: Hide power_domain_target event under ARCH_OMAP2PLUS
PM: tracing: Hide device_pm_callback events under PM_SLEEP
PM: tracing: Hide psci_domain_idle events under ARM_PSCI_CPUIDLE
PM: cpufreq: powernv/tracing: Move powernv_throttle trace event
alarmtimer: Hide alarmtimer_suspend event when RTC_CLASS is not configured
tracing, AER: Hide PCIe AER event when PCIEAER is not configured
This commit is contained in:
@@ -100,6 +100,7 @@ config ARM
|
||||
select HAVE_BUILDTIME_MCOUNT_SORT
|
||||
select HAVE_DEBUG_KMEMLEAK if !XIP_KERNEL
|
||||
select HAVE_DMA_CONTIGUOUS if MMU
|
||||
select HAVE_EXTRA_IPI_TRACEPOINTS
|
||||
select HAVE_DYNAMIC_FTRACE if !XIP_KERNEL && !CPU_ENDIAN_BE32 && MMU
|
||||
select HAVE_DYNAMIC_FTRACE_WITH_REGS if HAVE_DYNAMIC_FTRACE
|
||||
select HAVE_EFFICIENT_UNALIGNED_ACCESS if (CPU_V6 || CPU_V6K || CPU_V7) && MMU
|
||||
|
||||
@@ -134,6 +134,7 @@ config ARM64
|
||||
select CPU_PM if (SUSPEND || CPU_IDLE)
|
||||
select CPUMASK_OFFSTACK if NR_CPUS > 256
|
||||
select DCACHE_WORD_ACCESS
|
||||
select HAVE_EXTRA_IPI_TRACEPOINTS
|
||||
select DYNAMIC_FTRACE if FUNCTION_TRACER
|
||||
select DMA_BOUNCE_UNALIGNED_KMALLOC
|
||||
select DMA_DIRECT_REMAP
|
||||
|
||||
@@ -21,6 +21,7 @@ obj-$(CONFIG_CPUFREQ_VIRT) += virtual-cpufreq.o
|
||||
|
||||
# Traces
|
||||
CFLAGS_amd-pstate-trace.o := -I$(src)
|
||||
CFLAGS_powernv-cpufreq.o := -I$(src)
|
||||
amd_pstate-y := amd-pstate.o amd-pstate-trace.o
|
||||
|
||||
##################################################################################
|
||||
|
||||
@@ -21,7 +21,6 @@
|
||||
#include <linux/string_choices.h>
|
||||
#include <linux/cpu.h>
|
||||
#include <linux/hashtable.h>
|
||||
#include <trace/events/power.h>
|
||||
|
||||
#include <asm/cputhreads.h>
|
||||
#include <asm/firmware.h>
|
||||
@@ -30,6 +29,9 @@
|
||||
#include <asm/opal.h>
|
||||
#include <linux/timer.h>
|
||||
|
||||
#define CREATE_TRACE_POINTS
|
||||
#include "powernv-trace.h"
|
||||
|
||||
#define POWERNV_MAX_PSTATES_ORDER 8
|
||||
#define POWERNV_MAX_PSTATES (1UL << (POWERNV_MAX_PSTATES_ORDER))
|
||||
#define PMSR_PSAFE_ENABLE (1UL << 30)
|
||||
|
||||
44
drivers/cpufreq/powernv-trace.h
Normal file
44
drivers/cpufreq/powernv-trace.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
#if !defined(_POWERNV_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
|
||||
#define _POWERNV_TRACE_H
|
||||
|
||||
#include <linux/cpufreq.h>
|
||||
#include <linux/tracepoint.h>
|
||||
#include <linux/trace_events.h>
|
||||
|
||||
#undef TRACE_SYSTEM
|
||||
#define TRACE_SYSTEM power
|
||||
|
||||
TRACE_EVENT(powernv_throttle,
|
||||
|
||||
TP_PROTO(int chip_id, const char *reason, int pmax),
|
||||
|
||||
TP_ARGS(chip_id, reason, pmax),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(int, chip_id)
|
||||
__string(reason, reason)
|
||||
__field(int, pmax)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->chip_id = chip_id;
|
||||
__assign_str(reason);
|
||||
__entry->pmax = pmax;
|
||||
),
|
||||
|
||||
TP_printk("Chip %d Pmax %d %s", __entry->chip_id,
|
||||
__entry->pmax, __get_str(reason))
|
||||
);
|
||||
|
||||
#endif /* _POWERNV_TRACE_H */
|
||||
|
||||
/* This part must be outside protection */
|
||||
#undef TRACE_INCLUDE_PATH
|
||||
#define TRACE_INCLUDE_PATH .
|
||||
|
||||
#undef TRACE_INCLUDE_FILE
|
||||
#define TRACE_INCLUDE_FILE powernv-trace
|
||||
|
||||
#include <trace/define_trace.h>
|
||||
@@ -252,6 +252,7 @@ TRACE_EVENT(non_standard_event,
|
||||
__print_hex(__get_dynamic_array(buf), __entry->len))
|
||||
);
|
||||
|
||||
#ifdef CONFIG_PCIEAER
|
||||
/*
|
||||
* PCIe AER Trace event
|
||||
*
|
||||
@@ -337,6 +338,7 @@ TRACE_EVENT(aer_event,
|
||||
__print_array(__entry->tlp_header, PCIE_STD_MAX_TLP_HEADERLOG, 4) :
|
||||
"Not available")
|
||||
);
|
||||
#endif /* CONFIG_PCIEAER */
|
||||
|
||||
/*
|
||||
* memory-failure recovery action result event
|
||||
|
||||
@@ -20,6 +20,7 @@ TRACE_DEFINE_ENUM(ALARM_BOOTTIME_FREEZER);
|
||||
{ 1 << ALARM_REALTIME_FREEZER, "REALTIME Freezer" }, \
|
||||
{ 1 << ALARM_BOOTTIME_FREEZER, "BOOTTIME Freezer" })
|
||||
|
||||
#ifdef CONFIG_RTC_CLASS
|
||||
TRACE_EVENT(alarmtimer_suspend,
|
||||
|
||||
TP_PROTO(ktime_t expires, int flag),
|
||||
@@ -41,6 +42,7 @@ TRACE_EVENT(alarmtimer_suspend,
|
||||
__entry->expires
|
||||
)
|
||||
);
|
||||
#endif /* CONFIG_RTC_CLASS */
|
||||
|
||||
DECLARE_EVENT_CLASS(alarm_class,
|
||||
|
||||
|
||||
@@ -7,34 +7,6 @@
|
||||
|
||||
#include <linux/tracepoint.h>
|
||||
|
||||
/**
|
||||
* ipi_raise - called when a smp cross call is made
|
||||
*
|
||||
* @mask: mask of recipient CPUs for the IPI
|
||||
* @reason: string identifying the IPI purpose
|
||||
*
|
||||
* It is necessary for @reason to be a static string declared with
|
||||
* __tracepoint_string.
|
||||
*/
|
||||
TRACE_EVENT(ipi_raise,
|
||||
|
||||
TP_PROTO(const struct cpumask *mask, const char *reason),
|
||||
|
||||
TP_ARGS(mask, reason),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__bitmask(target_cpus, nr_cpumask_bits)
|
||||
__field(const char *, reason)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__assign_bitmask(target_cpus, cpumask_bits(mask), nr_cpumask_bits);
|
||||
__entry->reason = reason;
|
||||
),
|
||||
|
||||
TP_printk("target_mask=%s (%s)", __get_bitmask(target_cpus), __entry->reason)
|
||||
);
|
||||
|
||||
TRACE_EVENT(ipi_send_cpu,
|
||||
|
||||
TP_PROTO(const unsigned int cpu, unsigned long callsite, void *callback),
|
||||
@@ -79,6 +51,35 @@ TRACE_EVENT(ipi_send_cpumask,
|
||||
__get_cpumask(cpumask), __entry->callsite, __entry->callback)
|
||||
);
|
||||
|
||||
#ifdef CONFIG_HAVE_EXTRA_IPI_TRACEPOINTS
|
||||
/**
|
||||
* ipi_raise - called when a smp cross call is made
|
||||
*
|
||||
* @mask: mask of recipient CPUs for the IPI
|
||||
* @reason: string identifying the IPI purpose
|
||||
*
|
||||
* It is necessary for @reason to be a static string declared with
|
||||
* __tracepoint_string.
|
||||
*/
|
||||
TRACE_EVENT(ipi_raise,
|
||||
|
||||
TP_PROTO(const struct cpumask *mask, const char *reason),
|
||||
|
||||
TP_ARGS(mask, reason),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__bitmask(target_cpus, nr_cpumask_bits)
|
||||
__field(const char *, reason)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__assign_bitmask(target_cpus, cpumask_bits(mask), nr_cpumask_bits);
|
||||
__entry->reason = reason;
|
||||
),
|
||||
|
||||
TP_printk("target_mask=%s (%s)", __get_bitmask(target_cpus), __entry->reason)
|
||||
);
|
||||
|
||||
DECLARE_EVENT_CLASS(ipi_handler,
|
||||
|
||||
TP_PROTO(const char *reason),
|
||||
@@ -127,6 +128,7 @@ DEFINE_EVENT(ipi_handler, ipi_exit,
|
||||
|
||||
TP_ARGS(reason)
|
||||
);
|
||||
#endif /* CONFIG_HAVE_EXTRA_IPI_TRACEPOINTS */
|
||||
|
||||
#endif /* _TRACE_IPI_H */
|
||||
|
||||
|
||||
@@ -62,6 +62,7 @@ TRACE_EVENT(cpu_idle_miss,
|
||||
(unsigned long)__entry->state, (__entry->below)?"below":"above")
|
||||
);
|
||||
|
||||
#ifdef CONFIG_ARM_PSCI_CPUIDLE
|
||||
DECLARE_EVENT_CLASS(psci_domain_idle,
|
||||
|
||||
TP_PROTO(unsigned int cpu_id, unsigned int state, bool s2idle),
|
||||
@@ -98,28 +99,7 @@ DEFINE_EVENT(psci_domain_idle, psci_domain_idle_exit,
|
||||
|
||||
TP_ARGS(cpu_id, state, s2idle)
|
||||
);
|
||||
|
||||
TRACE_EVENT(powernv_throttle,
|
||||
|
||||
TP_PROTO(int chip_id, const char *reason, int pmax),
|
||||
|
||||
TP_ARGS(chip_id, reason, pmax),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field(int, chip_id)
|
||||
__string(reason, reason)
|
||||
__field(int, pmax)
|
||||
),
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->chip_id = chip_id;
|
||||
__assign_str(reason);
|
||||
__entry->pmax = pmax;
|
||||
),
|
||||
|
||||
TP_printk("Chip %d Pmax %d %s", __entry->chip_id,
|
||||
__entry->pmax, __get_str(reason))
|
||||
);
|
||||
#endif
|
||||
|
||||
TRACE_EVENT(pstate_sample,
|
||||
|
||||
@@ -232,6 +212,7 @@ TRACE_EVENT(cpu_frequency_limits,
|
||||
(unsigned long)__entry->cpu_id)
|
||||
);
|
||||
|
||||
#ifdef CONFIG_PM_SLEEP
|
||||
TRACE_EVENT(device_pm_callback_start,
|
||||
|
||||
TP_PROTO(struct device *dev, const char *pm_ops, int event),
|
||||
@@ -280,6 +261,7 @@ TRACE_EVENT(device_pm_callback_end,
|
||||
TP_printk("%s %s, err=%d",
|
||||
__get_str(driver), __get_str(device), __entry->error)
|
||||
);
|
||||
#endif
|
||||
|
||||
TRACE_EVENT(suspend_resume,
|
||||
|
||||
@@ -337,6 +319,7 @@ DEFINE_EVENT(wakeup_source, wakeup_source_deactivate,
|
||||
TP_ARGS(name, state)
|
||||
);
|
||||
|
||||
#ifdef CONFIG_ARCH_OMAP2PLUS
|
||||
/*
|
||||
* The power domain events are used for power domains transitions
|
||||
*/
|
||||
@@ -368,6 +351,7 @@ DEFINE_EVENT(power_domain, power_domain_target,
|
||||
|
||||
TP_ARGS(name, state, cpu_id)
|
||||
);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* CPU latency QoS events used for global CPU latency QoS list updates
|
||||
|
||||
@@ -628,6 +628,7 @@ TRACE_EVENT(sched_process_hang,
|
||||
);
|
||||
#endif /* CONFIG_DETECT_HUNG_TASK */
|
||||
|
||||
#ifdef CONFIG_NUMA_BALANCING
|
||||
/*
|
||||
* Tracks migration of tasks from one runqueue to another. Can be used to
|
||||
* detect if automatic NUMA balancing is bouncing between nodes.
|
||||
@@ -720,7 +721,6 @@ DEFINE_EVENT(sched_numa_pair_template, sched_swap_numa,
|
||||
TP_ARGS(src_tsk, src_cpu, dst_tsk, dst_cpu)
|
||||
);
|
||||
|
||||
#ifdef CONFIG_NUMA_BALANCING
|
||||
#define NUMAB_SKIP_REASON \
|
||||
EM( NUMAB_SKIP_UNSUITABLE, "unsuitable" ) \
|
||||
EM( NUMAB_SKIP_SHARED_RO, "shared_ro" ) \
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include <linux/types.h>
|
||||
#include <linux/tracepoint.h>
|
||||
|
||||
#ifdef CONFIG_PPC_BOOK3S_64
|
||||
DECLARE_EVENT_CLASS(hugepage_set,
|
||||
|
||||
TP_PROTO(unsigned long addr, unsigned long pte),
|
||||
@@ -66,6 +67,7 @@ DEFINE_EVENT(hugepage_update, hugepage_update_pud,
|
||||
TP_PROTO(unsigned long addr, unsigned long pud, unsigned long clr, unsigned long set),
|
||||
TP_ARGS(addr, pud, clr, set)
|
||||
);
|
||||
#endif /* CONFIG_PPC_BOOK3S_64 */
|
||||
|
||||
DECLARE_EVENT_CLASS(migration_pmd,
|
||||
|
||||
|
||||
@@ -53,6 +53,12 @@ config HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
|
||||
config HAVE_DYNAMIC_FTRACE_WITH_CALL_OPS
|
||||
bool
|
||||
|
||||
config HAVE_EXTRA_IPI_TRACEPOINTS
|
||||
bool
|
||||
help
|
||||
For architectures that use ipi_raise, ipi_entry and ipi_exit
|
||||
tracepoints.
|
||||
|
||||
config HAVE_DYNAMIC_FTRACE_WITH_ARGS
|
||||
bool
|
||||
help
|
||||
|
||||
@@ -17,5 +17,4 @@
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(suspend_resume);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(cpu_idle);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(cpu_frequency);
|
||||
EXPORT_TRACEPOINT_SYMBOL_GPL(powernv_throttle);
|
||||
|
||||
|
||||
@@ -2900,6 +2900,10 @@ static __init int ftrace_test_event_filter(void)
|
||||
if (i == DATA_CNT)
|
||||
printk(KERN_CONT "OK\n");
|
||||
|
||||
/* Need to call ftrace_test_filter to prevent a warning */
|
||||
if (!trace_ftrace_test_filter_enabled())
|
||||
trace_ftrace_test_filter(1, 2, 3, 4, 5, 6, 7, 8);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user