Michael Jeanson [Mon, 28 Oct 2024 20:02:59 +0000 (16:02 -0400)]
Fix: silence 'non-consumed' message for non-started sessions
Destroying a session with at least one enabled event and which has never
been started will currently result in an error message in the kernel log
about 'non-consumed data' for each of the per-cpu buffer. This happens
because a packet header is created in the buffer but never consumed if
the session is not started.
Add a check in the buffer cleanup code to avoid printing 'non-consumed
data' errors for buffers associated with a session taht was never
started.
Change-Id: I1358e1ae49d03544a961515b97b115a488434e27
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Thu, 17 Oct 2024 20:59:07 +0000 (16:59 -0400)]
fix: writeback: Refine the show_inode_state() macro definition (v6.12)
See upstream commit :
commit
459ca85ae1feff78d1518344df88bb79a092780c
Author: Julian Sun <sunjunchao2870@gmail.com>
Date: Wed Aug 28 16:13:59 2024 +0800
writeback: Refine the show_inode_state() macro definition
Currently, the show_inode_state() macro only prints
part of the state of inode->i_state. Let’s improve it
to display more of its state.
Change-Id: Idaebd56f5775205f8a5c76e117c5ab65f7f1754b
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Kienan Stewart [Mon, 29 Jul 2024 14:23:02 +0000 (14:23 +0000)]
Fix: scsi: sd: Atomic write support added in 6.11-rc1
See upstream commit:
commit
bf4ae8f2e6407a779c0368eb0f3e047a8333be17
Author: John Garry <john.g.garry@oracle.com>
Date: Thu Jun 20 12:53:57 2024 +0000
scsi: sd: Atomic write support
Support is divided into two main areas:
- reading VPD pages and setting sdev request_queue limits
- support WRITE ATOMIC (16) command and tracing
The relevant block limits VPD page need to be read to allow the block layer
request_queue atomic write limits to be set. These VPD page limits are
described in sbc4r22 section 6.6.4 - Block limits VPD page.
There are five limits of interest:
- MAXIMUM ATOMIC TRANSFER LENGTH
- ATOMIC ALIGNMENT
- ATOMIC TRANSFER LENGTH GRANULARITY
- MAXIMUM ATOMIC TRANSFER LENGTH WITH BOUNDARY
- MAXIMUM ATOMIC BOUNDARY SIZE
MAXIMUM ATOMIC TRANSFER LENGTH is the maximum length for a WRITE ATOMIC
(16) command. It will not be greater than the device MAXIMUM TRANSFER
LENGTH.
ATOMIC ALIGNMENT and ATOMIC TRANSFER LENGTH GRANULARITY are the minimum
alignment and length values for an atomic write in terms of logical blocks.
Unlike NVMe, SCSI does not specify an LBA space boundary, but does specify
a per-IO boundary granularity. The maximum boundary size is specified in
MAXIMUM ATOMIC BOUNDARY SIZE. When used, this boundary value is set in the
WRITE ATOMIC (16) ATOMIC BOUNDARY field - layout for the WRITE_ATOMIC_16
command can be found in sbc4r22 section 5.48. This boundary value is the
granularity size at which the device may atomically write the data. A value
of zero in WRITE ATOMIC (16) ATOMIC BOUNDARY field means that all data must
be atomically written together.
MAXIMUM ATOMIC TRANSFER LENGTH WITH BOUNDARY is the maximum atomic write
length if a non-zero boundary value is set.
For atomic write support, the WRITE ATOMIC (16) boundary is not of much
interest, as the block layer expects each request submitted to be executed
be atomically written together.
MAXIMUM ATOMIC TRANSFER LENGTH WITH BOUNDARY is the maximum atomic write
length if a non-zero boundary value is set.
For atomic write support, the WRITE ATOMIC (16) boundary is not of much
interest, as the block layer expects each request submitted to be executed
atomically. However, the SCSI spec does leave itself open to a quirky
scenario where MAXIMUM ATOMIC TRANSFER LENGTH is zero, yet MAXIMUM ATOMIC
TRANSFER LENGTH WITH BOUNDARY and MAXIMUM ATOMIC BOUNDARY SIZE are both
non-zero. This case will be supported.
To set the block layer request_queue atomic write capabilities, sanitize
the VPD page limits and set limits as follows:
- atomic_write_unit_min is derived from granularity and alignment values.
If no granularity value is not set, use physical block size
- atomic_write_unit_max is derived from MAXIMUM ATOMIC TRANSFER LENGTH. In
the scenario where MAXIMUM ATOMIC TRANSFER LENGTH is zero and boundary
limits are non-zero, use MAXIMUM ATOMIC BOUNDARY SIZE for
atomic_write_unit_max. New flag scsi_disk.use_atomic_write_boundary is
set for this scenario.
- atomic_write_boundary_bytes is set to zero always
SCSI also supports a WRITE ATOMIC (32) command, which is for type 2
protection enabled. This is not going to be supported now, so check for
T10_PI_TYPE2_PROTECTION when setting any request_queue limits.
To handle an atomic write request, add support for WRITE ATOMIC (16)
command in handler sd_setup_atomic_cmnd(). Flag use_atomic_write_boundary
is checked here for encoding ATOMIC BOUNDARY field.
Trace info is also added for WRITE_ATOMIC_16 command.
Change-Id: Ie072002fe2184615c72531ac081a324ef18cfb03
Signed-off-by: Kienan Stewart <kstewart@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Kienan Stewart [Mon, 29 Jul 2024 14:14:24 +0000 (14:14 +0000)]
Fix: block_start removed from btrfs_get_extent in 6.11-rc1
See upstream commit:
commit
c77a8c61002e91d859e118008fd495efbe1d9373
Author: Qu Wenruo <wqu@suse.com>
Date: Tue Apr 30 07:53:06 2024 +0930
btrfs: remove extent_map::block_start member
The member extent_map::block_start can be calculated from
extent_map::disk_bytenr + extent_map::offset for regular extents.
And otherwise just extent_map::disk_bytenr.
And this is already validated by the validate_extent_map(). Now we can
remove the member.
However there is a special case in btrfs_create_dio_extent() where we
for NOCOW/PREALLOC ordered extents cannot directly use the resulting
btrfs_file_extent, as btrfs_split_ordered_extent() cannot handle them
yet.
So for that call site, we pass file_extent->disk_bytenr +
file_extent->num_bytes as disk_bytenr for the ordered extent, and 0 for
offset.
Change-Id: I2e3245bb0d1f5263e902659aa05848d5e231909b
Signed-off-by: Kienan Stewart <kstewart@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Kienan Stewart [Mon, 29 Jul 2024 14:12:47 +0000 (14:12 +0000)]
Fix: block_len removed frmo btrfs_get_extent in 6.11-rc1
See upstream commit:
commit
e28b851ed9b232c3b84cb8d0fedbdfa8ca881386
Author: Qu Wenruo <wqu@suse.com>
Date: Tue Apr 30 07:53:05 2024 +0930
btrfs: remove extent_map::block_len member
The extent_map::block_len is either extent_map::len (non-compressed
extent) or extent_map::disk_num_bytes (compressed extent).
Since we already have sanity checks to do the cross-checks between the
new and old members, we can drop the old extent_map::block_len now.
For most call sites, they can manually select extent_map::len or
extent_map::disk_num_bytes, since most if not all of them have checked
if the extent is compressed.
Change-Id: Ib03fc685b4e876bf4e53afdd28ca9826342a0e4e
Signed-off-by: Kienan Stewart <kstewart@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Kienan Stewart [Mon, 29 Jul 2024 14:11:36 +0000 (14:11 +0000)]
Fix: orig_start removed from btrfs_get_extent in 6.11-rc1
See upstream commit:
commit
4aa7b5d1784f510c0f42afc1d74efb41947221d7
Author: Qu Wenruo <wqu@suse.com>
Date: Tue Apr 30 07:53:04 2024 +0930
btrfs: remove extent_map::orig_start member
Since we have extent_map::offset, the old extent_map::orig_start is just
extent_map::start - extent_map::offset for non-hole/inline extents.
And since the new extent_map::offset is already verified by
validate_extent_map() while the old orig_start is not, let's just remove
the old member from all call sites.
Change-Id: I025a30d49b3e3ddc37d7846acc191ebbdf2ff19e
Signed-off-by: Kienan Stewart <kstewart@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Kienan Stewart [Mon, 29 Jul 2024 14:08:32 +0000 (14:08 +0000)]
Fix: ext4_da_reserve_space changed in 6.11-rc1
See upstream commit:
commit
0d66b23d79c750276f791411d81a524549a64852
Author: Zhang Yi <yi.zhang@huawei.com>
Date: Fri May 17 20:40:02 2024 +0800
ext4: make ext4_da_reserve_space() reserve multi-clusters
Add 'nr_resv' parameter to ext4_da_reserve_space(), which indicates the
number of clusters wants to reserve, make it reserve multiple clusters
at a time.
Change-Id: Ib1ce8c3023d53a6d22ec444a435fdb3c871f64c5
Signed-off-by: Kienan Stewart <kstewart@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Kienan Stewart [Mon, 29 Jul 2024 14:01:18 +0000 (14:01 +0000)]
Fix: kfree_skb changed in 6.11-rc1
See upstream commit:
commit
c53795d48ee8f385c6a9e394651e7ee914baaeba
Author: Yan Zhai <yan@cloudflare.com>
Date: Mon Jun 17 11:09:04 2024 -0700
net: add rx_sk to trace_kfree_skb
skb does not include enough information to find out receiving
sockets/services and netns/containers on packet drops. In theory
skb->dev tells about netns, but it can get cleared/reused, e.g. by TCP
stack for OOO packet lookup. Similarly, skb->sk often identifies a local
sender, and tells nothing about a receiver.
Allow passing an extra receiving socket to the tracepoint to improve
the visibility on receiving drops.
Change-Id: I33c8ce1a48006456f198ab1592f733b55be01016
Signed-off-by: Kienan Stewart <kstewart@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Tue, 23 Jul 2024 19:20:51 +0000 (15:20 -0400)]
Introduce extension points for trace hit counters
Introduce two extension points for trace hit counters:
1) Future "actions" to perform other than "increment",
2) Future dimension indexing schemes (keys) other than tokens.
Change the layout of struct lttng_kernel_abi_counter_key_dimension
by adding a "key_type" field. A new struct lttng_kernel_abi_counter_key_dimension_tokens
inherits from struct lttng_kernel_abi_counter_key_dimension, and contains
the uint32_t nr_key_tokens field. The only currently supported key_type
is LTTNG_KERNEL_ABI_KEY_TYPE_TOKENS = 0.
Change the layout of struct lttng_kernel_abi_counter_event by adding an
"action" field. The only currently supported action is
LTTNG_KERNEL_ABI_COUNTER_ACTION_INCREMENT = 0.
Change the struct lttng_kernel_abi_key_token_string so it inherits from
struct lttng_kernel_abi_key_token. The "len" field of
struct lttng_kernel_abi_key_token now includes the length of the entire
child structure.
Remove struct lttng_kernel_abi_counter_key: it was previously expecting
all key dimensions to have the same size. But because each dimension can
be of a different type, each may have its own distinct size.
Change the newly introduced API between probe providers to change the
"event_counter_add" callback into a "counter_hit" callback, which takes
one less argument (no integer value), but takes additional stack_data,
probe_ctx, and event_counter_ctx arguments for future use.
Change-Id: I4de86a9fac75ce759f58b545dffa2f99c59f5688
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Fri, 26 Jul 2024 19:39:58 +0000 (15:39 -0400)]
Fix: event notifier: set eval_capture to false for kprobe, kretprobe and uprobe
Trying to capture fields for kprobe, kretprobe, uprobe, event
notifications will end up dereferencing NULL pointers. Prevent execution
of capture code in those cases.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: If86b0602351fb42047b184608b28108e9de0d183
Michael Jeanson [Tue, 18 Jun 2024 18:35:38 +0000 (14:35 -0400)]
Implement REUSE 3.0 with SPDX identifiers
Implement the full REUSE spec [1] to help with copyright and licensing
audits and compliance. This will reduce a lot of manual work for the
licensing audit required in Debian on each update and also allow using
automated tools.
For files that lacked copyright and licensing information, I used the
following guidelines. If a clear author could be determined from the git
history use it, otherwise use 'EfficiOS Inc.'. For code use
'GPL-2.0-only OR LGPL-2.1-only' unless otherwise stated, for
documentation 'CC-BY-SA-4.0' and for data files 'CC0-1.0'.
Freeform text files were converted to Markdown to allow licensing
comments.
Running the reuse tool on the repo is now succesful:
$ reuse lint
# SUMMARY
* Bad licenses: 0
* Deprecated licenses: 0
* Licenses without file extension: 0
* Missing licenses: 0
* Unused licenses: 0
* Used licenses: CC0-1.0, GPL-2.0-only, CC-BY-SA-4.0, MIT, LGPL-2.1-only
* Read errors: 0
* files with copyright information: 358 / 358
* files with license information: 358 / 358
Congratulations! Your project is compliant with version 3.0 of the REUSE Specification :-)
[1] https://reuse.software/tutorial/
Change-Id: I1755cab24a6fcec7a6c9a2136891418203ec34b8
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Wed, 17 Jul 2024 15:32:31 +0000 (11:32 -0400)]
fix: add 'static inline' to lttng_kretprobes_init_event()
Add missing 'static inline' to lttng_kretprobes_init_event() placeholder
function when CONFIG_KRETPROBES is not set. Also some minor reformating
to improve readability.
Change-Id: I23cf83dff99f4168ae0f339c2b4911796e0b0273
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Tue, 16 Jul 2024 21:02:36 +0000 (17:02 -0400)]
fix: copy_struct_from_user() for non-LTS branches < v4.19
The 'linux/bits.h' was backported to LTS branches but is not available
on non-LTS before v4.19. Use 'asm/byteorder.h' instead to get the
__LITTLE_ENDIAN define which is available on all kernel versions we
support.
Change-Id: Icfe733ab944616b3bd6d0023ad0869eefb830b34
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Michael Jeanson [Tue, 16 Jul 2024 19:16:18 +0000 (15:16 -0400)]
fix: copy_struct_from_user() wrapper
* Add 'static inline' to lttng_check_zeroed_user()
* Add missing parenthesis in lttng_check_zeroed_user()
* Add wrapper for aligned_byte_mask()
Change-Id: I92f3bce14ac91e896148d455de2ae0634b4d7972
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mathieu Desnoyers [Sat, 3 Sep 2022 18:44:49 +0000 (14:44 -0400)]
Fix: lttng-abi: zero-init counter_conf
Both lttng_abi_copy_user_old_counter_conf and
lttng_abi_copy_user_counter_conf should zero-init the counter_conf
destination argument, else the "dimension->flags" field is uninitialized
before being OR'd with flags.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Ib2e0ca5871ec6fc9f485ec1b60f362de9568b9d1
Mathieu Desnoyers [Fri, 2 Sep 2022 20:44:45 +0000 (16:44 -0400)]
counter ABI: Fix too large stack size warning
Fix the following warning by splitting lttng_counter_ioctl (which has a
lot of local variables in the switch/case legs) into many sub-functions.
/home/efficios/git/lttng-modules/src/lttng-abi.c: In function ‘lttng_counter_ioctl’:
/home/efficios/git/lttng-modules/src/lttng-abi.c:1227:1: warning: the frame size of 1032 bytes is larger than 1024 bytes [-Wframe-larger-than=]
1227 | }
| ^
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I250c78827a743c024da2e28fe807fdd5c290e686
Mathieu Desnoyers [Fri, 2 Sep 2022 20:19:06 +0000 (16:19 -0400)]
__lttng_counter_add: skip effect-less code when global_sum_step=0
Skip effect-less code in the common case where global_sum_step=0.
This saves about 1.5ns on x86-64.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I62e8d163143780e64d7130051b1013470fef48fe
Mathieu Desnoyers [Fri, 8 Apr 2022 16:22:14 +0000 (12:22 -0400)]
ABI: add key_string_len output field in lttng_kernel_abi_counter_map_descriptor
Tell userspace the size of the key string. Useful to adjust memory
allocation for a retry.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Ifde8f2acc841579b717b78128f8bfddbc0dfee26
Mathieu Desnoyers [Thu, 24 Mar 2022 19:03:45 +0000 (15:03 -0400)]
Implement extensible LTTNG_KERNEL_ABI_COUNTER_EVENT ABI
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I427287757a8842ab163791a6b34918ce80adcf51
Mathieu Desnoyers [Thu, 24 Mar 2022 18:38:20 +0000 (14:38 -0400)]
Implement extensible LTTNG_KERNEL_ABI_COUNTER_MAP_DESCRIPTOR
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: Ibd16679a5e3354553a9b606a6f3a5f9f2692836d
Mathieu Desnoyers [Thu, 24 Mar 2022 17:58:45 +0000 (13:58 -0400)]
Implement extensible counter read, aggregate, clear ioctls
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I5984e5442dbfe47e00fe4166d0d6cc686e51d655
Mathieu Desnoyers [Thu, 24 Mar 2022 16:21:10 +0000 (12:21 -0400)]
Implement counter configuration/dimensions extensible ABI
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I0660738c60a128b57a6975e65db5bf2a1562a323
Mathieu Desnoyers [Thu, 24 Mar 2022 15:17:52 +0000 (11:17 -0400)]
Implement copy_user_event_param_ext with lttng_copy_struct_from_user
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I55b0c811acc0c09374091dfa2cdc7535d22c9f34
Mathieu Desnoyers [Thu, 24 Mar 2022 15:10:06 +0000 (11:10 -0400)]
Introduce wrapper lttng_copy_struct_from_user
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I67e3d0249bbfdb5bc6e9d469119220a1fe3f03fd
Mathieu Desnoyers [Wed, 23 Mar 2022 20:23:45 +0000 (16:23 -0400)]
Introduce event counter extensible ABI structure layout
Introduce event counter ioctl argument structure with extensible layout
for new ioctls.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I120e057d136951973b9af801fd4940fb9866ce94
Mathieu Desnoyers [Wed, 23 Mar 2022 18:06:59 +0000 (14:06 -0400)]
ABI refactoring: Rename event counter ABI to "old"
The counter ioctls exposed in 2.13 for notifications use a fixed-size
array for the number of dimensions.
We aim to replace this by variable length arrays in 2.14 for event
counters, and introduce new ABIs as extensible structures.
Rename the ioctls as follows:
- LTTNG_KERNEL_ABI_COUNTER -> LTTNG_KERNEL_ABI_OLD_COUNTER
- LTTNG_KERNEL_ABI_COUNTER_READ -> LTTNG_KERNEL_ABI_OLD_COUNTER_READ
- LTTNG_KERNEL_ABI_COUNTER_AGGREGATE -> LTTNG_KERNEL_ABI_OLD_COUNTER_AGGREGATE
- LTTNG_KERNEL_ABI_COUNTER_CLEAR -> LTTNG_KERNEL_ABI_OLD_COUNTER_CLEAR
And rename the following structures:
- lttng_kernel_abi_counter_dimension -> lttng_kernel_abi_old_counter_dimension
- lttng_kernel_abi_counter_conf -> lttng_kernel_abi_old_counter_conf
- lttng_kernel_abi_counter_index -> lttng_kernel_abi_old_counter_index
- lttng_kernel_abi_counter_value -> lttng_kernel_abi_old_counter_value
- lttng_kernel_abi_counter_read -> lttng_kernel_abi_old_counter_read
- lttng_kernel_abi_counter_aggregate -> lttng_kernel_abi_old_counter_aggregate
- lttng_kernel_abi_counter_clear -> lttng_kernel_abi_old_counter_clear
Introduce "TODO" comments where the new ABIs should be implemented.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I7a4f04e89a56ca1415d326976c4ea3afb9715295
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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
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
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
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
This page took 0.0453 seconds and 4 git commands to generate.