From 426eff93d09b3e6709d6e6d29a285ef4bcdf60c6 Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Fri, 12 Oct 2018 15:02:06 -0400 Subject: [PATCH] Fix: btrfs instrumentation namespacing Triggers this warning: [ 47.922818] WARNING: CPU: 29 PID: 1163 at /home/efficios/git/lttng-modules/lttng-probes.c:83 fixup_lazy_probes+0x1fb/0x210 [lttng_tracer] [ 47.951661] Modules linked in: lttng_probe_compaction(O+) lttng_probe_btrfs(O) lttng_probe_block(O) lttng_ring_buffer_metadata_mmap_client(O) lttng_ring_buffer_client_mmap_overwrite(O) lttng_ring_buffer_client_mmap_discard(O) lttng_ring_buffer_metadata_client(O) lttng_ring_buffer_client_overwrite(O) lttng_ring_buffer_client_discard(O) lttng_tracer(O) lttng_statedump(O) lttng_ftrace(O) lttng_kprobes(O) lttng_clock(O) lttng_uprobes(O) lttng_lib_ring_buffer(O) lttng_kretprobes(O) [ 48.039200] CPU: 29 PID: 1163 Comm: modprobe Tainted: G O 4.19.0-rc7+ #19 [ 48.055628] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011 [ 48.078273] RIP: 0010:fixup_lazy_probes+0x1fb/0x210 [lttng_tracer] [ 48.092257] Code: 01 48 39 d0 76 24 43 80 3c 3a 5f 75 1d 44 8b 44 24 14 4c 8b 4c 24 08 41 83 c0 01 45 39 45 10 0f 86 7a fe ff ff e9 6c ff ff ff <0f> 0b e9 6e fe ff ff 0f 1f 40 00 66 2e 0f 1f 84 00 00 00 00 00 0f [ 48.141947] RSP: 0018:ffffafe74777bc40 EFLAGS: 00010286 [ 48.153733] RAX: 00000000ffffffff RBX: dead000000000200 RCX: 0000000000000061 [ 48.173986] RDX: 0000000000000005 RSI: ffffffffc04b728c RDI: ffffffffc04b74a5 [ 48.193595] RBP: dead000000000100 R08: 0000000000000062 R09: ffffffffc04bd040 [ 48.211573] R10: ffffffffc04b74a5 R11: ffffffff920e204d R12: ffffffffffffffff [ 48.232131] R13: ffffffffc04bd000 R14: ffffffffc03f0078 R15: 0000000000000005 [ 48.246832] FS: 00007f5495093540(0000) GS:ffff8fcf0fb40000(0000) knlGS:0000000000000000 [ 48.267475] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 48.280348] CR2: 00007ffde00f8328 CR3: 00000018078a2001 CR4: 00000000001606e0 [ 48.302404] Call Trace: [ 48.309201] lttng_probe_register+0xd5/0xe0 [lttng_tracer] [ 48.326993] ? __event_probe__compaction_isolate_template+0x2c0/0x2c0 [lttng_probe_compaction] [ 48.345702] do_one_initcall+0x46/0x1c8 [ 48.360147] ? kobject_uevent_env+0x117/0x810 [ 48.370388] ? _cond_resched+0x15/0x40 [ 48.380649] ? kmem_cache_alloc_trace+0x153/0x1c0 [ 48.394706] do_init_module+0x5b/0x20b [ 48.404412] load_module+0x2194/0x2980 [ 48.418759] ? ima_post_read_file+0xe2/0x120 [ 48.427716] ? __do_sys_finit_module+0xe9/0x110 [ 48.438226] __do_sys_finit_module+0xe9/0x110 [ 48.452983] do_syscall_64+0x65/0x190 [ 48.461521] entry_SYSCALL_64_after_hwframe+0x44/0xa9 [ 48.473173] RIP: 0033:0x7f5494ba6839 [ 48.486630] Code: 00 f3 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 1f f6 2c 00 f7 d8 64 89 01 48 [ 48.529108] RSP: 002b:00007ffde00fb408 EFLAGS: 00000246 ORIG_RAX: 0000000000000139 [ 48.549652] RAX: ffffffffffffffda RBX: 000055d326ee2ac0 RCX: 00007f5494ba6839 [ 48.564325] RDX: 0000000000000000 RSI: 000055d326cbac2e RDI: 0000000000000005 [ 48.582576] RBP: 000055d326cbac2e R08: 0000000000000000 R09: 000055d326ee2ac0 [ 48.596892] R10: 0000000000000005 R11: 0000000000000246 R12: 0000000000000000 [ 48.617576] R13: 000055d326ee2d80 R14: 0000000000040000 R15: 000055d326ee2ac0 [ 48.633713] ---[ end trace c265591e0ada440c ]--- Signed-off-by: Mathieu Desnoyers --- instrumentation/events/lttng-module/btrfs.h | 96 +++++++++++++++++---- 1 file changed, 80 insertions(+), 16 deletions(-) diff --git a/instrumentation/events/lttng-module/btrfs.h b/instrumentation/events/lttng-module/btrfs.h index c9a90ee9..6d3d055c 100644 --- a/instrumentation/events/lttng-module/btrfs.h +++ b/instrumentation/events/lttng-module/btrfs.h @@ -726,7 +726,11 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs_delayed_tree_ref, ) ) -LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs_delayed_tree_ref, add_delayed_tree_ref, +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(btrfs_delayed_tree_ref, + + add_delayed_tree_ref, + + btrfs_add_delayed_tree_ref, TP_PROTO(const struct btrfs_fs_info *fs_info, const struct btrfs_delayed_ref_node *ref, @@ -736,7 +740,11 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs_delayed_tree_ref, add_delayed_tree_ref, TP_ARGS(fs_info, ref, full_ref, action) ) -LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs_delayed_tree_ref, run_delayed_tree_ref, +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(btrfs_delayed_tree_ref, + + run_delayed_tree_ref, + + btrfs_run_delayed_tree_ref, TP_PROTO(const struct btrfs_fs_info *fs_info, const struct btrfs_delayed_ref_node *ref, @@ -768,7 +776,11 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs_delayed_tree_ref, ) ) -LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs_delayed_tree_ref, add_delayed_tree_ref, +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(btrfs_delayed_tree_ref, + + add_delayed_tree_ref, + + btrfs_add_delayed_tree_ref, TP_PROTO(struct btrfs_fs_info *fs_info, struct btrfs_delayed_ref_node *ref, @@ -778,7 +790,11 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs_delayed_tree_ref, add_delayed_tree_ref, TP_ARGS(fs_info, ref, full_ref, action) ) -LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs_delayed_tree_ref, run_delayed_tree_ref, +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(btrfs_delayed_tree_ref, + + run_delayed_tree_ref, + + btrfs_run_delayed_tree_ref, TP_PROTO(struct btrfs_fs_info *fs_info, struct btrfs_delayed_ref_node *ref, @@ -808,7 +824,11 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs_delayed_tree_ref, ) ) -LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs_delayed_tree_ref, add_delayed_tree_ref, +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(btrfs_delayed_tree_ref, + + add_delayed_tree_ref, + + btrfs_add_delayed_tree_ref, TP_PROTO(const struct btrfs_delayed_ref_node *ref, const struct btrfs_delayed_tree_ref *full_ref, @@ -817,7 +837,11 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs_delayed_tree_ref, add_delayed_tree_ref, TP_ARGS(ref, full_ref, action) ) -LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs_delayed_tree_ref, run_delayed_tree_ref, +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(btrfs_delayed_tree_ref, + + run_delayed_tree_ref, + + btrfs_run_delayed_tree_ref, TP_PROTO(const struct btrfs_delayed_ref_node *ref, const struct btrfs_delayed_tree_ref *full_ref, @@ -846,7 +870,11 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs_delayed_tree_ref, ) ) -LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs_delayed_tree_ref, add_delayed_tree_ref, +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(btrfs_delayed_tree_ref, + + add_delayed_tree_ref, + + btrfs_add_delayed_tree_ref, TP_PROTO(struct btrfs_delayed_ref_node *ref, struct btrfs_delayed_tree_ref *full_ref, @@ -855,7 +883,11 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs_delayed_tree_ref, add_delayed_tree_ref, TP_ARGS(ref, full_ref, action) ) -LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs_delayed_tree_ref, run_delayed_tree_ref, +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(btrfs_delayed_tree_ref, + + run_delayed_tree_ref, + + btrfs_run_delayed_tree_ref, TP_PROTO(struct btrfs_delayed_ref_node *ref, struct btrfs_delayed_tree_ref *full_ref, @@ -935,7 +967,11 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs_delayed_data_ref, ) ) -LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs_delayed_data_ref, add_delayed_data_ref, +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(btrfs_delayed_data_ref, + + add_delayed_data_ref, + + btrfs_add_delayed_data_ref, TP_PROTO(const struct btrfs_fs_info *fs_info, const struct btrfs_delayed_ref_node *ref, @@ -945,7 +981,11 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs_delayed_data_ref, add_delayed_data_ref, TP_ARGS(fs_info, ref, full_ref, action) ) -LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs_delayed_data_ref, run_delayed_data_ref, +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(btrfs_delayed_data_ref, + + run_delayed_data_ref, + + btrfs_run_delayed_data_ref, TP_PROTO(const struct btrfs_fs_info *fs_info, const struct btrfs_delayed_ref_node *ref, @@ -978,7 +1018,11 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs_delayed_data_ref, ) ) -LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs_delayed_data_ref, add_delayed_data_ref, +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(btrfs_delayed_data_ref, + + add_delayed_data_ref, + + btrfs_add_delayed_data_ref, TP_PROTO(struct btrfs_fs_info *fs_info, struct btrfs_delayed_ref_node *ref, @@ -988,7 +1032,11 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs_delayed_data_ref, add_delayed_data_ref, TP_ARGS(fs_info, ref, full_ref, action) ) -LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs_delayed_data_ref, run_delayed_data_ref, +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(btrfs_delayed_data_ref, + + run_delayed_data_ref, + + btrfs_run_delayed_data_ref, TP_PROTO(struct btrfs_fs_info *fs_info, struct btrfs_delayed_ref_node *ref, @@ -1019,7 +1067,11 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs_delayed_data_ref, ) ) -LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs_delayed_data_ref, add_delayed_data_ref, +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(btrfs_delayed_data_ref, + + add_delayed_data_ref, + + btrfs_add_delayed_data_ref, TP_PROTO(const struct btrfs_delayed_ref_node *ref, const struct btrfs_delayed_data_ref *full_ref, @@ -1028,7 +1080,11 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs_delayed_data_ref, add_delayed_data_ref, TP_ARGS(fs_info, ref, full_ref, action) ) -LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs_delayed_data_ref, run_delayed_data_ref, +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(btrfs_delayed_data_ref, + + run_delayed_data_ref, + + btrfs_run_delayed_data_ref, TP_PROTO(const struct btrfs_delayed_ref_node *ref, const struct btrfs_delayed_data_ref *full_ref, @@ -1058,7 +1114,11 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs_delayed_data_ref, ) ) -LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs_delayed_data_ref, add_delayed_data_ref, +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(btrfs_delayed_data_ref, + + add_delayed_data_ref, + + btrfs_add_delayed_data_ref, TP_PROTO(struct btrfs_delayed_ref_node *ref, struct btrfs_delayed_data_ref *full_ref, @@ -1067,7 +1127,11 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs_delayed_data_ref, add_delayed_data_ref, TP_ARGS(fs_info, ref, full_ref, action) ) -LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs_delayed_data_ref, run_delayed_data_ref, +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(btrfs_delayed_data_ref, + + run_delayed_data_ref, + + btrfs_run_delayed_data_ref, TP_PROTO(struct btrfs_delayed_ref_node *ref, struct btrfs_delayed_data_ref *full_ref, -- 2.34.1