]> git.lttng.org Git - lttng-modules.git/log
lttng-modules.git
4 months agokretprobe: Implement kretprobes with event enablers
Mathieu Desnoyers [Thu, 3 Mar 2022 17:12:44 +0000 (12:12 -0500)] 
kretprobe: Implement kretprobes with event enablers

This enables support for enabling only entry or exit for kretprobes.
This enables event notifier support for kretprobes.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Ieef4f2744d5e1ebfc2f3320862e143bfe6401620

4 months agokprobe: Implement kprobes with event enablers
Mathieu Desnoyers [Tue, 1 Mar 2022 17:27:06 +0000 (12:27 -0500)] 
kprobe: Implement kprobes with event enablers

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Idd1285baa8da6476620ddfc3c21d93a8d4ab08f7

4 months agoABI: introduce lttng_kernel_abi_match_check
Mathieu Desnoyers [Tue, 1 Mar 2022 15:16:53 +0000 (10:16 -0500)] 
ABI: introduce lttng_kernel_abi_match_check

Requires introduction of extended event parameters because there are
only 8 bytes of padding left in struct lttng_kernel_abi_event.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I3dd1346093eeee42c1a7a047ec32865fda9c6ff5

4 months agokretprobe: implement lttng_kretprobes_match_check
Mathieu Desnoyers [Tue, 1 Mar 2022 15:58:32 +0000 (10:58 -0500)] 
kretprobe: implement lttng_kretprobes_match_check

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I7a4584c3fa524664097a262d7b5f74eb93d2a335

4 months agokprobe: Introduce lttng_kprobes_match_check
Mathieu Desnoyers [Tue, 1 Mar 2022 15:34:37 +0000 (10:34 -0500)] 
kprobe: Introduce lttng_kprobes_match_check

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Iffc9dba158f9802db9f877fabeec288d5072a84c

4 months agoImplement event notifier kretprobe support
Mathieu Desnoyers [Mon, 28 Feb 2022 20:20:51 +0000 (15:20 -0500)] 
Implement event notifier kretprobe support

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I32b42ddad79889a19ee8833ed9b52e4a37505f7b

4 months agoRemove lttng_kernel_event_create warnings
Mathieu Desnoyers [Mon, 28 Feb 2022 20:09:12 +0000 (15:09 -0500)] 
Remove lttng_kernel_event_create warnings

Errors returned by lttng_kernel_event_create are handled by the caller,
and may happen e.g. when a kprobe or kretprobe symbol does not exist.
It should not generate a warning in the kernel console.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I0bd59ec35e5648fa6aa1ece3cf36714c5cc1a83e

4 months agokretprobes: implement event counter support
Mathieu Desnoyers [Mon, 28 Feb 2022 19:15:00 +0000 (14:15 -0500)] 
kretprobes: implement event counter support

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Id5142ae8d31bba2c9a806f75cbbfefdca303d523

4 months agolttng_abi_create_event_notifier: add missing fallthrough
Mathieu Desnoyers [Mon, 28 Feb 2022 15:40:40 +0000 (10:40 -0500)] 
lttng_abi_create_event_notifier: add missing fallthrough

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I8e7011f63ccce4db21b36fcd18eb78e95ca2f406

4 months agoImplement events-by-key hash table
Mathieu Desnoyers [Fri, 25 Feb 2022 14:38:52 +0000 (09:38 -0500)] 
Implement events-by-key hash table

Allow re-use of counter index for events with matching key.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Id1dff39ff3c58d5664d04ae5d77d1ae66e728cd6

4 months agoRename lttng_event_notifier_group events_ht to events_name_ht
Mathieu Desnoyers [Fri, 25 Feb 2022 14:44:06 +0000 (09:44 -0500)] 
Rename lttng_event_notifier_group events_ht to events_name_ht

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I64313d4b8255a717ef06ef7bf5944d2c1c4e24da

4 months agoRename lttng_get_event_ht_from_enabler to lttng_get_events_name_ht_from_enabler
Mathieu Desnoyers [Fri, 25 Feb 2022 14:40:03 +0000 (09:40 -0500)] 
Rename lttng_get_event_ht_from_enabler to lttng_get_events_name_ht_from_enabler

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I53bb9917ae7644ba79f36dc16f9feb095a3c4194

4 months agoImplement counter maps (for listing)
Mathieu Desnoyers [Thu, 24 Feb 2022 20:42:56 +0000 (15:42 -0500)] 
Implement counter maps (for listing)

Also wire up LTTNG_KERNEL_ABI_SYSCALL_MASK in lttng_counter_ioctl.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: If9215bafb010162250636c9407d85fefcd61ebc2

4 months agoImplement channel counter creation/destroy
Mathieu Desnoyers [Thu, 24 Feb 2022 19:58:18 +0000 (14:58 -0500)] 
Implement channel counter creation/destroy

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I2e242fe9b50f3b4ae5f97969b587f4306051109f

4 months agoCleanup: remove kprobes/kretprobes/uprobes unused exports
Mathieu Desnoyers [Tue, 22 Feb 2022 16:59:09 +0000 (11:59 -0500)] 
Cleanup: remove kprobes/kretprobes/uprobes unused exports

Can be removed now that those are embedded in the tracer core.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I14f4b011c562d7a2e669749159fda23ee964554f

4 months agoFix: circular dependency on symbol lttng_id_tracker_lookup
Mathieu Desnoyers [Tue, 22 Feb 2022 16:56:29 +0000 (11:56 -0500)] 
Fix: circular dependency on symbol lttng_id_tracker_lookup

Adding lttng_id_tracker_lookup feature into kprobes, uprobes and
kretprobes introduces a circular dependency between lttng-tracer.ko and
the respective probe modules.

There is no real reason for having the kprobes/uprobes/kretprobes
modules separate from the tracer core, so combine those.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Iea80c8054054b341e1836c8675c04e00424608fc

4 months agoFix: circular dependency between lttng-events and lib counter
Mathieu Desnoyers [Mon, 21 Feb 2022 21:18:04 +0000 (16:18 -0500)] 
Fix: circular dependency between lttng-events and lib counter

lib counter depends on lttng-events (tracer), not the opposite. Use the
lttng-counter clients callbacks to remove the circular dependency.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I04cdbfb39deb76884092459cab62227b9f39d85d

4 months agoImplement event counter creation
Mathieu Desnoyers [Thu, 10 Feb 2022 21:36:47 +0000 (16:36 -0500)] 
Implement event counter creation

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I5b407513c5c64ae418fc1846ae10f3fa99609796

4 months agoRename lttng_abi_create_event to lttng_abi_create_event_recorder_enabler
Mathieu Desnoyers [Thu, 10 Feb 2022 20:53:59 +0000 (15:53 -0500)] 
Rename lttng_abi_create_event to lttng_abi_create_event_recorder_enabler

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I39b2e288b952e0316b6511f4f79014700cbc42e5

4 months agouprobe: implement counter support
Mathieu Desnoyers [Thu, 10 Feb 2022 20:41:58 +0000 (15:41 -0500)] 
uprobe: implement counter support

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I46909ecc57a15d5f0c6b58e1f2f254219e55e01d

