[DTrace-devel] DTrace-V1-ized 5.9.3 pushed to github
Nick Alcock
nick.alcock at oracle.com
Sun Nov 1 13:45:44 PST 2020
Tests passed on x86-64 and AArch64 with https://github.com/oracle/dtrace-utils
(master branch). (Non-stress tests only: one stress test currently
fails on x86-64. This is unlikely to affect normal use unless you do
something most unusual like chill()ing on all fbt probes at once.)
Pushed to <https://github.com/oracle/dtrace-linux-kernel>
as a branch with v1 in the name.
This push is of DTrace v1, using a specialized kernel module rather than BPF.
A minor release to work around merge conflicts, and to cater for the
change from the __*notifier_call_chain functions into
*notifier_call_chain_robust in 5.9.3. (A few commits that all touch the
FBT blacklist have been merged into one as well.)
Changes since 5.9:
1: c9c0769a51b6 = 1: 244de8221ebc ctf: generate CTF information for the kernel
2: 9d2bf6eb3ee9 = 2: 7eb0f029ad3b kallsyms: introduce new /proc/kallmodsyms including builtin modules too
3: 9b4fcbb25da4 = 3: aa2742716035 waitfd: new syscall implementing waitpid() over fds
4: 3f8362ef4278 ! 4: 4521d80af3e9 dtrace: core and x86
@@ arch/x86/mm/fault.c: void do_user_addr_fault(struct pt_regs *regs,
## fs/exec.c ##
@@
- #include <linux/oom.h>
#include <linux/compat.h>
#include <linux/vmalloc.h>
+ #include <linux/io_uring.h>
+#include <linux/dtrace_os.h>
#include <linux/uaccess.h>
@@ kernel/exit.c: void __noreturn do_exit(long code)
## kernel/fork.c ##
@@
- #include <linux/stackleak.h>
#include <linux/kasan.h>
#include <linux/scs.h>
+ #include <linux/io_uring.h>
+#include <linux/dtrace_task_impl.h>
#include <asm/pgalloc.h>
@@ kernel/module.c
+#endif /* CONFIG_DTRACE */
/* Work queue for freeing init sections in success case */
- static struct work_struct init_free_wq;
+ static void do_free_init(struct work_struct *w);
@@ kernel/module.c: SYSCALL_DEFINE2(delete_module, const char __user *, name_user,
}
}
5: 303a8f2e1064 = 5: 5ff6fe455274 dtrace: modular components and x86 support
6: 1f20467d463a = 6: c6582c50ec2b dtrace: systrace provider core components
7: b05219eb3600 = 7: 492a66b9a231 dtrace: systrace provider
8: 30fac92b7707 = 8: e89ae4981ac3 dtrace: sdt provider core components
9: bd6aed4de36e = 9: 2aab3c565ba0 dtrace: sdt provider for x86
10: 44b188df4c01 = 10: 6a1ab51438cd dtrace: profile provider and test probe core components
11: f0ab47d4b61b = 11: fb3a4f8f53b4 dtrace: profile and tick providers built on cyclics
12: 83bdd9292adb = 12: be7aa9a95675 dtrace: USDT and pid provider core and x86 components
13: 9cb2ed1f5136 = 13: fe7e28c7a973 dtrace: USDT and pid providers
14: 9afcc0094c04 ! 14: 582ef8833519 dtrace: function boundary tracing (FBT) core and x86 components
@@ arch/x86/kernel/fbt_blacklist.h (new)
+ */
+BL_SENTRY(void *, notify_die)
+BL_DENTRY(void *, notifier_call_chain)
-+BL_SENTRY(typeof(__atomic_notifier_call_chain), __atomic_notifier_call_chain)
++BL_SENTRY(typeof(atomic_notifier_call_chain_robust), atomic_notifier_call_chain_robust)
+BL_SENTRY(typeof(atomic_notifier_call_chain), atomic_notifier_call_chain)
-+BL_SENTRY(typeof(__raw_notifier_call_chain), __raw_notifier_call_chain)
++BL_SENTRY(typeof(raw_notifier_call_chain_robust), raw_notifier_call_chain_robust)
+BL_SENTRY(typeof(raw_notifier_call_chain), raw_notifier_call_chain)
+BL_DENTRY(void *, hw_breakpoint_exceptions_notify)
+BL_DENTRY(void *, kprobe_exceptions_notify)
@@ arch/x86/kernel/fbt_blacklist.h (new)
+BL_DENTRY(void *, rcu_dynticks_eqs_exit)
+BL_DENTRY(void *, trace_rcu_dyntick)
+BL_DENTRY(void *, rcu_nmi_exit)
++BL_DENTRY(void *, rcu_irq_exit)
++BL_DENTRY(void *, rcu_nmi_exit_common)
+BL_DENTRY(void *, rcu_dynticks_eqs_enter)
+BL_DENTRY(void *, ist_exit)
+
@@ arch/x86/kernel/traps.c: static __always_inline void __user *error_get_trap_addr
DEFINE_IDTENTRY(exc_divide_error)
{
-- do_error_trap(regs, 0, "divide_error", X86_TRAP_DE, SIGFPE,
+- do_error_trap(regs, 0, "divide error", X86_TRAP_DE, SIGFPE,
- FPE_INTDIV, error_get_trap_addr(regs));
-+ return do_error_trap(regs, 0, "divide_error", X86_TRAP_DE, SIGFPE,
++ return do_error_trap(regs, 0, "divide error", X86_TRAP_DE, SIGFPE,
+ FPE_INTDIV, error_get_trap_addr(regs));
}
15: c5af61db4875 = 15: ec718dc20396 dtrace: fbt provider, modular components
16: 5617fe25b354 ! 16: 64fa0d2f10bc dtrace, arm: arm64 port
@@ arch/arm64/kernel/fbt_blacklist.h (new)
+ */
+BL_SENTRY(void *, notify_die)
+BL_DENTRY(void *, notifier_call_chain)
-+BL_SENTRY(typeof(__atomic_notifier_call_chain), __atomic_notifier_call_chain)
++BL_SENTRY(typeof(atomic_notifier_call_chain_robust), atomic_notifier_call_chain_robust)
+BL_SENTRY(typeof(atomic_notifier_call_chain), atomic_notifier_call_chain)
-+BL_SENTRY(typeof(__raw_notifier_call_chain), __raw_notifier_call_chain)
++BL_SENTRY(typeof(raw_notifier_call_chain_robust), raw_notifier_call_chain_robust)
+BL_SENTRY(typeof(raw_notifier_call_chain), raw_notifier_call_chain)
+BL_DENTRY(void *, hw_breakpoint_exceptions_notify)
+BL_DENTRY(void *, kprobe_exceptions_notify)
17: e756f3b9d344 ! 17: 231c240c25a3 dtrace: add SDT probes
@@ block/blk-core.c: static noinline_for_stack bool submit_bio_checks(struct bio *b
## fs/exec.c ##
@@
- #include <linux/oom.h>
#include <linux/compat.h>
#include <linux/vmalloc.h>
+ #include <linux/io_uring.h>
+#include <linux/sdt.h>
#include <linux/dtrace_os.h>
@@ kernel/exit.c: void __noreturn do_exit(long code)
## kernel/fork.c ##
@@
- #include <linux/stackleak.h>
#include <linux/kasan.h>
#include <linux/scs.h>
+ #include <linux/io_uring.h>
+#include <linux/sdt.h>
#include <linux/dtrace_task_impl.h>
18: be29c750e742 < -: ------------ dtrace: add rcu_irq_exit and rcu_nmi_exit_common to FBT blacklist
19: 343e811c4804 = 18: 20d378e5ba7d dtrace: add sample script for building DTrace on Fedora
20: 1c33df24bb35 = 19: c50a2647137b locking: publicize mutex_owner and mutex_owned again
21: 0236c7f19fef = 20: 19d11e414075 dtrace, sdt: use gawk everywhere, not awk
22: c731ef8ca2d6 = 21: 90487031ad45 dtrace: move _sdt_probes array into a separately-compiled file
23: 8a688bf9ed2b = 22: 3fa35bf340e2 ctf: fix bashism
More information about the DTrace-devel
mailing list