Michael Jeanson [Tue, 7 Mar 2023 16:10:26 +0000 (11:10 -0500)]
fix: net: add location to trace_consume_skb() (v6.3)
See upstream commit :
commit
dd1b527831a3ed659afa01b672d8e1f7e6ca95a5
Author: Eric Dumazet <edumazet@google.com>
Date: Thu Feb 16 15:47:18 2023 +0000
net: add location to trace_consume_skb()
kfree_skb() includes the location, it makes sense
to add it to consume_skb() as well.
Change-Id: I8d871187d90e7fe113a63e209b00aebe0df475f3
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Tue, 7 Mar 2023 16:26:25 +0000 (11:26 -0500)]
fix: btrfs: pass find_free_extent_ctl to allocator tracepoints (v6.3)
See upstream commit :
commit
cfc2de0fce015d4249c674ef9f5e0b4817ba5c53
Author: Boris Burkov <boris@bur.io>
Date: Thu Dec 15 16:06:31 2022 -0800
btrfs: pass find_free_extent_ctl to allocator tracepoints
The allocator tracepoints currently have a pile of values from ffe_ctl.
In modifying the allocator and adding more tracepoints, I found myself
adding to the already long argument list of the tracepoints. It makes it
a lot simpler to just send in the ffe_ctl itself.
Change-Id: Iab4132a9d3df3a6369591a50fb75374b1e399fa4
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Tue, 7 Mar 2023 17:05:00 +0000 (12:05 -0500)]
fix: uuid: Decouple guid_t and uuid_le types and respective macros (v6.3)
See upstream commit :
commit
5e6a51787fef20b849682d8c49ec9c2beed5c373
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date: Tue Jan 24 15:38:38 2023 +0200
uuid: Decouple guid_t and uuid_le types and respective macros
The guid_t type and respective macros are being used internally only.
The uuid_le has its user outside the kernel. Decouple these types and
macros, and make guid_t completely internal type to the kernel.
Change-Id: I8644fd139b0630e9cf18886b84e33bffab1e5abd
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Tue, 7 Mar 2023 16:41:14 +0000 (11:41 -0500)]
fix: mm: introduce vma->vm_flags wrapper functions (v6.3)
See upstream commit :
commit
bc292ab00f6c7a661a8a605c714e8a148f629ef6
Author: Suren Baghdasaryan <surenb@google.com>
Date: Thu Jan 26 11:37:47 2023 -0800
mm: introduce vma->vm_flags wrapper functions
vm_flags are among VMA attributes which affect decisions like VMA merging
and splitting. Therefore all vm_flags modifications are performed after
taking exclusive mmap_lock to prevent vm_flags updates racing with such
operations. Introduce modifier functions for vm_flags to be used whenever
flags are updated. This way we can better check and control correct
locking behavior during these updates.
Change-Id: I2cf662420d9d7748e5e310d3ea4bac98ba7d7f94
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Wed, 18 Jan 2023 21:32:04 +0000 (16:32 -0500)]
fix: jbd2: use the correct print format (v5.4.229)
See upstream commit :
commit
ecb9d0d2e123874bcdd2efdecda0f4e0c3dc566d
Author: Bixuan Cui <cuibixuan@linux.alibaba.com>
Date: Tue Oct 11 19:33:44 2022 +0800
jbd2: use the correct print format
[ Upstream commit
d87a7b4c77a997d5388566dd511ca8e6b8e8a0a8 ]
The print format error was found when using ftrace event:
<...>-1406 [000] ....
23599442.895823: jbd2_end_commit: dev 252,8 transaction -
1866216965 sync 0 head -
1866217368
<...>-1406 [000] ....
23599442.896299: jbd2_start_commit: dev 252,8 transaction -
1866216964 sync 0
Use the correct print format for transaction, head and tid.
Change-Id: Ieee3d39ed1f2515e096e87d18b5ea8f921c54bd0
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Tue, 17 Jan 2023 17:16:04 +0000 (12:16 -0500)]
fix: jbd2 upper bound for v5.10.163
Use the correct upper bound of 5,11,0.
Change-Id: I435b44b940c7346ed8c3ef0d445365ed156702d0
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Tue, 17 Jan 2023 16:03:12 +0000 (11:03 -0500)]
fix: jbd2: use the correct print format (v5.10.163)
See upstream commit :
commit
d87a7b4c77a997d5388566dd511ca8e6b8e8a0a8
Author: Bixuan Cui <cuibixuan@linux.alibaba.com>
Date: Tue Oct 11 19:33:44 2022 +0800
jbd2: use the correct print format
The print format error was found when using ftrace event:
<...>-1406 [000] ....
23599442.895823: jbd2_end_commit: dev 252,8 transaction -
1866216965 sync 0 head -
1866217368
<...>-1406 [000] ....
23599442.896299: jbd2_start_commit: dev 252,8 transaction -
1866216964 sync 0
Use the correct print format for transaction, head and tid.
Change-Id: I7601f5cbb86495c2607be7b11e02724c90b3ebf9
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Mon, 16 Jan 2023 20:01:51 +0000 (15:01 -0500)]
fix: btrfs: move accessor helpers into accessors.h (v6.2)
See upstream commit :
commit
07e81dc94474eb62705c6f96d9ab1a5a797b8703
Author: Josef Bacik <josef@toxicpanda.com>
Date: Wed Oct 19 10:51:00 2022 -0400
btrfs: move accessor helpers into accessors.h
This is a large patch, but because they're all macros it's impossible to
split up. Simply copy all of the item accessors in ctree.h and paste
them in accessors.h, and then update any files to include the header so
everything compiles.
Change-Id: I1f0876dd8b7a8687f6802b60c3e3baabd017cc52
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Thu, 12 Jan 2023 18:52:22 +0000 (13:52 -0500)]
fix: jbd2: use the correct print format
See upstream commit :
commit
d87a7b4c77a997d5388566dd511ca8e6b8e8a0a8
Author: Bixuan Cui <cuibixuan@linux.alibaba.com>
Date: Tue Oct 11 19:33:44 2022 +0800
jbd2: use the correct print format
The print format error was found when using ftrace event:
<...>-1406 [000] ....
23599442.895823: jbd2_end_commit: dev 252,8 transaction -
1866216965 sync 0 head -
1866217368
<...>-1406 [000] ....
23599442.896299: jbd2_start_commit: dev 252,8 transaction -
1866216964 sync 0
Use the correct print format for transaction, head and tid.
Change-Id: Ic053f0e0c1e24ebc75bae51d07696aaa5e1c0094
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Thu, 15 Dec 2022 21:11:03 +0000 (16:11 -0500)]
syscall inout table: fix old_select and old_mmap
Change-Id: I2e3c7a75ef6d4434daa06c389b1fa5bd1857df33
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Thu, 15 Dec 2022 20:34:37 +0000 (15:34 -0500)]
Fix syscall generator scripts
Two small fixes for the syscall header generation scripts.
Check that the number of arguments match between the architecture
syscall list and the inout table definition.
Remove the duplication of arguments to make sure the per architecture
overrides are applied.
Change-Id: Ie20ef9030e57134265ae0ae885a87c5e8b3f61b1
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Tue, 6 Dec 2022 16:33:11 +0000 (11:33 -0500)]
Update syscall inout table
Change-Id: I515c8f68aa5c2dce1e7433746ccbf64e0ce376d1
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Thu, 1 Dec 2022 18:32:33 +0000 (13:32 -0500)]
Split syscalls headers and tools
Move the syscall headers tooling out of the include/ directory.
Change-Id: Icd507326aeac9cf28178f0e74b1d3f4812900303
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Tue, 22 Nov 2022 16:30:59 +0000 (11:30 -0500)]
Cleanup unused Makefile
The syscall extractor module was moved to 'src' directory, remove the
unused Makefile that was left over.
Change-Id: Id249cac6f7b87988c2e0b548c08b708f72335da6
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Jérémie Galarneau [Tue, 13 Dec 2022 17:32:30 +0000 (12:32 -0500)]
Build fix: arm64: incomplete landlock_rule_type type
While building the arm32 compatibility syscall instrumentation for
arm64, the build fails because types related to `landlock` are unknown.
Fixes:
/root/lttng-modules/src/../include/instrumentation/syscalls/headers/arm-32-syscalls_pointers.h:1428:138: error: conversion to incomplete type
1428 | TP_FIELDS(sc_exit(ctf_integer(long, ret, ret)) sc_inout(ctf_integer(const int, ruleset_fd, ruleset_fd)) sc_inout(ctf_integer(const enum landlock_rule_type, rule
_type, rule_type)) sc_inout(ctf_integer(const void *const, rule_attr, rule_attr)) sc_inout(ctf_integer(const __u32, flags, flags)))
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Id898958b33ec241be792a731560f227917e35010
Jérémie Galarneau [Tue, 13 Dec 2022 17:32:06 +0000 (12:32 -0500)]
Fix: define old_sigaction as compat_old_sigaction in arm32 compat
In a follow-up patch which updates the instrumentation for arm32, the
instrumentation of the old_sigaction() syscall would fail to build when
targeting a 64-bit kernel.
In that context, old_sigaction becomes compat_old_sigaction which is a
syscall that can be disabled (it was superseded by rt_sigaction a long
time ago).
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I3d9e155f7943cc4b768e13ebd25b671e46df9659
Mathieu Desnoyers [Thu, 1 Dec 2022 16:33:20 +0000 (11:33 -0500)]
Fix: in_x32_syscall was introduced in v4.7.0
Prior to v4.7.0, is_x32_task() was the API to query whether the current
system call is following the x32 ABI.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I783bd3bb46ec5e863ae209f79cee2f1bb415e661
Mathieu Desnoyers [Wed, 30 Nov 2022 20:41:02 +0000 (15:41 -0500)]
Explicitly skip tracing x32 system calls
x86 x32 system calls are not supported by LTTng. They are currently not
traced simply because their system call number is beyond the range of
NR_compat_syscalls.
However, this mostly happens by accident rather than by design.
Enforce this with an explicit check for in_x32_syscall(), which clearly
documents that those are not supported.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I1235c32c5cf03612bf9c36785cf7c4f8f49d292b
Michael Jeanson [Thu, 24 Nov 2022 19:25:33 +0000 (14:25 -0500)]
fix: kallsyms wrapper on ppc64el
The 'PPC64_ELF_ABI_v2' macro in 'asm/types.h' was removed in v5.19 and
replaced by a config option 'CONFIG_PPC64_ELF_ABI_V2'.
See upstream commit :
commit
5b89492c03e5c0a2c259b97d7d4c1bb9b02860aa
Author: Christophe Leroy <christophe.leroy@csgroup.eu>
Date: Mon May 9 07:36:08 2022 +0200
powerpc: Finalise cleanup around ABI use
Now that we have CONFIG_PPC64_ELF_ABI_V1 and CONFIG_PPC64_ELF_ABI_V2,
get rid of all indirect detection of ABI version.
Link: https://lore.kernel.org/r/709d9d69523c14c8a9fba4486395dca0f2d675b1.1652074503.git.christophe.leroy@csgroup.eu
Change-Id: Ibd00e35cab5516a6224bdfa5a6b540119b42dc55
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Mon, 21 Nov 2022 19:45:24 +0000 (14:45 -0500)]
Fix: don't build 64-bit counter client on 32-bit arch
A typo in the Makefile resulted in the 64-bit counter client being built
regardless of the bitness of the architecture.
Change-Id: Icde0f15485ace2f3a7935c1e333dc0abd378b610
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Mon, 21 Nov 2022 18:50:43 +0000 (13:50 -0500)]
Remove obsolete -ckt debian kernel version support
Change-Id: I71ee764a0e6371dea6265d44d4056385335b717c
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Mon, 21 Nov 2022 18:38:52 +0000 (13:38 -0500)]
Cleanup duplicated include in wrapper/timer.h
Change-Id: I7a2682d4a584954118fc110a1e374a107c4361ab
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Mon, 21 Nov 2022 17:28:17 +0000 (12:28 -0500)]
Drop support for kernels < 4.4 from writeback instrumentation
Change-Id: I92959e40f44371fad4a857f57726e243fb2920dd
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Mon, 21 Nov 2022 17:23:34 +0000 (12:23 -0500)]
Drop support for kernels < 4.4 from workqueue instrumentation
Change-Id: Ic1e7a4a7516d2091093b726aa351c1ac2ff3ec0a
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Mon, 21 Nov 2022 17:22:40 +0000 (12:22 -0500)]
Drop support for kernels < 4.4 from timer instrumentation
Change-Id: I17bbdaf79a548d0b9f3247a705c44a753c19b26b
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Mon, 21 Nov 2022 17:21:11 +0000 (12:21 -0500)]
Drop support for kernels < 4.4 from scsi instrumentation
Change-Id: I714da0df56c0101dd6a05c19477c0658f18de053
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Mon, 21 Nov 2022 17:18:45 +0000 (12:18 -0500)]
Drop support for kernels < 4.4 from sched instrumentation
Change-Id: I14e8ceb3ed5dedb294dbbfecce454cd05d3417b8
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Mon, 21 Nov 2022 17:14:57 +0000 (12:14 -0500)]
Drop support for kernels < 4.4 from rpc instrumentation
Change-Id: I972d7b1397faacf901f43783fb0375a2e1c6a8f1
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Mon, 21 Nov 2022 17:12:40 +0000 (12:12 -0500)]
Drop support for kernels < 4.4 from rcu instrumentation
Change-Id: I4c1aabf233f4f8ccfdd6c93469c10efe79507cd8
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Mon, 21 Nov 2022 17:05:12 +0000 (12:05 -0500)]
Drop support for kernels < 4.4 from random instrumentation
Change-Id: I6f314c2ceb86e72ebad35089169885161cda30de
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Mon, 21 Nov 2022 17:03:16 +0000 (12:03 -0500)]
Drop support for kernels < 4.4 from printk instrumentation
Change-Id: Ibb707f10a386fba1971081d380c46da247bf688f
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Mon, 21 Nov 2022 17:02:09 +0000 (12:02 -0500)]
Drop support for kernels < 4.4 from power instrumentation
Change-Id: I775b227042965a946d5ff1f42d2b350eae044742
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Mon, 21 Nov 2022 17:01:13 +0000 (12:01 -0500)]
Drop support for kernels < 4.4 from net instrumentation
Change-Id: I0fdf030897f01eec18931e416a2cfe241c780795
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Mon, 21 Nov 2022 17:00:15 +0000 (12:00 -0500)]
Drop support for kernels < 4.4 from module instrumentation
Change-Id: Idcd0cd197272d2efbd511c05afff6240b72740ae
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Mon, 21 Nov 2022 16:58:56 +0000 (11:58 -0500)]
Drop support for kernels < 4.4 from mm_vmscan instrumentation
Change-Id: If1fa6ff0239241b4039bb8ad8d7ed38072079032
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Mon, 21 Nov 2022 16:54:30 +0000 (11:54 -0500)]
Drop support for kernels < 4.4 from lttng-statedump instrumentation
Change-Id: I70f8b7da3355f29c206d691b48bf801f3103a527
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Mon, 21 Nov 2022 16:52:05 +0000 (11:52 -0500)]
Drop support for kernels < 4.4 from kmem instrumentation
Change-Id: I83541b99c0e1960cb5b8e4df69a46ed8e0ee7ee9
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Mon, 21 Nov 2022 16:50:36 +0000 (11:50 -0500)]
Drop support for kernels < 4.4 from jbd instrumentation
Change-Id: I881e5fb26808ffb903748ab72554fddd8bdbec55
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Mon, 21 Nov 2022 16:49:45 +0000 (11:49 -0500)]
Drop support for kernels < 4.4 from jbd2 instrumentation
Change-Id: Ia954795f4a5cc4d718eec70b4e6d9919e32bbf27
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Mon, 21 Nov 2022 16:48:00 +0000 (11:48 -0500)]
Drop support for kernels < 4.4 from ext4 instrumentation
Change-Id: I4b9635ad3519e080db77020979aeba25cb01d892
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Mon, 21 Nov 2022 16:39:21 +0000 (11:39 -0500)]
Drop support for kernels < 4.4 from compaction instrumentation
Change-Id: Ic9305d3860ff3951f08e15e25d2a2f2bd0ef7913
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Mon, 21 Nov 2022 16:37:39 +0000 (11:37 -0500)]
Drop support for kernels < 4.4 from btrfs instrumentation
Change-Id: Ib54ad6745ba214cb7f9829ca75a2685145985441
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Mon, 21 Nov 2022 16:31:06 +0000 (11:31 -0500)]
Drop support for kernels < 4.4 from block instrumentation
Change-Id: I8b0ae2055fabf21274221d0a25a11615c34fbc22
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Fri, 18 Nov 2022 23:18:28 +0000 (18:18 -0500)]
Drop support for kernels < 4.4 from asoc instrumentation
Change-Id: Ie0ba36a8aaa9106a17e5819767ab3fdee5cdd260
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Fri, 18 Nov 2022 23:14:46 +0000 (18:14 -0500)]
Drop support for kernels < 4.4 from kvm instrumentation
Change-Id: I01297f0e1b3e0e1121f8b7222059ef32e634d137
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Michael Jeanson [Fri, 18 Nov 2022 22:49:02 +0000 (17:49 -0500)]
Drop support for kernels < 4.4 from LTTng tracer core
Change-Id: I16a57b7d7361d902b18de38faa33943430dedb97
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Michael Jeanson [Fri, 18 Nov 2022 22:38:49 +0000 (17:38 -0500)]
Drop support for kernels < 4.4 from ext3 and kvm probes
This effectively removes the ext3 probe.
Change-Id: I77480103b4ef1f8d29e792a4f2d27e162d1fa94d
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Fri, 18 Nov 2022 22:18:26 +0000 (17:18 -0500)]
Drop support for kernels < 4.4 from perf counters context
Change-Id: I6b839954b0d9bacc81e4d943bfe1d32471ba9962
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Fri, 18 Nov 2022 22:15:27 +0000 (17:15 -0500)]
Drop support for kernels < 4.4 from ns contexts
Change-Id: Ie10299af93193415adfafeccb1c59c4b8c0a0bc0
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Fri, 18 Nov 2022 22:00:31 +0000 (17:00 -0500)]
Drop support for kernels < 4.4 from 'wrapper/splice.h'
Change-Id: I7dfcb85e2d0195fd21523646cbdf938f526a3c1e
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Fri, 18 Nov 2022 21:55:55 +0000 (16:55 -0500)]
Drop support for kernels < 4.4 from 'wrapper/irqdesc.h'
Change-Id: I29331b3cef4e59b6d5d34d869374dc8ed92a010d
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Fri, 18 Nov 2022 21:50:59 +0000 (16:50 -0500)]
Drop support for kernels < 4.4 from 'wrapper/writeback.h'
Change-Id: Ie9589e8eee3ca74694dd0671e4eb5dbb53882225
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Fri, 18 Nov 2022 21:48:32 +0000 (16:48 -0500)]
Drop support for kernels < 4.4 from 'wrapper/vmalloc.h'
Change-Id: I4191d7b2899e8ebf754ce03566cc87220557742e
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Fri, 18 Nov 2022 21:42:38 +0000 (16:42 -0500)]
Drop support for kernels < 4.4 from 'wrapper/tracepoint.h'
Change-Id: Icab9656bc3d9d22d9887191af2f7f465323c5c2a
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Fri, 18 Nov 2022 21:37:22 +0000 (16:37 -0500)]
Drop support for kernels < 4.4 from 'wrapper/trace-clock.h'
Change-Id: I252af5b4e7948e4798ad9f70a57ac42a62d506ef
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Fri, 18 Nov 2022 21:34:33 +0000 (16:34 -0500)]
Drop support for kernels < 4.4 from 'wrapper/page_alloc.h'
Change-Id: I1a702b78a5293ce631a7955fe67145fdf7445cb6
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Fri, 18 Nov 2022 21:28:56 +0000 (16:28 -0500)]
Drop support for kernels < 4.4 from 'wrapper/mm.h'
Change-Id: I9bdbecf08654d699f8f45fbc7ba862b1fbd822eb
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Fri, 18 Nov 2022 21:26:21 +0000 (16:26 -0500)]
Drop support for kernels < 4.4 from 'wrapper/fdtable.h'
Change-Id: Ib398db572d18c9ad3d08a5f21fe9285261fae0d1
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Fri, 18 Nov 2022 20:59:56 +0000 (15:59 -0500)]
Drop 'linux/user_namespace.h' wrapper
Change-Id: I38bb6ff741126e18a4a1deb59471adb68dacdcb0
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Fri, 18 Nov 2022 17:34:26 +0000 (12:34 -0500)]
Drop 'linux/uprobes.h' wrapper
Change-Id: I6870122c24a9b8cb3cf8c5c0c75a78c2ec96f32b
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Fri, 18 Nov 2022 17:30:39 +0000 (12:30 -0500)]
Drop 'wrapper/time.h' wrapper
Change-Id: I15ae7f5436e5fc2dfa2b0f9b878810a07fe8a5e9
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Fri, 18 Nov 2022 17:27:19 +0000 (12:27 -0500)]
Drop 'linux/perf_events.h' wrapper
Change-Id: Id4be9d9fbb70aa8213b12b2073a847cb81238993
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Fri, 18 Nov 2022 17:25:25 +0000 (12:25 -0500)]
Drop 'linux/percpu-defs.h' wrapper
Change-Id: Ie9fb775602f78fc205d0b2a3b9adeb2874eab8fc
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Fri, 18 Nov 2022 17:07:09 +0000 (12:07 -0500)]
Drop 'wrapper/namespace.h' wrapper
Change-Id: Ib7ff96f36310cdcbe29fed279ab4a03ca96195e8
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Fri, 18 Nov 2022 16:57:22 +0000 (11:57 -0500)]
Drop 'linux/irq.h' wrapper
Change-Id: Idaebcb77e3cad262661385234fba284fa03676a9
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Fri, 18 Nov 2022 16:52:46 +0000 (11:52 -0500)]
Drop 'linux/file.h' wrapper
Change-Id: I1f4e0630be4af0f8af98655c7771974f41d73517
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Fri, 18 Nov 2022 16:47:53 +0000 (11:47 -0500)]
Drop 'asm/barrier.h' wrapper
Change-Id: I2901758329083bceabcf2cb6f4a3ffae7fa87df7
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Fri, 18 Nov 2022 16:42:33 +0000 (11:42 -0500)]
Drop 'linux/atomic.h' wrapper
Change-Id: Ia4341ded38739dbdd7db5fcd4b5bc192b2150c11
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Fri, 18 Nov 2022 19:36:53 +0000 (14:36 -0500)]
Set kernel baseline to v4.4
Change-Id: Ic1b6596b1c49e57660538322ec9dbbc84ee9a036
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 18 Nov 2022 15:31:32 +0000 (10:31 -0500)]
Fix: Use ifdef for CONFIG_COMPAT_OLD_SIGACTION
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I7ad6e10b134b328293013ca11474cfff58dbc559
Mathieu Desnoyers [Fri, 18 Nov 2022 15:01:53 +0000 (10:01 -0500)]
Fix: system call instrumentation build failure on v3.0-v3.10 RT kernel
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I3f6f8e428c226b950138208f88a46015d843d2f9
Mathieu Desnoyers [Thu, 17 Nov 2022 20:28:12 +0000 (15:28 -0500)]
Fix: add missing typedef and forward declarations for old kernels
While we are updating this, remove duplicated code between header and
implementation.
Reorganise list by alphabetical order.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I79f1877d965084a77a1fdd573f8e227cd7f5ce74
Jérémie Galarneau [Fri, 11 Nov 2022 17:07:12 +0000 (12:07 -0500)]
Add generated arm-32 syscall instrumentation for kernel 6.0.7
Generated by running:
./lttng-syscalls-generate-headers.sh pointers 6.0.7 arm-32-syscalls arm-32 32 && ./lttng-syscalls-generate-headers.sh integers 6.0.7 arm-32-syscalls arm-32 32
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I2d76629b150627670fed23d94e80ae808c09d24b
Jérémie Galarneau [Tue, 8 Nov 2022 22:49:51 +0000 (17:49 -0500)]
Add generated x86-32 syscall instrumentation for kernel 6.0.7
Generated by running:
./lttng-syscalls-generate-headers.sh pointers 6.0.7 x86-32-syscalls x86-32 32 && ./lttng-syscalls-generate-headers.sh integers 6.0.7 x86-32-syscalls x86-32 32
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Ia6513b25b4556a774317f89210c6f8ad8cbc8723
Jérémie Galarneau [Wed, 9 Nov 2022 22:20:06 +0000 (17:20 -0500)]
Fix: define old_sigaction as compat_old_sigaction in x86-32 compat
In a follow-up patch which updates the instrumentation for x86-32, the
instrumentation of the old_sigaction() syscall would fail to build when
targeting a 64-bit kernel.
In that context, old_sigaction becomes compat_old_sigaction which is a
syscall that can be disabled (it was superseded by rt_sigaction a long
time ago).
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I633c80e03947a81d1b5c93f8f95a61feb7c34884
Jérémie Galarneau [Wed, 9 Nov 2022 19:34:30 +0000 (14:34 -0500)]
Add generated arm-64 syscall instrumentation for kernel 6.0.7
Generated by running:
./lttng-syscalls-generate-headers.sh pointers 6.0.7 arm-64-syscalls arm-64 64 && ./lttng-syscalls-generate-headers.sh integers 6.0.7 arm-64-syscalls arm-64 64
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I8cc65d1a16d66158a580cb492a82549f7f8c6ef1
Jérémie Galarneau [Tue, 8 Nov 2022 22:50:01 +0000 (17:50 -0500)]
Add generated x86-64 syscall instrumentation for kernel 6.0.7
Generated by running:
./lttng-syscalls-generate-headers.sh pointers 6.0.7 x86-64-syscalls x86-64 64 && ./lttng-syscalls-generate-headers.sh integers 6.0.7 x86-64-syscalls x86-64 64
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I8e21e72edac65627116cea356e827c5536d9503b
Mathieu Desnoyers [Thu, 17 Nov 2022 18:56:17 +0000 (13:56 -0500)]
syscall instrumentation: add missing forward declarations for old kernels
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I70a511e83aa91ddff1976c7d6010f90eec7a9867
Jérémie Galarneau [Fri, 11 Nov 2022 17:05:26 +0000 (12:05 -0500)]
Add arm-32 syscall list for kernel 6.0.7
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I939190435cdca26cdf14732b4036b3905b8d1d21
Jérémie Galarneau [Wed, 9 Nov 2022 18:52:04 +0000 (13:52 -0500)]
Add arm-64 syscall list for kernel 6.0.7
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I9262c2379b917b8c908b1c23850f87242fe891b2
Jérémie Galarneau [Tue, 8 Nov 2022 22:36:02 +0000 (17:36 -0500)]
Add x86-64 syscall list for kernel 6.0.7
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I32c0d70b1a9e77598d9083a0f460ce37faa251de
Jérémie Galarneau [Wed, 9 Nov 2022 20:44:09 +0000 (15:44 -0500)]
Support per-architecture syscall in/out parameter descriptions
The number of arguments of some syscalls varies from one architecture to
another. For instance, fanotify_mark, on most architectures has the
following signature:
fanotify_mark(int fanotify_fd, unsigned int flags, __u64 mask, int dfd, const char *pathname)
However, on x86-32, the 64-bit mask parameter is split into two 32-bit parts:
fanotify_mark(int fanotify_fd, unsigned int flags, u32 mask_lo, u32 mask_hi, int dfd, const char *pathname)
Since the header generation scripts do not expect this, generating the
headers for x86-32 fails with:
Error: argument number (6) is larger than number of syscall arguments (5)
The scripts are modified to search for an in/out description in a
per-architecture description list. For the moment only fanotify_mark()
has such an override.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I7252f41f1d08100d099deab7328f7fc784e1c484
Jérémie Galarneau [Wed, 9 Nov 2022 18:59:50 +0000 (13:59 -0500)]
Add "_time32" suffixed variants of syscalls to table-syscall-inout.txt
In addressing a number of y2k38 upstream bugs, some syscalls had a
64-bit time variant added. In doing so, the superseded syscalls were
renamed *_time32.
table-syscall-inout.txt is adapted to consider both variants of these
syscalls.
This change is lifted from
https://review.lttng.org/c/lttng-modules/+/3208, originally produced by
Michael Jeanson.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I34511fb80fea1d17fd5eea7fccaffe1b5335a822
Jérémie Galarneau [Tue, 8 Nov 2022 22:12:07 +0000 (17:12 -0500)]
Add x86-32 syscall list for kernel 6.0.7
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I34765714fb09c321470fa61d754c62e7074d44d8
Jérémie Galarneau [Tue, 8 Nov 2022 22:13:37 +0000 (17:13 -0500)]
Fix: syscalls-extractor: kallsyms_lookup_name no longer available
Since v5.7, kallsyms_lookup_name is no longer available.
In order to re-use the kallsyms wrapper, it is simpler to move the
syscalls extractor module to the `src` directory and gate its
compilation behind a new config option, CONFIG_LTTNG_SYSCALLS_EXTRACTOR.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I55d878dce55827d61035693aaf5865af3c4e775f
Michael Jeanson [Fri, 11 Nov 2022 15:47:54 +0000 (10:47 -0500)]
fix: Adjust ranges for RHEL 8.6 kernels
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I0b2c90f3678d0fb4503f61f336a4af185de2b39d
Michael Jeanson [Tue, 8 Nov 2022 16:26:46 +0000 (11:26 -0500)]
fix: kvm-x86 requires CONFIG_KALLSYMS_ALL
Fixes: #1363
Change-Id: I6da15f77123c393ccb9109b562c7c8dc5bbb96a5
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Fri, 21 Oct 2022 16:12:23 +0000 (12:12 -0400)]
Cleanup: remove 2.6.35 compat code
Change-Id: If429446d63fe6c33cd995b0e0e04bd26c5111cc7
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Mon, 17 Oct 2022 17:49:51 +0000 (13:49 -0400)]
fix: mm/slab_common: drop kmem_alloc & avoid dereferencing fields when not using (v6.1)
See uptream commit:
commit
2c1d697fb8ba6d2d44f914d4268ae1ccdf025f1b
Author: Hyeonggon Yoo <42.hyeyoo@gmail.com>
Date: Wed Aug 17 19:18:24 2022 +0900
mm/slab_common: drop kmem_alloc & avoid dereferencing fields when not using
Drop kmem_alloc event class, and define kmalloc and kmem_cache_alloc
using TRACE_EVENT() macro.
And then this patch does:
- Do not pass pointer to struct kmem_cache to trace_kmalloc.
gfp flag is enough to know if it's accounted or not.
- Avoid dereferencing s->object_size and s->size when not using kmem_cache_alloc event.
- Avoid dereferencing s->name in when not using kmem_cache_free event.
- Adjust s->size to SLOB_UNITS(s->size) * SLOB_UNIT in SLOB
Change-Id: Icd7925731ed4a737699c3746cb7bb7760a4e8009
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 30 Sep 2022 20:19:16 +0000 (16:19 -0400)]
Fix: handle integer capture page faults as skip field
Now that we have the appropriate save/restore position mechanism for
error handling in place, we can handle page faults on integer
copy-from-user by skipping the offending captured field entirely rather
than relying on an arbitrary 0 value.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I4ec6243d96753ce7e9c6230563713aeacb126567
Mathieu Desnoyers [Fri, 30 Sep 2022 14:14:18 +0000 (10:14 -0400)]
Fix: bytecode validator: reject specialized load field/context ref instructions
Reject specialized load field/context ref instructions so a bytecode
crafted with nefarious intent cannot:
- Read user-space memory without proper get_user accessors,
- Read a memory area larger than the memory targeted by the instrumentation.
This prevents bytecode received from a tracing group user from oopsing
the kernel or disclosing the content of kernel memory to the tracing
group
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I2bda938a3a050f20be1d3d542aefe638b1b8bf73
Mathieu Desnoyers [Thu, 29 Sep 2022 19:29:21 +0000 (15:29 -0400)]
Fix: bytecode validator: reject specialized load instructions
Reject specialized load instructions so a bytecode crafted with
nefarious intent cannot:
- Read user-space memory without proper get_user accessors,
- Read a memory area larger than the memory targeted by the instrumentation.
This prevents bytecode received from a tracing group user from oopsing
the kernel or disclosing the content of kernel memory to the tracing
group.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I6bcdf37d4a8601164082b3c24358bf0e765a2c92
Mathieu Desnoyers [Thu, 29 Sep 2022 18:26:27 +0000 (14:26 -0400)]
Fix: honor "user" attribute for array/sequence of user integers
The macro _lttng_kernel_static_type_integer_from_type() should map to
_lttng_kernel_static_type_integer() to pass the "_user" attribute.
Otherwise, userspace fields such as pipe2's system call fildes field (a
ctf_user_array()) can trigger NULL pointer exceptions and read arbitrary
kernel memory if the pipe2 system call receives a bogus pointer as input
while filtering/capture is accessing this field.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I44276d751b822f214804184d1ce4d9b10b47d89d
Mathieu Desnoyers [Wed, 28 Sep 2022 19:06:58 +0000 (15:06 -0400)]
Fix: dma-fence.h appears in Linux 4.10, not 4.9
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Id715db2f7d006b313250e6cbf3c52e417cdd7a7e
He Zhe [Tue, 27 Sep 2022 07:59:42 +0000 (15:59 +0800)]
wrapper: powerpc64: fix kernel crash caused by do_get_kallsyms
Kernel crashes on powerpc64 ABIv2 as follow when lttng_tracer initializes,
since do_get_kallsyms in lttng_wrapper fails to return a proper address of
kallsyms_lookup_name.
root@qemuppc64:~# lttng create trace_session --live -U net://127.0.0.1
Spawning a session daemon
lttng_kretprobes: loading out-of-tree module taints kernel.
BUG: Unable to handle kernel data access on read at 0xfffffffffffffff8
Faulting instruction address: 0xc0000000001f6fd0
Oops: Kernel access of bad area, sig: 11 [#1]
<snip>
NIP [
c0000000001f6fd0] module_kallsyms_lookup_name+0xf0/0x180
LR [
c0000000001f6f28] module_kallsyms_lookup_name+0x48/0x180
Call Trace:
module_kallsyms_lookup_name+0x34/0x180 (unreliable)
kallsyms_lookup_name+0x258/0x2b0
wrapper_kallsyms_lookup_name+0x4c/0xd0 [lttng_wrapper]
wrapper_get_pfnblock_flags_mask_init+0x28/0x60 [lttng_wrapper]
lttng_events_init+0x40/0x344 [lttng_tracer]
do_one_initcall+0x78/0x340
do_init_module+0x6c/0x2f0
__do_sys_finit_module+0xd0/0x120
system_call_exception+0x194/0x2f0
system_call_vectored_common+0xe8/0x278
<snip>
do_get_kallsyms makes use of kprobe_register and in turn kprobe_lookup_name
to get the address of the kernel function kallsyms_lookup_name. In case of
PPC64_ELF_ABI_v2, when kprobes are placed at function entry,
kprobe_lookup_name adjusts the global entry point of the function returned
by kallsyms_lookup_name to the local entry point(at some fixed offset of
global one). This adjustment is all for kprobes to be able to work properly.
Global and local entry point are defined in powerpc64 ABIv2.
When the local entry point is given, some instructions at the beginning of
the function are skipped and thus causes the above kernel crash. We just
want to make a simple function call which needs global entry point.
This patch adds 4 bytes which is the length of one instruction to
kallsyms_lookup_name so that it will not trigger the global to local
adjustment, and then substracts 4 bytes from the returned address. See the
following kernel change for more details.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=
290e3070762ac80e5fc4087d8c4de7e3f1d90aca
Signed-off-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I34e68e886b97e3976d0b5e25be295a8bb866c1a4
Mathieu Desnoyers [Wed, 28 Sep 2022 14:44:05 +0000 (10:44 -0400)]
Fix: event notification: Remove duplicate event enabled check
The event enabled checks are already done by the event notification
callers, so there is no point in checking it again.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I8033c053d6a601cf646a008d5325d556dba5a8f9
Mathieu Desnoyers [Wed, 28 Sep 2022 14:34:42 +0000 (10:34 -0400)]
Fix: event notification capture: validate buffer length
Validate that the buffer length is large enough to hold empty capture
fields.
If the buffer is initially not large enough to hold empty capture fields
for each field to capture, discard the notification.
If after capturing a field there is not enough room anymore in the
buffer to write empty capture fields, skip the offending large field by
writing an empty capture field in its place.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Ifa2cdaf084e2ebee2efa052331107cb4d9095243
Mathieu Desnoyers [Tue, 27 Sep 2022 20:31:29 +0000 (16:31 -0400)]
Fix: handle capture page faults as skip field
Now that we have the appropriate save/restore position mechanism for
error handling in place, we can handle page faults on copy-from-user by
skipping the offending captured field entirely rather than relying on an
empty string.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Ibe1e818f57f8218d2b83281a572895884fc28b86
Mathieu Desnoyers [Tue, 27 Sep 2022 19:07:24 +0000 (15:07 -0400)]
Fix: event notification capture error handling
When the captured fields end up taking more than 512 bytes of space for
the msgpack message, the notification append capture fails.
Currently, this is handled by printing a WARN_ON_ONCE() on the console,
and a printk "Error appending capture to notification" warning.
Considering that this kind of error is very much legitimate, spamming
the console with warnings is not the way we want to handle this.
Rather than print a warning on the console, reset the msgpack writer
position to skip the problematic captured field entirely when it is
erroneous.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I4c98dc85266dd7af5e11bbd3d73ab5118c9e03af
Mathieu Desnoyers [Tue, 27 Sep 2022 20:06:39 +0000 (16:06 -0400)]
Fix: dma_fence tracepoint Kbuild typo
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I9f603c3d4f10dd812ff33203928f9edac9b99489
This page took 0.046206 seconds and 4 git commands to generate.