4 months agokretprobes: implement counter support
Mathieu Desnoyers [Thu, 10 Feb 2022 20:40:25 +0000 (15:40 -0500)] 
kretprobes: implement counter support

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I8e64712455b2812305250a45311b5b023281a1fe

4 months agokprobe: implement counter support
Mathieu Desnoyers [Thu, 10 Feb 2022 20:36:48 +0000 (15:36 -0500)] 
kprobe: implement counter support

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I8741ab89b03089ec34f17965749f84ddc23a2601

4 months agoAdd missing counter handling
Mathieu Desnoyers [Thu, 10 Feb 2022 20:30:31 +0000 (15:30 -0500)] 
Add missing counter handling

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I5ba6bc03b7c090e6c9b6431d81da4a739c764610

4 months agoabi: introduce session common
Mathieu Desnoyers [Thu, 10 Feb 2022 20:23:57 +0000 (15:23 -0500)] 
abi: introduce session common

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Id6512b87661d7e29666f41002370d065d540a27a

4 months agoImplement event counter probe
Mathieu Desnoyers [Thu, 10 Feb 2022 19:45:27 +0000 (14:45 -0500)] 
Implement event counter probe

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I6cdeef84a3b2f5675029a7509ce353a17bbeb0b4

4 months agoRemove unused lttng_event_enabler_event_name_match_event
Mathieu Desnoyers [Thu, 10 Feb 2022 19:39:15 +0000 (14:39 -0500)] 
Remove unused lttng_event_enabler_event_name_match_event

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Icd02b897aa6aaa870e503db873f86f80a04ff02c

4 months agoMatch event keys for syscall events
Mathieu Desnoyers [Thu, 10 Feb 2022 19:35:09 +0000 (14:35 -0500)] 
Match event keys for syscall events

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Ia0b3df16abeda9e0a404eeed156e33c17f4f47e3

4 months agoSkip sync of disabled enablers
Mathieu Desnoyers [Thu, 10 Feb 2022 19:25:35 +0000 (14:25 -0500)] 
Skip sync of disabled enablers

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Icf20e16baee3c63b84f1be9f730100229108bcc6

4 months agoRemove duplicate lookup in lttng_event_enabler_create_tracepoint_events_if_missing
Mathieu Desnoyers [Thu, 10 Feb 2022 19:20:48 +0000 (14:20 -0500)] 
Remove duplicate lookup in lttng_event_enabler_create_tracepoint_events_if_missing

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Ic597f34dfc3823ba83728bde3fcd41bb3eed9c91

4 months agoImplement _lttng_kernel_event_create counter event support
Mathieu Desnoyers [Thu, 10 Feb 2022 19:17:11 +0000 (14:17 -0500)] 
Implement _lttng_kernel_event_create counter event support

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: If1a2e1d64d8663f592e81611914402d30f111e17

4 months agolttng_kernel_event_alloc: handler counters
Mathieu Desnoyers [Thu, 10 Feb 2022 18:53:07 +0000 (13:53 -0500)] 
lttng_kernel_event_alloc: handler counters

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Ic50018274bd5048181f9da278027e1c175b6bd80

4 months agoRefactor notification error counters
Mathieu Desnoyers [Thu, 10 Feb 2022 17:52:54 +0000 (12:52 -0500)] 
Refactor notification error counters

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I106b6fe85f899297582e131252c591ac5ba7d538

4 months agoAdd counter case in lttng_kernel_event_id_available
Mathieu Desnoyers [Wed, 2 Feb 2022 20:37:03 +0000 (15:37 -0500)] 
Add counter case in lttng_kernel_event_id_available

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I1967ddd37d677806558a41138f32566ce19bae21

4 months agoImplement event counters
Mathieu Desnoyers [Thu, 27 Jan 2022 21:09:14 +0000 (16:09 -0500)] 
Implement event counters

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I9eadee226c78c6b48158a0670b9b50a8b6aab06e

4 months agoAdd channel counter structures to internal header
Mathieu Desnoyers [Wed, 2 Feb 2022 20:23:02 +0000 (15:23 -0500)] 
Add channel counter structures to internal header

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I00b2a4df48d66977deafedeb3e9f5021754bf42a

4 months agoWire up LTTNG_KERNEL_EVENT_TYPE_COUNTER
Mathieu Desnoyers [Thu, 27 Jan 2022 20:58:08 +0000 (15:58 -0500)] 
Wire up LTTNG_KERNEL_EVENT_TYPE_COUNTER

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Iddfaa8de487a376d35d404415bfec0676d7cb304

4 months agoRefactor _lttng_event_destroy duplicated code
Mathieu Desnoyers [Thu, 27 Jan 2022 20:53:01 +0000 (15:53 -0500)] 
Refactor _lttng_event_destroy duplicated code

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I42a607101c084ade8ebed673b3a666987cfad98f

4 months agostruct lttng_kernel_event_session_common_private: remove unused ctx field
Mathieu Desnoyers [Thu, 27 Jan 2022 19:44:26 +0000 (14:44 -0500)] 
struct lttng_kernel_event_session_common_private: remove unused ctx field

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I99a8eb21db55ec8d9df2300853b3d08abec095e5

4 months agoRename struct lttng_kernel_session_private events_ht field to events_name_ht
Mathieu Desnoyers [Thu, 27 Jan 2022 19:27:47 +0000 (14:27 -0500)] 
Rename struct lttng_kernel_session_private events_ht field to events_name_ht

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I2452d6154064fd91e801d0b8487168c7cdfb0a3e

4 months agoRename struct lttng_metadata_stream list field to node
Mathieu Desnoyers [Thu, 27 Jan 2022 19:24:10 +0000 (14:24 -0500)] 
Rename struct lttng_metadata_stream list field to node

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Iaefccfd27d18cbb90726f6b77400409eeea493d0

4 months agoRename struct lttng_kernel_session_private list field to node
Mathieu Desnoyers [Thu, 27 Jan 2022 19:21:52 +0000 (14:21 -0500)] 
Rename struct lttng_kernel_session_private list field to node

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I971bb068e51567ef79a30608984137827f1d45c8

4 months agoReorder struct lttng_kernel_session_private fields
Mathieu Desnoyers [Thu, 27 Jan 2022 19:19:09 +0000 (14:19 -0500)] 
Reorder struct lttng_kernel_session_private fields

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I9a7c8f415c1b0b128662081f580df14bd5368893

4 months agoRename session events field to events_head
Mathieu Desnoyers [Thu, 27 Jan 2022 19:17:28 +0000 (14:17 -0500)] 
Rename session events field to events_head

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I8181d86dc2dede4ba15178722e1eb884feb556eb

4 months agoRename session chan field to chan_head
Mathieu Desnoyers [Thu, 27 Jan 2022 19:14:54 +0000 (14:14 -0500)] 
Rename session chan field to chan_head

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I4447978d05d2979e8c7e8c6d66126da66142e32c

