Star64_linux/kernel
Yipeng Zou 5a49f843d6 tracing: hold caller_addr to hardirq_{enable,disable}_ip
[ Upstream commit 54c3931957 ]

Currently, The arguments passing to lockdep_hardirqs_{on,off} was fixed
in CALLER_ADDR0.
The function trace_hardirqs_on_caller should have been intended to use
caller_addr to represent the address that caller wants to be traced.

For example, lockdep log in riscv showing the last {enabled,disabled} at
__trace_hardirqs_{on,off} all the time(if called by):
[   57.853175] hardirqs last  enabled at (2519): __trace_hardirqs_on+0xc/0x14
[   57.853848] hardirqs last disabled at (2520): __trace_hardirqs_off+0xc/0x14

After use trace_hardirqs_xx_caller, we can get more effective information:
[   53.781428] hardirqs last  enabled at (2595): restore_all+0xe/0x66
[   53.782185] hardirqs last disabled at (2596): ret_from_exception+0xa/0x10

Link: https://lkml.kernel.org/r/20220901104515.135162-2-zouyipeng@huawei.com

Cc: stable@vger.kernel.org
Fixes: c3bc8fd637 ("tracing: Centralize preemptirq tracepoints and unify their usage")
Signed-off-by: Yipeng Zou <zouyipeng@huawei.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-04-19 17:53:51 +08:00
..
bpf bpf, cgroup: Fix kernel BUG in purge_effective_progs 2023-04-19 17:53:34 +08:00
cgroup cgroup: Fix threadgroup_rwsem <-> cpus_read_lock() deadlock 2023-04-19 17:53:45 +08:00
configs
debug lockdown: also lock down previous kgdb use 2023-04-19 17:49:02 +08:00
dma swiotlb: avoid potential left shift overflow 2023-04-19 17:53:49 +08:00
entry lockdep: Fix -Wunused-parameter for _THIS_IP_ 2023-04-19 17:53:51 +08:00
events perf/core: Fix data race between perf_event_set_output() and perf_mmap_close() 2023-04-19 17:51:37 +08:00
gcov
irq irqdomain: Report irq number for NOMAP domains 2023-04-19 17:52:15 +08:00
kcsan
livepatch
locking lockdep: Fix -Wunused-parameter for _THIS_IP_ 2023-04-19 17:53:51 +08:00
power PM: hibernate: defer device probing when resuming from hibernation 2023-04-19 17:52:09 +08:00
printk printk: wake waiters for safe and NMI contexts 2023-04-19 17:49:36 +08:00
rcu rcutorture: Fix ksoftirqd boosting timing and iteration 2023-04-19 17:52:20 +08:00
sched lockdep: Fix -Wunused-parameter for _THIS_IP_ 2023-04-19 17:53:51 +08:00
time timekeeping: contribute wall clock to rng on time change 2023-04-19 17:52:53 +08:00
trace tracing: hold caller_addr to hardirq_{enable,disable}_ip 2023-04-19 17:53:51 +08:00
.gitignore
acct.c
async.c
audit.c
audit.h
audit_fsnotify.c audit: fix potential double free on error path from fsnotify_add_inode_mark 2023-04-19 17:53:17 +08:00
audit_tree.c
audit_watch.c
auditfilter.c
auditsc.c
backtracetest.c
bounds.c
capability.c
cfi.c cfi: Fix __cfi_slowpath_diag RCU usage with cpuidle 2023-04-19 17:50:36 +08:00
compat.c
configs.c
context_tracking.c
cpu.c random: clear fast pool, crng, and batches in cpuhp bring up 2023-04-19 17:49:08 +08:00
cpu_pm.c
crash_core.c
crash_dump.c
cred.c
delayacct.c
dma.c
exec_domain.c
exit.c fix race between exit_itimers() and /proc/pid/timers 2023-04-19 17:51:16 +08:00
extable.c
fail_function.c
fork.c IB/core: Fix a nested dead lock as part of ODP flow 2023-04-19 17:53:48 +08:00
freezer.c
futex.c
gen_kheaders.sh
groups.c
hung_task.c
iomem.c
irq_work.c
jump_label.c
kallsyms.c
kcmp.c
Kconfig.freezer
Kconfig.hz
Kconfig.locks
Kconfig.preempt
kcov.c
kexec.c
kexec_core.c
kexec_elf.c
kexec_file.c ima: force signature verification when CONFIG_KEXEC_SIG is configured 2023-04-19 17:51:22 +08:00
kexec_internal.h
kheaders.c
kmod.c
kprobes.c kprobes: Prohibit probes in gate area 2023-04-19 17:53:44 +08:00
ksysfs.c
kthread.c
latencytop.c
Makefile static_call: Don't make __static_call_return0 static 2023-04-19 17:47:53 +08:00
module-internal.h
module.c module: fix [e_shstrndx].sh_size=0 OOB access 2023-04-19 17:51:09 +08:00
module_signature.c
module_signing.c
notifier.c
nsproxy.c
padata.c
panic.c
params.c
pid.c
pid_namespace.c
profile.c profiling: fix shift too large makes kernel panic 2023-04-19 17:52:42 +08:00
ptrace.c ptrace: Reimplement PTRACE_KILL by always sending SIGKILL 2023-04-19 17:49:21 +08:00
range.c
reboot.c
regset.c
relay.c
resource.c kernel/resource: fix kfree() of bootmem memory again 2023-04-19 17:47:07 +08:00
resource_kunit.c
rseq.c
scftorture.c scftorture: Fix distribution of short handler delays 2023-04-19 17:49:34 +08:00
scs.c
seccomp.c
signal.c signal handling: don't use BUG_ON() for debugging 2023-04-19 17:51:27 +08:00
smp.c locking/csd_lock: Change csdlock_debug from early_param to __setup 2023-04-19 17:52:53 +08:00
smpboot.c
smpboot.h
softirq.c
stackleak.c
stacktrace.c stacktrace: move filter_irq_stacks() to kernel/stacktrace.c 2023-04-19 17:47:53 +08:00
static_call.c static_call: Don't make __static_call_return0 static 2023-04-19 17:47:53 +08:00
static_call_inline.c static_call: Don't make __static_call_return0 static 2023-04-19 17:47:53 +08:00
stop_machine.c
sys.c
sys_ni.c kernel/sys_ni: add compat entry for fadvise64_64 2023-04-19 17:53:17 +08:00
sysctl-test.c
sysctl.c sysctl: move some boundary constants from sysctl.c to sysctl_vals 2023-04-19 17:51:37 +08:00
task_work.c
taskstats.c
test_kprobes.c
torture.c
tracepoint.c
tsacct.c
ucount.c
uid16.c
uid16.h
umh.c
up.c
user-return-notifier.c
user.c
user_namespace.c
usermode_driver.c
utsname.c
utsname_sysctl.c
watch_queue.c watch_queue: Fix missing locking in add_watch_to_object() 2023-04-19 17:51:51 +08:00
watchdog.c watchdog: export lockup_detector_reconfigure 2023-04-19 17:53:14 +08:00
watchdog_hld.c
workqueue.c
workqueue_internal.h