4 months agoIntroduce struct lttng_event_counter_enabler
Mathieu Desnoyers [Thu, 27 Jan 2022 19:09:51 +0000 (14:09 -0500)] 
Introduce struct lttng_event_counter_enabler

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I9683c18b4d661d65b128a1edda5adb1154d8d543

4 months agoIntroduce struct lttng_kernel_event_counter_private
Mathieu Desnoyers [Thu, 27 Jan 2022 19:05:35 +0000 (14:05 -0500)] 
Introduce struct lttng_kernel_event_counter_private

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I2cc9d82a18f8222682e413e41a27acb8f8a74754

4 months agoMove counter key structures to beginning of events-internal.h
Mathieu Desnoyers [Thu, 27 Jan 2022 19:08:23 +0000 (14:08 -0500)] 
Move counter key structures to beginning of events-internal.h

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I4b76cac6837a5098720da9ae321169b46d78866b

4 months agoIntroduce struct lttng_kernel_channel_counter and struct lttng_kernel_channel_counter_ops
Mathieu Desnoyers [Thu, 27 Jan 2022 19:03:49 +0000 (14:03 -0500)] 
Introduce struct lttng_kernel_channel_counter and struct lttng_kernel_channel_counter_ops

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Icdc8c1fb6444eca2051b60fa4a7dd564e943da68

4 months agoIntroduce struct lttng_kernel_event_counter
Mathieu Desnoyers [Thu, 27 Jan 2022 19:03:14 +0000 (14:03 -0500)] 
Introduce struct lttng_kernel_event_counter

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Ie0e9ab234bce48c3ce23cf0d4c664ce4bb3bdaee

4 months agoIntroduce struct lttng_kernel_event_session_common_private
Mathieu Desnoyers [Mon, 10 Jan 2022 21:31:34 +0000 (16:31 -0500)] 
Introduce struct lttng_kernel_event_session_common_private

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Ibaab6a0a8ce60bbc5ac212106c5c75a8a16d7e2c

4 months agoIntroduce struct lttng_event_enabler_session_common
Mathieu Desnoyers [Mon, 10 Jan 2022 21:19:27 +0000 (16:19 -0500)] 
Introduce struct lttng_event_enabler_session_common

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Ia160e559525f9276512506271742703804be6c9b

4 months agoTrace hit counters: introduce counter private data structures
Mathieu Desnoyers [Mon, 10 Jan 2022 19:48:59 +0000 (14:48 -0500)] 
Trace hit counters: introduce counter private data structures

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Ie6adadcbab8c41237b2bfb03b1c341b4183715cc

4 months agoTrace hit counters: ABI
Mathieu Desnoyers [Mon, 10 Jan 2022 19:34:13 +0000 (14:34 -0500)] 
Trace hit counters: ABI

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I886975f27af90e42cbab274f70820a06090c48bc

4 months agoFix: libcounter: __lttng_counter_add global sum step alloc vs sync mixup
Mathieu Desnoyers [Fri, 2 Sep 2022 20:13:46 +0000 (16:13 -0400)] 
Fix: libcounter: __lttng_counter_add global sum step alloc vs sync mixup

The global sum step needs to be handled on per-cpu allocated counters,
not per-cpu sync.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I9b6ef221fb099c9fc602dfdb9a93d70ae2192500

4 months agoFix: lttng_abi_validate_event_param: use kretprobe enum
Mathieu Desnoyers [Mon, 28 Feb 2022 15:40:03 +0000 (10:40 -0500)] 
Fix: lttng_abi_validate_event_param: use kretprobe enum

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I8c444e16781fb8d8df9f05f0c70775f324ae030f

4 months agokvm instrumentation: Fix kvm_mmio event NULL pointer dereference
Mathieu Desnoyers [Thu, 4 Jul 2024 15:22:23 +0000 (11:22 -0400)] 
kvm instrumentation: Fix kvm_mmio event NULL pointer dereference

Upstream Linux commit e39d200fa5bf ("KVM: Fix stack-out-of-bounds read
in write_mmio") introduce a NULL pointer check within TP_fast_assign().

lttng-modules commit 33630522da97 ("Update kvm instrumentation for 4.15")
introduce use of:

  ctf_sequence_hex(unsigned char, val, val, u32, len)

without the required NULL pointer check, which can trigger NULL pointer
dereference in case of unsatisfied MMIO read.

Add the missing NULL pointer check. Record a sequence of length 0 in the
trace when the val pointer is NULL.

Reported-by: Fahad Arslan <fahad.arslan@siemens.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I51a171a56af96e2cf68dba73f7eb473dd6c0ba0e

4 months agokvm instrumentation: Cleanup: Eliminate code duplication
Mathieu Desnoyers [Thu, 4 Jul 2024 15:15:24 +0000 (11:15 -0400)] 
kvm instrumentation: Cleanup: Eliminate code duplication

Commit 0badc02f82b38 ("Fix: adjust SLE version ranges to build with SP2
and SP3") introduced code duplication. Modify the version match logic to
remove duplicated code.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I918c87d2e6d68e6c71df18fbf66d88445ce68d23

5 months agoFix: Build on CentOS 9 Stream 2024-06
Kienan Stewart [Thu, 20 Jun 2024 15:15:59 +0000 (11:15 -0400)] 
Fix: Build on CentOS 9 Stream 2024-06

Change-Id: I445d2df9d49930e28e57b6a7d075a9f68e914bad
Signed-off-by: Kienan Stewart <kstewart@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
5 months agofix: file: Rename fcheck lookup_fd_rcu (v5.10.220)
Michael Jeanson [Tue, 25 Jun 2024 18:15:39 +0000 (14:15 -0400)] 
fix: file: Rename fcheck lookup_fd_rcu (v5.10.220)

See upstream backported commit:

  commit c4716bb296504cbc64aeefb370df44e821214c44
  Author: Eric W. Biederman <ebiederm@xmission.com>
  Date:   Fri Nov 20 17:14:27 2020 -0600

    file: Rename fcheck lookup_fd_rcu

    [ Upstream commit 460b4f812a9d473d4b39d87d37844f9fc30a9eb3 ]

    Also remove the confusing comment about checking if a fd exists.  I
    could not find one instance in the entire kernel that still matches
    the description or the reason for the name fcheck.

    The need for better names became apparent in the last round of
    discussion of this set of changes[1].

    [1] https://lkml.kernel.org/r/CAHk-=wj8BQbgJFLa+J0e=iT-1qpmCRTbPAJ8gd6MJQ=kbRPqyQ@mail.gmail.com
Link: https://lkml.kernel.org/r/20201120231441.29911-10-ebiederm@xmission.com
Change-Id: Ib880bd8feef1c5d75d2a018cd93a1d464485ab7b
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
5 months agoCleanup: update stale file paths in LICENSE
Michael Jeanson [Mon, 21 Nov 2022 22:26:59 +0000 (17:26 -0500)] 
Cleanup: update stale file paths in LICENSE

Change-Id: I4849b19daa235b93a6435e57bd764128e43d691e
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
5 months agoCleanup: use SPDX v3.0 identifiers
Michael Jeanson [Mon, 21 Nov 2022 22:10:48 +0000 (17:10 -0500)] 
Cleanup: use SPDX v3.0 identifiers

The short form of GPL-2.0 and LGPL-2.1 were deprecated in favour of the
clearer GPL-2.0-only and GPL-2.0-or-later in the SPDX license list v3.0.

Change-Id: I8b59b3689aa38fb5f5a114f9d02f22274a5bff57
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
5 months agoWarn and return on fd overflow fdt
Michael Jeanson [Wed, 29 May 2024 19:02:15 +0000 (15:02 -0400)] 
Warn and return on fd overflow fdt

The fdt should only grow and iterate_fd() holds file_lock, which should
ensure the fdt does not change while the lock is taken but be cautious
and check anyway.

Change-Id: Icd6a3263026734cbe3f296f6087f79add4148a8f
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
5 months agocleanup: add correct error messages to lttng-get-syscall-inout.sh
Michael Jeanson [Wed, 8 May 2024 19:46:23 +0000 (15:46 -0400)] 
cleanup: add correct error messages to lttng-get-syscall-inout.sh

The script argument parsing was modified in
commit 6ae73da43362 ("Fix syscall generator scripts") without adjusting
the error messages and comments.

Report the proper errors for the current arguments.

Change-Id: I86f4d16ffede1a6a48bc6ab5fe1e678ef340585b
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
5 months agocleanup: document 'pipe' syscall override
Michael Jeanson [Wed, 8 May 2024 18:47:09 +0000 (14:47 -0400)] 
cleanup: document 'pipe' syscall override

Change-Id: Iec84c10b774c1001ff2035024a1d05fdd31c8d9d
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
6 months agofix: net: udp: add IP/port data to the tracepoint udp/udp_fail_queue_rcv_skb (v6.10)
Michael Jeanson [Mon, 27 May 2024 15:11:21 +0000 (11:11 -0400)] 
fix: net: udp: add IP/port data to the tracepoint udp/udp_fail_queue_rcv_skb (v6.10)

See upstream commit:

  commit e9669a00bba79442dd4862c57761333d6a020c24
  Author: Balazs Scheidler <bazsi77@gmail.com>
  Date:   Tue Mar 26 19:05:47 2024 +0100

    net: udp: add IP/port data to the tracepoint udp/udp_fail_queue_rcv_skb

    The udp_fail_queue_rcv_skb() tracepoint lacks any details on the source
    and destination IP/port whereas this information can be critical in case
    of UDP/syslog.

Change-Id: I0c337c5817b0a120298cbf5088d60671d9625b0d
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
6 months agofix: close_on_exec(): pass files_struct instead of fdtable (v6.10)
Michael Jeanson [Mon, 27 May 2024 14:49:45 +0000 (10:49 -0400)] 
fix: close_on_exec(): pass files_struct instead of fdtable (v6.10)

See upstream commit:

  commit f60d374d2cc88034385265d193a38e3f4a4b430c
  Author: Al Viro <viro@zeniv.linux.org.uk>
  Date:   Thu Jan 4 21:35:38 2024 -0500

    close_on_exec(): pass files_struct instead of fdtable

    both callers are happier that way...

Change-Id: I8cdabb073c2090842b27b74954d86cb486c43b3e
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
6 months agofix: btrfs: move ->parent and ->ref_root into btrfs_delayed_ref_node (v6.10)
Michael Jeanson [Mon, 27 May 2024 17:13:15 +0000 (13:13 -0400)] 
fix: btrfs: move ->parent and ->ref_root into btrfs_delayed_ref_node (v6.10)

See upstream commit:

  commit cf4f04325b2b27efa5697ba0ea4c1abdee0035b4
  Author: Josef Bacik <josef@toxicpanda.com>
  Date:   Fri Apr 12 22:57:13 2024 -0400

    btrfs: move ->parent and ->ref_root into btrfs_delayed_ref_node

    These two members are shared by both the tree refs and data refs, so
    move them into btrfs_delayed_ref_node proper.  This allows us to greatly
    simplify the comparison code, as the shared refs always only sort on
    parent, and the non shared refs always sort first on ref_root, and then
    only data refs sort on their specific fields.

Change-Id: Ib7c92cc4bb8d674ac66ccfa25c03476f7adaaf90
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
6 months agofix: btrfs: simplify delayed ref tracepoints (v6.10)
Michael Jeanson [Mon, 27 May 2024 17:04:42 +0000 (13:04 -0400)] 
fix: btrfs: simplify delayed ref tracepoints (v6.10)

See upstream commit:

  commit 1bff6d4f873790cfc675afce9860208576508c5a
  Author: Josef Bacik <josef@toxicpanda.com>
  Date:   Fri Apr 12 20:27:00 2024 -0400

    btrfs: simplify delayed ref tracepoints

    Now that all of the delayed ref information is in the delayed ref node,
    drastically simplify the delayed ref tracepoints by simply passing in
    the btrfs_delayed_ref_node and populating the tracepoints with the
    values from the structure itself.

Change-Id: Ic90bc23d6aa558baec33adc33b4d21e052e83375
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
6 months agoFix mm_vmscan_lru_isolate tracepoint for RHEL 9.4 kernel
Martin Hicks [Fri, 17 May 2024 15:07:26 +0000 (11:07 -0400)] 
Fix mm_vmscan_lru_isolate tracepoint for RHEL 9.4 kernel

Redhat has moved to using the format first found in the 6.7 kernel
for the mm_vmscan_lru_isolate tracepoint.

Change-Id: I2aa84769c0070458d902e9a0305488d6d8a380e1
Signed-off-by: Martin Hicks <martin@sr-research.com>
Signed-off-by: Kienan Stewart <kstewart@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
6 months agofix: Add missing 'pselect6_time32' and 'ppoll_time32' syscall overrides
Michael Jeanson [Wed, 8 May 2024 18:20:30 +0000 (14:20 -0400)] 
fix: Add missing 'pselect6_time32' and 'ppoll_time32' syscall overrides

The instrumentation currently has overrides to the generated syscall
tracepoints of 'ppoll' and 'pselect6' to extract additional information
from the parameters.

On arm-32 and x86-32 these 2 syscalls were renamed to 'ppoll_time32' and
'pselect6_time32' and new syscalls using 64-bit time_t were introduced
with the old names. This results in missing overrides on these
architectures for the 32-bit variants that were renamed.

Add the '_time32' overrides to restore the previous behavior.

Change-Id: I81e3a3ddc3f3cea58d86edcdf4a1fc9b600637c2
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
6 months agopage alloc wrapper: Fix get_pfnblock_flags_mask prototype
Mathieu Desnoyers [Thu, 9 May 2024 18:43:05 +0000 (14:43 -0400)] 
page alloc wrapper: Fix get_pfnblock_flags_mask prototype

The canary __canary__get_pfnblock_flags_mask has never done its job of
detecting changes to the prototype of get_pfnblock_flags_mask because
it was actually calling the wrapper, because the wrapper/page_alloc.h
header maps get_pfnblock_flags_mask to wrapper_get_pfnblock_flags_mask.

Unfortunately, this wrapper is included by page_alloc.c only _after_ the
linux/pageblock-flags.h header is included, which means the
get_pfnblock_flags_mask prototype does _not_ have the wrapper prefix,
which prevents it from being useful for any kind of type validation.

This has been detected by a compiler warning stating that
wrapper_get_pfnblock_flags_mask() does not have a prior declaration.

Move the wrapper/page_alloc.h include _before_ including
pageblock-flags.h. This ensures the declaration has the wrapper_ prefix,
and therefore the compiler compares the declaration with the definition
of wrapper_get_pfnblock_flags_mask within page_alloc.c. The canary
function can be removed because it is redundant with this type check.

With this proper type check in place, we notice the following two
changes upstream:

commit 535b81e209219 ("mm/page_alloc.c: remove unnecessary end_bitidx for [set|get]_pfnblock_flags_mask()")
introduced in v5.9 removes the end_bitidx argument.

commit ca891f41c4c79 ("mm: constify get_pfnblock_flags_mask and get_pfnblock_migratetype")
introduced in v5.14 adds a const qualifier to the struct page pointer.

Adapt the code to match the evolution of this prototype.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I51b7871edfbff0f74ba1cf4d0ad988eb8d642b4e

6 months agolttng probe: include events-internal.h
Mathieu Desnoyers [Thu, 9 May 2024 17:55:44 +0000 (13:55 -0400)] 
lttng probe: include events-internal.h

Include events-internal.h for the declarations of lttng_logger_init and
lttng_logger_exit.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I14968060c309083f90a282f186f3c635f1ebfd8d

6 months agouprobes: Remove dead code
Mathieu Desnoyers [Thu, 9 May 2024 17:55:16 +0000 (13:55 -0400)] 
uprobes: Remove dead code

lttng_uprobes_destroy_event_notifier_private is now unused. Remove it.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Ia995c60691f68090b6853b2deb0d265b1d4a047e

6 months agosyscalls: Remove unused duplicated code
Mathieu Desnoyers [Thu, 9 May 2024 17:54:20 +0000 (13:54 -0400)] 
syscalls: Remove unused duplicated code

lttng_abi_syscall_list() was moved to src/lttng-abi.c within the 2.13
refactoring. Remove this unused copy.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Iabbab3b576e3d85bc5ac9831729a5786b5c5f224

6 months agostatedump: Add missing events-internal.h include
Mathieu Desnoyers [Thu, 9 May 2024 17:52:54 +0000 (13:52 -0400)] 
statedump: Add missing events-internal.h include

Include events-internal.h for the declaration of
lttng_statedump_start().

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Ieda391aa0d780113efe1d517d8bc5aedb2095a2c

6 months agolttng-events: Remove dead code
Mathieu Desnoyers [Thu, 9 May 2024 17:51:39 +0000 (13:51 -0400)] 
lttng-events: Remove dead code

Functions lttng_event_notifier_enabler_enable and
lttng_event_notifier_enabler_disable are unused since the 2.13
refactoring, remove them.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I18d0d483bf54cbc7d158413f27111271c68ac37d

6 months agolttng-events: Add missing static
Mathieu Desnoyers [Thu, 9 May 2024 17:50:19 +0000 (13:50 -0400)] 
lttng-events: Add missing static

get_tracker() and lttng_metadata_printf() are only used within the
compile unit, mark them as static.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Ie454c85cc29a30d964922fcfe1f88f3fb91bbc8f

6 months agoevent notifier: Add missing static
Mathieu Desnoyers [Thu, 9 May 2024 17:49:37 +0000 (13:49 -0400)] 
event notifier: Add missing static

Mark capture_sequence() static because it is only used within the
compile unit.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I003e5cf016fbf2f2df24f4550a6c285e020956d0

6 months agocontext callstack: Add missing static
Mathieu Desnoyers [Thu, 9 May 2024 17:49:08 +0000 (13:49 -0400)] 
context callstack: Add missing static

lttng_cs_event_fields() is only used within the compile unit, mark it
static.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I3435c6de411a0671de86ecdbcb3e1ea019d908e6

6 months agolttng-clock: Add missing lttng/events-internal.h include
Mathieu Desnoyers [Thu, 9 May 2024 17:48:05 +0000 (13:48 -0400)] 
lttng-clock: Add missing lttng/events-internal.h include

Needed for lttng_clock_ref and lttng_clock_unref declarations.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Idb21d942b9e2151f1d5a78b31b28ca1ac455719b

6 months agolttng-calibrate: Add missing static and include
Mathieu Desnoyers [Thu, 9 May 2024 17:46:52 +0000 (13:46 -0400)] 
lttng-calibrate: Add missing static and include

Include lttng/events-internal.h for the lttng_calibrate
declaration. Make lttng_calibrate_kretprobe static.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Ia18aa60e69cae7a16ed7d17c8297d7ad3bb3aca2

6 months agolttng-bytecode: Remove dead code
Mathieu Desnoyers [Thu, 9 May 2024 17:46:07 +0000 (13:46 -0400)] 
lttng-bytecode: Remove dead code

Functions lttng_filter_enabler_attach_bytecode and
lttng_free_enabler_filter_bytecode are unused since the
refactoring of lttng 2.13. Remove them.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I2abbb3906cdb5c1b7fa9c27c7871a51af7697832

6 months agolttng-abi: Add missing static to function definitions
Mathieu Desnoyers [Thu, 9 May 2024 17:45:45 +0000 (13:45 -0400)] 
lttng-abi: Add missing static to function definitions

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Icc6928df5a47c96a560e18b2c854780afbcf6307

6 months agoring buffer: Add missing static to function definitions
Mathieu Desnoyers [Thu, 9 May 2024 17:45:24 +0000 (13:45 -0400)] 
ring buffer: Add missing static to function definitions

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I80c03d8c8879777e37d24c3574ba7bdea512446a

6 months agoblkdev wrapper: Fix constness warning
Mathieu Desnoyers [Thu, 9 May 2024 17:44:05 +0000 (13:44 -0400)] 
blkdev wrapper: Fix constness warning

Upstream commit f8c7511db009d ("block: make block_class constant")
makes the block_class const. Reflect this change in the lttng-modules
canary function.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Ib3aadd3dedc413f8370b9739f200ce9663c38d99

7 months agoRename "tsc" to "timestamp"
Mathieu Desnoyers [Thu, 2 May 2024 21:06:29 +0000 (17:06 -0400)] 
Rename "tsc" to "timestamp"

Naming timestamps "TSC" or "tsc" is an historical artefact dating from
the implementation of libringbuffer, where the initial intent was to use
the x86 "rdtsc" instruction directly, which ended up not being what was
done in reality.

Rename uses of "TSC" and "tsc" to "timestamp" to clarify things and
don't require reviewers to be fluent in x86 instruction set.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I09437b0cf6db79600ed1a423d1f6df0344f5c9f7

7 months agoFix: timer_expire_entry changed in 4.19.312
Kienan Stewart [Mon, 15 Apr 2024 13:25:26 +0000 (09:25 -0400)] 
Fix: timer_expire_entry changed in 4.19.312

See upstream commit:

    commit bbb5b1c060d73ca96ccc8cceaa81f5e1a96e8fa4
    Author: Anna-Maria Gleixner <anna-maria@linutronix.de>
    Date:   Thu Mar 21 13:09:21 2019 +0100

        timer/trace: Improve timer tracing

        [ Upstream commit f28d3d5346e97e60c81f933ac89ccf015430e5cf ]

        Timers are added to the timer wheel off by one. This is required in
        case a timer is queued directly before incrementing jiffies to prevent
        early timer expiry.

        When reading a timer trace and relying only on the expiry time of the timer
        in the timer_start trace point and on the now in the timer_expiry_entry
        trace point, it seems that the timer fires late. With the current
        timer_expiry_entry trace point information only now=jiffies is printed but
        not the value of base->clk. This makes it impossible to draw a conclusion
        to the index of base->clk and makes it impossible to examine timer problems
        without additional trace points.

        Therefore add the base->clk value to the timer_expire_entry trace
        point, to be able to calculate the index the timer base is located at
        during collecting expired timers.

Change-Id: I2ebdbb637db0966ff51f45bf66916a59a496b50c
Signed-off-by: Kienan Stewart <kstewart@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
7 months agoring buffer: Use cpu_dcache_is_aliasing()
Mathieu Desnoyers [Thu, 11 Apr 2024 20:09:26 +0000 (16:09 -0400)] 
ring buffer: Use cpu_dcache_is_aliasing()

Upstream Linux commit 8690bbcf3b7 ("Introduce cpu_dcache_is_aliasing()
across all architectures") allows checking whether the architecture has
aliasing data caches more accurately. This will be present in upstream
Linux v6.9 (currently in v6.9-rc3).

I expect this to improve the ring buffer performance on ARM64 and
32-bit ARM with non-aliasing data caches.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I3e29966b8c8cab098d57437a11f1f94c53a9e186

8 months agoFix: dev_base_lock removed in linux 6.9-rc1
Kienan Stewart [Mon, 25 Mar 2024 14:53:46 +0000 (10:53 -0400)] 
Fix: dev_base_lock removed in linux 6.9-rc1

See upstream commit:

    commit 1b3ef46cb7f2618cc0b507393220a69810f6da12
    Author: Eric Dumazet <edumazet@google.com>
    Date:   Tue Feb 13 06:32:45 2024 +0000

        net: remove dev_base_lock

        dev_base_lock is not needed anymore, all remaining users also hold RTNL.

Change-Id: I6b07e6eed07fd398302ca14d23162ed24d74df15
Signed-off-by: Kienan Stewart <kstewart@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 months agoFix: mm_compaction_migratepages changed in linux 6.9-rc1
Kienan Stewart [Mon, 25 Mar 2024 14:30:32 +0000 (10:30 -0400)] 
Fix: mm_compaction_migratepages changed in linux 6.9-rc1

See upstream commit:

    commit ab755bf4249b992fc2140d615ab0a686d50765b4
    Author: Baolin Wang <baolin.wang@linux.alibaba.com>
    Date:   Tue Feb 20 14:16:31 2024 +0800

        mm: compaction: update the cc->nr_migratepages when allocating or freeing the freepages

        Currently we will use 'cc->nr_freepages >= cc->nr_migratepages' comparison
        to ensure that enough freepages are isolated in isolate_freepages(),
        however it just decreases the cc->nr_freepages without updating
        cc->nr_migratepages in compaction_alloc(), which will waste more CPU
        cycles and cause too many freepages to be isolated.

        So we should also update the cc->nr_migratepages when allocating or
        freeing the freepages to avoid isolating excess freepages.  And I can see
        fewer free pages are scanned and isolated when running thpcompact on my
        Arm64 server:

                                               k6.7         k6.7_patched
        Ops Compaction pages isolated      120692036.00   118160797.00
        Ops Compaction migrate scanned     131210329.00   154093268.00
        Ops Compaction free scanned       1090587971.00  1080632536.00
        Ops Compact scan efficiency               12.03          14.26

        Moreover, I did not see an obvious latency improvements, this is likely
        because isolating freepages is not the bottleneck in the thpcompact test
        case.

                                      k6.7                  k6.7_patched
        Amean     fault-both-1      1089.76 (   0.00%)     1080.16 *   0.88%*
        Amean     fault-both-3      1616.48 (   0.00%)     1636.65 *  -1.25%*
        Amean     fault-both-5      2266.66 (   0.00%)     2219.20 *   2.09%*
        Amean     fault-both-7      2909.84 (   0.00%)     2801.90 *   3.71%*
        Amean     fault-both-12     4861.26 (   0.00%)     4733.25 *   2.63%*
        Amean     fault-both-18     7351.11 (   0.00%)     6950.51 *   5.45%*
        Amean     fault-both-24     9059.30 (   0.00%)     9159.99 *  -1.11%*
        Amean     fault-both-30    10685.68 (   0.00%)    11399.02 *  -6.68%*

Change-Id: I103a43fd1b549360b3fc978fd409b7c17ef3e192
Signed-off-by: Kienan Stewart <kstewart@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 months agoFix: ASoC add component to set_bias_level events in linux 6.9-rc1
Kienan Stewart [Mon, 25 Mar 2024 13:40:29 +0000 (09:40 -0400)] 
Fix: ASoC add component to set_bias_level events in linux 6.9-rc1

See upstream commit:

    commit 6ef46a69ec32fe1cf56de67742fcd01af4bf48af
    Author: Luca Ceresoli <luca.ceresoli@bootlin.com>
    Date:   Wed Mar 6 10:30:00 2024 +0100

        ASoC: trace: add component to set_bias_level trace events

        The snd_soc_bias_level_start and snd_soc_bias_level_done trace events
        currently look like:

                   aplay-229   [000]  1250.140778: snd_soc_bias_level_start: card=vscn-2046 val=1
                   aplay-229   [000]  1250.140784: snd_soc_bias_level_done: card=vscn-2046 val=1
                   aplay-229   [000]  1250.140786: snd_soc_bias_level_start: card=vscn-2046 val=2
                   aplay-229   [000]  1250.140788: snd_soc_bias_level_done: card=vscn-2046 val=2
            kworker/u8:1-21    [000]  1250.140871: snd_soc_bias_level_start: card=vscn-2046 val=1
            kworker/u8:0-11    [000]  1250.140951: snd_soc_bias_level_start: card=vscn-2046 val=1
            kworker/u8:0-11    [000]  1250.140956: snd_soc_bias_level_done: card=vscn-2046 val=1
            kworker/u8:0-11    [000]  1250.140959: snd_soc_bias_level_start: card=vscn-2046 val=2
            kworker/u8:0-11    [000]  1250.140961: snd_soc_bias_level_done: card=vscn-2046 val=2
            kworker/u8:1-21    [000]  1250.167219: snd_soc_bias_level_done: card=vscn-2046 val=1
            kworker/u8:1-21    [000]  1250.167222: snd_soc_bias_level_start: card=vscn-2046 val=2
            kworker/u8:1-21    [000]  1250.167232: snd_soc_bias_level_done: card=vscn-2046 val=2
            kworker/u8:0-11    [000]  1250.167440: snd_soc_bias_level_start: card=vscn-2046 val=3
            kworker/u8:0-11    [000]  1250.167444: snd_soc_bias_level_done: card=vscn-2046 val=3
            kworker/u8:1-21    [000]  1250.167497: snd_soc_bias_level_start: card=vscn-2046 val=3
            kworker/u8:1-21    [000]  1250.167506: snd_soc_bias_level_done: card=vscn-2046 val=3

        There are clearly multiple calls, one per component, but they cannot be
        discriminated from each other.

        Change the ftrace events to also print the component name, to make it clear
        which part of the code is involved. This requires changing the passed value
        from a struct snd_soc_card, where the DAPM context is not kwown, to a
        struct snd_soc_dapm_context where it is obviously known but the a card
        pointer is also available.

        With this change, the resulting trace becomes:

                   aplay-247   [000]  1436.357332: snd_soc_bias_level_start: card=vscn-2046 component=(none) val=1
                   aplay-247   [000]  1436.357338: snd_soc_bias_level_done: card=vscn-2046 component=(none) val=1
                   aplay-247   [000]  1436.357340: snd_soc_bias_level_start: card=vscn-2046 component=(none) val=2
                   aplay-247   [000]  1436.357343: snd_soc_bias_level_done: card=vscn-2046 component=(none) val=2
            kworker/u8:4-215   [000]  1436.357437: snd_soc_bias_level_start: card=vscn-2046 component=ff560000.codec val=1
            kworker/u8:5-231   [000]  1436.357518: snd_soc_bias_level_start: card=vscn-2046 component=ff320000.i2s val=1
            kworker/u8:5-231   [000]  1436.357523: snd_soc_bias_level_done: card=vscn-2046 component=ff320000.i2s val=1
            kworker/u8:5-231   [000]  1436.357526: snd_soc_bias_level_start: card=vscn-2046 component=ff320000.i2s val=2
            kworker/u8:5-231   [000]  1436.357528: snd_soc_bias_level_done: card=vscn-2046 component=ff320000.i2s val=2
            kworker/u8:4-215   [000]  1436.383217: snd_soc_bias_level_done: card=vscn-2046 component=ff560000.codec val=1
            kworker/u8:4-215   [000]  1436.383221: snd_soc_bias_level_start: card=vscn-2046 component=ff560000.codec val=2
            kworker/u8:4-215   [000]  1436.383231: snd_soc_bias_level_done: card=vscn-2046 component=ff560000.codec val=2
            kworker/u8:5-231   [000]  1436.383468: snd_soc_bias_level_start: card=vscn-2046 component=ff320000.i2s val=3
            kworker/u8:5-231   [000]  1436.383472: snd_soc_bias_level_done: card=vscn-2046 component=ff320000.i2s val=3
            kworker/u8:4-215   [000]  1436.383503: snd_soc_bias_level_start: card=vscn-2046 component=ff560000.codec val=3
            kworker/u8:4-215   [000]  1436.383513: snd_soc_bias_level_done: card=vscn-2046 component=ff560000.codec val=3

Change-Id: I959f1680c002acdf29828b968d3975247f5433d8
Signed-off-by: Kienan Stewart <kstewart@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 months agoFix: ASoC snd_doc_dapm on linux 6.9-rc1
Kienan Stewart [Mon, 25 Mar 2024 12:54:42 +0000 (08:54 -0400)] 
Fix: ASoC snd_doc_dapm on linux 6.9-rc1

See upstream commit:

    commit 7df3eb4cdb6bbfa482f51548b9fd47c2723c68ba
    Author: Luca Ceresoli <luca.ceresoli@bootlin.com>
    Date:   Wed Mar 6 10:30:01 2024 +0100

        ASoC: trace: add event to snd_soc_dapm trace events

        Add the event value to the snd_soc_dapm_start and snd_soc_dapm_done trace
        events to make them more informative.

        Trace before:

                   aplay-229   [000]   250.140309: snd_soc_dapm_start:   card=vscn-2046
                   aplay-229   [000]   250.167531: snd_soc_dapm_done:    card=vscn-2046
                   aplay-229   [000]   251.169588: snd_soc_dapm_start:   card=vscn-2046
                   aplay-229   [000]   251.195245: snd_soc_dapm_done:    card=vscn-2046

        Trace after:

                   aplay-214   [000]   693.290612: snd_soc_dapm_start:   card=vscn-2046 event=1
                   aplay-214   [000]   693.315508: snd_soc_dapm_done:    card=vscn-2046 event=1
                   aplay-214   [000]   694.537349: snd_soc_dapm_start:   card=vscn-2046 event=2
                   aplay-214   [000]   694.563241: snd_soc_dapm_done:    card=vscn-2046 event=2

Change-Id: If0d33544b8dd1dfb3d12ca9390892190fc0444b0
Signed-off-by: Kienan Stewart <kstewart@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 months agoFix: support ext4_journal_start on EL 8.4+
Kienan Stewart [Fri, 22 Mar 2024 13:55:55 +0000 (09:55 -0400)] 
Fix: support ext4_journal_start on EL 8.4+

The lower value of the EL range, 240.15.1, corresponds to the first
import of EL r8 kernels into Rocky Linux's kernel staging repo.
The change may have been introduced in an earlier RHEL 8 kernel,
prior to the history of imports into Rocky.

Change-Id: Ibec02b382478bee33947d079f33835823827f4c5
Signed-off-by: Kienan Stewart <kstewart@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 months agoFix: build kvm probe on EL 8.4+
Kienan Stewart [Fri, 22 Mar 2024 13:28:08 +0000 (09:28 -0400)] 
Fix: build kvm probe on EL 8.4+

The lower value of the EL range, 240.15.1, corresponds to the first
import of EL r8 kernels into Rocky Linux's kernel staging repo.
The change may have been introduced in an earlier RHEL 8 kernel,
prior to the history of imports into Rocky.

Change-Id: Icefe472d43e28cc09746e9e046b12299609ebab1
Signed-off-by: Kienan Stewart <kstewart@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 months agoFix: correct RHEL range for kmem_cache_free define
Kienan Stewart [Thu, 21 Mar 2024 19:16:29 +0000 (15:16 -0400)] 
Fix: correct RHEL range for kmem_cache_free define

When compiling against RHEL 8.5 kernels, lttng-modules builds fail
with the following error:

```
lttng-modules/src/probes/../../include/lttng/tracepoint-event-impl.h:133:6: error: conflicting types for ‘trace_kmem_
cache_free’; have ‘void(long unsigned int,  const void *)’
```

The original range was introduced in commit
89d917153fc52c1e5b0ddabf8ee078897656b263 which tested against RHEL 8.6
and not RHEL 8.5.

Change-Id: Icff98c15415ce8e1e95a10974cd65ed6e84cd00a
Signed-off-by: Kienan Stewart <kstewart@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 months agodocs: Add supported versions and fix-backport policy
Kienan Stewart [Thu, 14 Mar 2024 15:37:05 +0000 (11:37 -0400)] 
docs: Add supported versions and fix-backport policy

Change-Id: I5d6da21b9541f838cb326263eff8c1448e37fc55
Signed-off-by: Kienan Stewart <kstewart@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 months agoFix: Correct minimum version in jbd2 SLE kernel range
Kienan Stewart [Fri, 8 Mar 2024 17:47:06 +0000 (12:47 -0500)] 
Fix: Correct minimum version in jbd2 SLE kernel range

This range was introduced in commit b49650509ff072d37ec112cf45a5f14f382c9a31;
however, the range is wrong and worked because the kernel versions
(eg. `5.14.21-150400.24.100-default`) were evaluated to values
greater than `LTTNG_SLE_KERNEL_RANGE(5,14,21,24,46,1)`.

As a result builds of lttng-modules against older versions of SLE
kernels failed.

Change-Id: I23d97d84a23c7b24e957fe943932d6aefbe1b409
Signed-off-by: Kienan Stewart <kstewart@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
8 months agoFix: Handle recent SLE major version codes
Kienan Stewart [Fri, 8 Mar 2024 16:26:02 +0000 (11:26 -0500)] 
Fix: Handle recent SLE major version codes

Starting in early 2022, the SLE linux version codes changed from the
previous style `5.3.18-59.40.1` to a new convention in which the major
version is a compound number consisting of the major release version,
the service pack version, and the auxillary version (currently unused
from my understanding) similar to the following `5.3.18-150300.59.43.1`[1].

The newer values used in the SLE major version causes the integer
value to "overflow" the expected number of digits and the comparisons
may fail. The `LTTNG_SLE_KERNEL_VERSION` macro also multiplies the
`LTTNG_KERNEL_VERSION` by `100000000ULL` which doesn't work in all
situations, as the resulting value is too large to be stored fully in
an `unsigned long long`.

Example of previous results:

```
// Example range comparison. True or false depending on the value of
// `LTTNG_SLE_VERSION_CODE` and `LTTNG_LINUX_VERSION_CODE`.
LTTNG_SLE_KERNEL_RANGE(5,15,21,150400,24,46, 5,15,0,0,0,0);

// Note: values printed with `%ull`
LTTNG_SLE_KERNEL_VERSION(5,15,21,24,26,1); // 6106486698364570153
LTTNG_SLE_KERNEL_VERSION(5,15,0,0,0,0);    // 0
LTTNG_KERNEL_VERSION(5,15,0);              // 84869120

// Corrected SLE version codes
LTTNG_SLE_KERNEL_VERSION(5,14,21,150400,24,26); // 14918348902249793914
LTTNG_SLE_KERNEL_VERSION(5,14,21,150400,24,46); // 14918348902249793934
LTTNG_SLE_KERNEL_VERSION(5,15,0,150400,0,0));   // 6971507145825058816
```

`LTTNG_KERNEL_VERSION` packs the kernel version into a 32-bit integer;
however, using that type of packing on the SLE kernel version will not
work well:

* Major: `150400` needs 18 bits
* Minor: may exceed 127, requires 8 bits (eg. `4.12.14-150100.197.148.1`)
* Patch: may exceed 127, requires 8 bits (eg. `5.3.18-150300.59.124.1`)

In this patch, the SLE version is packed into a 64-bit integer
with 48 bits for the major version, 8 bits for each of the minor and
patch versions.

As a result of packing the SLE version into a 64-bit integer,
it is not possible to coherently combine an `LTTNG_KERNEL_VERSION` and
an `LTTNG_SLE_KERNEL_VERSION`. Doing so would require an integer
larger than 64-bits. Therefore, the `LTTNG_SLE_KERNEL_RANGE` macro has
been adjusted to perform the range comparisons using the two values
separately. The usage of the `LTTNG_SLE_KERNEL_RANGE` remains
unchanged, as `LTTNG_SLE_VERSION` is only used inside that macro.

Using the adjusted macros:

```
// Example range comparison. True or false depending on the value of
// `LTTNG_SLE_VERSION_CODE` and `LTTNG_LINUX_VERSION_CODE`.
LTTNG_SLE_KERNEL_RANGE(5,15,21,150400,24,46, 5,15,0,0,0,0);

// Note: values printed with `%ull`
LTTNG_SLE_VERSION(24,26,1); // 1579521
LTTNG_SLE_VERSION(0,0,0);   // 0
LTTNG_KERNEL_VERSION(5,15,0);      // 84869120

// Corrected SLE version codes
LTTNG_SLE_VERSION(150400,24,26); // 9856620570
LTTNG_SLE_VERSION(150400,24,46); // 9856620590
LTTNG_SLE_VERSION(150400,0,0));  // 9863168000
```

Known drawbacks
===============

It's possible that future releases of SLE kernels have minor or patch
values that exceed 255 (SLE15SP1 has a release using `197`, for example),
requiring an adjustment to using more bits for those fields when
packing into a 64-bit integer.

The schema of multiplying an `LTTNG_KERNEL_VERSION` by a large value
is used for other distributions. RHEL in particular uses
`100000000ULL`, which could lead to overflow issues with certain
comparisons similar to the previous behaviour of
`LTTNG_SLE_KERNEL_VERSION(5,15,0,0,0,0);`.

[1]: https://www.suse.com/support/kb/doc/?id=000019587#SLE15SP4

Change-Id: Iaa90bfa422e47213a13829cdf008ab20d7484cab
Signed-off-by: Kienan Stewart <kstewart@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
9 months agoFix: build on sles15sp4
Kienan Stewart [Tue, 27 Feb 2024 16:47:58 +0000 (11:47 -0500)] 
Fix: build on sles15sp4

Introduced in 5.14.21-150400.46.1.

See SLE commit:

    commit 96a814b6c528f45fc92bf8e6de90ad8923511091
    Author: Petr Pavlu <petr.pavlu@suse.com>
    Date:   Tue Jan 24 14:52:24 2023 +0100

        jbd2: use the correct print format (git-fixes).

        suse-commit: 34db311bec3ca4388b82b2355eed7c08b25f5a2e

Change-Id: Ic267b9498b7f9a4a814514ff82f9226f844c133f
Signed-off-by: Kienan Stewart <kstewart@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
9 months agoCompile fixes for RHEL 9.3 kernels
Martin Hicks [Fri, 26 Jan 2024 17:18:33 +0000 (12:18 -0500)] 
Compile fixes for RHEL 9.3 kernels

The ranges were build tested on RHEL9.2 (5.14.0-284.11.1), RHEL9.3
(5.14.0-362.8.1) and RHEL8.9 (4.18.0-513.11.1).

This disables the kmem and compaction modules.  I don't believe getting
these to compile will be easy, as the required struct declarations are
in vmlinux.h, and haven't been moved into mm/internal.h and mm/slab.h in
the RHEL sources.

Change-Id: I999c593d6850e2327f6e9df8432a4ea2325a7cea
Signed-off-by: Martin Hicks <martin@sr-research.com>
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
This page took 0.05093 seconds and 4 git commands to generate.