lttng-modules.git
2 years agoAdd missing 'random' tracepoints
Michael Jeanson [Thu, 27 Jan 2022 16:43:12 +0000 (11:43 -0500)] 
Add missing 'random' tracepoints

Add the 'random_' prefix to the new events names to match the rest of
the file.

Change-Id: I7b60d24e901c390ff16dc1e2ab2199dda17239d1
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agofix: net: skb: introduce kfree_skb_reason() (v5.17)
Michael Jeanson [Wed, 26 Jan 2022 19:49:11 +0000 (14:49 -0500)] 
fix: net: skb: introduce kfree_skb_reason() (v5.17)

See upstream commit :

  commit c504e5c2f9648a1e5c2be01e8c3f59d394192bd3
  Author: Menglong Dong <imagedong@tencent.com>
  Date:   Sun Jan 9 14:36:26 2022 +0800

    net: skb: introduce kfree_skb_reason()

    Introduce the interface kfree_skb_reason(), which is able to pass
    the reason why the skb is dropped to 'kfree_skb' tracepoint.

    Add the 'reason' field to 'trace_kfree_skb', therefor user can get
    more detail information about abnormal skb with 'drop_monitor' or
    eBPF.

    All drop reasons are defined in the enum 'skb_drop_reason', and
    they will be print as string in 'kfree_skb' tracepoint in format
    of 'reason: XXX'.

    ( Maybe the reasons should be defined in a uapi header file, so that
    user space can use them? )

Change-Id: I6766678a288da959498a4736fc3f95bf239c3e94
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agoIntroduce hrtimer_mode enumeration
Mathieu Desnoyers [Fri, 28 Jan 2022 16:26:56 +0000 (11:26 -0500)] 
Introduce hrtimer_mode enumeration

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

2 years agofix: random: rather than entropy_store abstraction, use global (v5.17)
Michael Jeanson [Wed, 26 Jan 2022 19:53:41 +0000 (14:53 -0500)] 
fix: random: rather than entropy_store abstraction, use global (v5.17)

See upstream commit :

  commit 90ed1e67e896cc8040a523f8428fc02f9b164394
  Author: Jason A. Donenfeld <Jason@zx2c4.com>
  Date:   Wed Jan 12 17:18:08 2022 +0100

    random: rather than entropy_store abstraction, use global

    Originally, the RNG used several pools, so having things abstracted out
    over a generic entropy_store object made sense. These days, there's only
    one input pool, and then an uneven mix of usage via the abstraction and
    usage via &input_pool. Rather than this uneasy mixture, just get rid of
    the abstraction entirely and have things always use the global. This
    simplifies the code and makes reading it a bit easier.

Change-Id: I1a2a14d7b6e69a047804e1e91e00fe002f757431
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agofix: btrfs: pass fs_info to trace_btrfs_transaction_commit (v5.17)
Michael Jeanson [Wed, 26 Jan 2022 19:37:52 +0000 (14:37 -0500)] 
fix: btrfs: pass fs_info to trace_btrfs_transaction_commit (v5.17)

See upstream commit :

  commit 2e4e97abac4c95f8b87b2912ea013f7836a6f10b
  Author: Josef Bacik <josef@toxicpanda.com>
  Date:   Fri Nov 5 16:45:29 2021 -0400

    btrfs: pass fs_info to trace_btrfs_transaction_commit

    The root on the trans->root can be anything, and generally we're
    committing from the transaction kthread so it's usually the tree_root.
    Change this to just take an fs_info, and to maintain compatibility
    simply put the ROOT_TREE_OBJECTID as the root objectid for the
    tracepoint.  This will allow use to remove trans->root.

Change-Id: Ie5a4804330edabffac0714fcb9c25b8c8599e424
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agofix: mm: compaction: fix the migration stats in trace_mm_compaction_migratepages...
Michael Jeanson [Sun, 23 Jan 2022 18:26:17 +0000 (13:26 -0500)] 
fix: mm: compaction: fix the migration stats in trace_mm_compaction_migratepages() (v5.17)

See upstream commit :

  commit 84b328aa81216e08804d8875d63f26bda1298788
  Author: Baolin Wang <baolin.wang@linux.alibaba.com>
  Date:   Fri Jan 14 14:08:40 2022 -0800

    mm: compaction: fix the migration stats in trace_mm_compaction_migratepages()

    Now the migrate_pages() has changed to return the number of {normal
    page, THP, hugetlb} instead, thus we should not use the return value to
    calculate the number of pages migrated successfully.  Instead we can
    just use the 'nr_succeeded' which indicates the number of normal pages
    migrated successfully to calculate the non-migrated pages in
    trace_mm_compaction_migratepages().

Link: https://lkml.kernel.org/r/b4225251c4bec068dcd90d275ab7de88a39e2bd7.1636275127.git.baolin.wang@linux.alibaba.com
Change-Id: Ib8e8f2a16a273f16cd73fe63afbbfc25c0a2540c
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agofix: block: remove the ->rq_disk field in struct request (v5.17)
Michael Jeanson [Sun, 23 Jan 2022 18:11:47 +0000 (13:11 -0500)] 
fix: block: remove the ->rq_disk field in struct request (v5.17)

See upstream commit :

  commit f3fa33acca9f0058157214800f68b10d8e71ab7a
  Author: Christoph Hellwig <hch@lst.de>
  Date:   Fri Nov 26 13:18:00 2021 +0100

    block: remove the ->rq_disk field in struct request

    Just use the disk attached to the request_queue instead.

Link: https://lore.kernel.org/r/20211126121802.2090656-4-hch@lst.de
Change-Id: I24263be519d1b51f4b00bd95f14a9aeb8457889a
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agofix: block: remove GENHD_FL_SUPPRESS_PARTITION_INFO (v5.17)
Michael Jeanson [Sun, 23 Jan 2022 18:04:47 +0000 (13:04 -0500)] 
fix: block: remove GENHD_FL_SUPPRESS_PARTITION_INFO (v5.17)

See upstream commit :

  commit 3b5149ac50970669ee0ddb9629ec77ffd5c0622d
  Author: Christoph Hellwig <hch@lst.de>
  Date:   Mon Nov 22 14:06:21 2021 +0100

    block: remove GENHD_FL_SUPPRESS_PARTITION_INFO

    This flag is not set directly anywhere and only inherited from
    GENHD_FL_HIDDEN.  Just check for GENHD_FL_HIDDEN instead.

Link: https://lore.kernel.org/r/20211122130625.1136848-11-hch@lst.de
Change-Id: Ide92bdaaff7d16e96be23aaf00cebeaa601235b7
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agoCleanup: events.h: add alignment comments and fix whitespace
Francis Deslauriers [Thu, 6 Jan 2022 23:30:51 +0000 (18:30 -0500)] 
Cleanup: events.h: add alignment comments and fix whitespace

Signed-off-by: Francis Deslauriers <francis.deslauriers@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I327a85a2c3e259830795f181f218b1f3504f24fb

2 years agoCopyright ownership transfer
Mathieu Desnoyers [Fri, 14 Jan 2022 20:02:42 +0000 (15:02 -0500)] 
Copyright ownership transfer

Apply copyright ownership transfer from Julien Desfossez to EfficiOS Inc.

Link: https://lists.lttng.org/pipermail/lttng-dev/2022-January/030092.html
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Julien Desfossez <ju@klipix.org>
Signed-off-by: Julien Desfossez <ju@klipix.org>
Change-Id: Ida168b1fbe6589cb371a549ef14d9b4b28b221b3

2 years agofix: mm: move kvmalloc-related functions to slab.h (v5.16)
Michael Jeanson [Tue, 14 Dec 2021 19:44:35 +0000 (14:44 -0500)] 
fix: mm: move kvmalloc-related functions to slab.h (v5.16)

See upstream commit :

  commit 8587ca6f34152ea650bad4b2db68456601159024
  Author: Matthew Wilcox (Oracle) <willy@infradead.org>
  Date:   Fri Nov 5 13:35:07 2021 -0700

    mm: move kvmalloc-related functions to slab.h

    Not all files in the kernel should include mm.h.  Migrating callers from
    kmalloc to kvmalloc is easier if the kvmalloc functions are in slab.h.

    [akpm@linux-foundation.org: move the new kvrealloc() also]
    [akpm@linux-foundation.org: drivers/hwmon/occ/p9_sbe.c needs slab.h]

Link: https://lkml.kernel.org/r/20210622215757.3525604-1-willy@infradead.org
Change-Id: I84e885ffbd1e2ff551a4738950e0c9462551b853
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agofix: block: don't call blk_status_to_errno in blk_update_request (v5.16)
Michael Jeanson [Tue, 14 Dec 2021 20:13:20 +0000 (15:13 -0500)] 
fix: block: don't call blk_status_to_errno in blk_update_request (v5.16)

See upstream commit :

  commit 8a7d267b4a2c71a5ff5dd9046abea7117c7d0ac2
  Author: Christoph Hellwig <hch@lst.de>
  Date:   Mon Oct 18 10:45:18 2021 +0200

    block: don't call blk_status_to_errno in blk_update_request

    We only need to call it to resolve the blk_status_t -> errno mapping for
    tracing, so move the conversion into the tracepoints that are not called
    at all when tracing isn't enabled.

Change-Id: Ic556cee1d82e44a93a1467f55d45b6e17a48d387
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agofix: KVM: MMU: change tracepoints arguments to kvm_page_fault (v5.16)
Michael Jeanson [Tue, 14 Dec 2021 20:06:51 +0000 (15:06 -0500)] 
fix: KVM: MMU: change tracepoints arguments to kvm_page_fault (v5.16)

See upstream commit :

  commit f0066d94c92dc5cf7f1a272a1bd324b0fc575292
  Author: Paolo Bonzini <pbonzini@redhat.com>
  Date:   Fri Aug 6 04:35:50 2021 -0400

    KVM: MMU: change tracepoints arguments to kvm_page_fault

    Pass struct kvm_page_fault to tracepoints instead of extracting the
    arguments from the struct.  This also lets the kvm_mmu_spte_requested
    tracepoint pick the gfn directly from fault->gfn, instead of using
    the address.

Change-Id: I5ee3f344a8d1cd0ed185cdeecb3a3121183c9b43
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agofix: KVM: x86: Get exit_reason as part of kvm_x86_ops.get_exit_info (v5.16)
Michael Jeanson [Tue, 14 Dec 2021 20:00:18 +0000 (15:00 -0500)] 
fix: KVM: x86: Get exit_reason as part of kvm_x86_ops.get_exit_info (v5.16)

See upstream commit :

  commit 0a62a0319abb92c89a4f91c2dbfcaee4e47f37ca
  Author: David Edmondson <david.edmondson@oracle.com>
  Date:   Mon Sep 20 11:37:35 2021 +0100

    KVM: x86: Get exit_reason as part of kvm_x86_ops.get_exit_info

    Extend the get_exit_info static call to provide the reason for the VM
    exit. Modify relevant trace points to use this rather than extracting
    the reason in the caller.

Change-Id: I28903e658eb7cbfc6666e35ba4cffba5e49d1445
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agofix: isystem: delete global -isystem compile option (v5.16)
Michael Jeanson [Tue, 14 Dec 2021 19:46:45 +0000 (14:46 -0500)] 
fix: isystem: delete global -isystem compile option (v5.16)

See upstream commit :

  commit 04e85bbf71c9072dcf0ad9a7150495d72461105c
  Author: Alexey Dobriyan <adobriyan@gmail.com>
  Date:   Mon Aug 2 23:43:15 2021 +0300

    isystem: delete global -isystem compile option

    Further isolate kernel from userspace, prevent accidental inclusion of
    undesireable headers, mainly float.h and stdatomic.h.

    nds32 keeps -isystem globally due to intrinsics used in entrenched header.

    -isystem is selectively reenabled for some files, again, for intrinsics.

Change-Id: I5bea29687dc2bc15e96eeb13008aefe1acc97b8a
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agofix: block: move block-related definitions out of fs.h (v5.16)
Michael Jeanson [Tue, 14 Dec 2021 19:43:26 +0000 (14:43 -0500)] 
fix: block: move block-related definitions out of fs.h (v5.16)

See upstream commit :

  commit 3f1266f1f82d7b8c72472a8921e80aa3e611fb62
  Author: Christoph Hellwig <hch@lst.de>
  Date:   Sat Jun 20 09:16:41 2020 +0200

    block: move block-related definitions out of fs.h

    Move most of the block related definition out of fs.h into more suitable
    headers.

Change-Id: I8d072406a04f549d1ddb0f2ac392deaabbb26a92
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agosyscalls: syscall id lookup and dispatch table improvements
Mathieu Desnoyers [Thu, 2 Dec 2021 21:39:19 +0000 (16:39 -0500)] 
syscalls: syscall id lookup and dispatch table improvements

Use the syscall id from event creation as key to index the filter
bitmap rather than lookup the syscall id using the syscall name as
key. This additional lookup is completely redundant.

For unknown syscalls, add the unknown syscall event to the unknown
system call dispatch table only when it matches an enabler: the only way
it matches an enabler is because a wildcard is used to enabled all
system calls (until we eventually support enabling system calls by
number).

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

2 years agoFix: syscall tracing: missing trigger actions
Mathieu Desnoyers [Wed, 1 Dec 2021 20:56:40 +0000 (15:56 -0500)] 
Fix: syscall tracing: missing trigger actions

Observed issue
==============

There is an issue when associating multiple actions to a single system
call, where the first action is effectively added, but the following
actions are silently ignored.

Cause
=====

The is caused by event creation of the 2nd event to be skipped because
lttng_syscall_filter_enable returns "-EBUSY", because the bit is already
set in the bitmap.

Solution
========

Fixing this double-add-trigger scenario requires changes to how the
lttng_syscall_filter_enable -EBUSY errors are dealt with on event
creation, but the problem runs deeper.

Given that many events may be responsible for requiring a bit to be set
in the bitmap of the syscall filter, we cannot simply clear the bit
whenever one event is disabled

Otherwise, this will cause situations where all events for a given
system call are disabled (due to the syscall filter bit being cleared)
whenever one single event for that system call is disabled (e.g. 2
triggers on the same system call, but with different actions).

We need to keep track of all events associated with this bit in the
bitmap, and only clear the bit when the reference count reaches 0.
This fixes the double-add-trigger issue by enturing that no -EBUSY
is returned when creating the second event, and fixes the
double-add-trigger-then-remove-trigger scenario as well.

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

None.

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

2 years agoWarn on event registration/unregistration failure
Mathieu Desnoyers [Wed, 1 Dec 2021 20:55:15 +0000 (15:55 -0500)] 
Warn on event registration/unregistration failure

Warn whenever event registration/unregistration fails, including when
synchonizing the event list.

Silently ignoring errors makes identification of those failures tricky.

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

3 years agoFix: kernels 3.0.x do not implement IS_ENABLED macro
Mathieu Desnoyers [Sat, 6 Nov 2021 00:34:27 +0000 (20:34 -0400)] 
Fix: kernels 3.0.x do not implement IS_ENABLED macro

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

3 years agoRefactoring: lttng_event_enabler_create_tracepoint_events_if_missing: break loop...
Mathieu Desnoyers [Fri, 5 Nov 2021 19:22:04 +0000 (15:22 -0400)] 
Refactoring: lttng_event_enabler_create_tracepoint_events_if_missing: break loop if found

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

3 years agoRefactoring: syscall: break loops when found
Mathieu Desnoyers [Fri, 5 Nov 2021 19:20:46 +0000 (15:20 -0400)] 
Refactoring: syscall: break loops when found

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

3 years agoFix: _lttng_kernel_event_create never returns NULL
Mathieu Desnoyers [Fri, 5 Nov 2021 19:08:07 +0000 (15:08 -0400)] 
Fix: _lttng_kernel_event_create never returns NULL

Handle _lttng_kernel_event_create return value as IS_ERR. It is never
NULL.

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

3 years agoRefactoring: move lttng_syscall_event_enabler_create_matching_events after probe...
Mathieu Desnoyers [Fri, 5 Nov 2021 19:01:46 +0000 (15:01 -0400)] 
Refactoring: move lttng_syscall_event_enabler_create_matching_events after probe registration

Considering that additional events can be added after the probe
registration, there is no point in registering the probes after the
event creation in the first instance.

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

3 years agoRefactoring: combine common code into lttng_syscall_event_enabler_create_matching_events
Mathieu Desnoyers [Fri, 5 Nov 2021 19:01:14 +0000 (15:01 -0400)] 
Refactoring: combine common code into lttng_syscall_event_enabler_create_matching_events

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

3 years agoRefactoring: introduce lttng_syscall_event_enabler_create_matching_syscall_table_events
Mathieu Desnoyers [Fri, 5 Nov 2021 18:58:40 +0000 (14:58 -0400)] 
Refactoring: introduce lttng_syscall_event_enabler_create_matching_syscall_table_events

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

3 years agoRefactoring: remove unused argument from lttng_syscall_event_enabler_create_matching_...
Mathieu Desnoyers [Fri, 5 Nov 2021 18:52:50 +0000 (14:52 -0400)] 
Refactoring: remove unused argument from lttng_syscall_event_enabler_create_matching_events

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

3 years agoRefactoring: add/remove to/from dispatch list on enable/disable event for event recorder
Mathieu Desnoyers [Fri, 5 Nov 2021 18:50:03 +0000 (14:50 -0400)] 
Refactoring: add/remove to/from dispatch list on enable/disable event for event recorder

Use same behavior for event recorder as for event notifier.

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

3 years agoRefactoring: syscall tracing: config compat
Mathieu Desnoyers [Fri, 5 Nov 2021 18:40:18 +0000 (14:40 -0400)] 
Refactoring: syscall tracing: config compat

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

3 years agoFix: event notifier unknown syscall match only wildcard all
Mathieu Desnoyers [Fri, 5 Nov 2021 18:32:54 +0000 (14:32 -0400)] 
Fix: event notifier unknown syscall match only wildcard all

The unknown system call event should only be generated when matching a
wildcard *all*, otherwise when matching a system call by name we don't
expect to emit a notification for an unknown system call.

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

3 years agoRefactoring: introduce create_unknown_syscall_event
Mathieu Desnoyers [Fri, 5 Nov 2021 16:41:38 +0000 (12:41 -0400)] 
Refactoring: introduce create_unknown_syscall_event

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

3 years agoRefactoring: introduce lttng_syscall_event_enabler_create_matching_events
Mathieu Desnoyers [Fri, 5 Nov 2021 16:35:21 +0000 (12:35 -0400)] 
Refactoring: introduce lttng_syscall_event_enabler_create_matching_events

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

3 years agoFix: add unknown event to dispatch list
Mathieu Desnoyers [Fri, 5 Nov 2021 16:33:37 +0000 (12:33 -0400)] 
Fix: add unknown event to dispatch list

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

3 years agoFix: RCU-aware add event recorder to RCU dispatch list
Mathieu Desnoyers [Fri, 5 Nov 2021 16:31:34 +0000 (12:31 -0400)] 
Fix: RCU-aware add event recorder to RCU dispatch list

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

3 years agoRefactoring: introduce lttng_syscall_event_enabler_create_event
Mathieu Desnoyers [Fri, 5 Nov 2021 16:20:56 +0000 (12:20 -0400)] 
Refactoring: introduce lttng_syscall_event_enabler_create_event

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

3 years agoRefactoring: syscall: move matching event creation before tracepoint registration
Mathieu Desnoyers [Fri, 5 Nov 2021 14:56:30 +0000 (10:56 -0400)] 
Refactoring: syscall: move matching event creation before tracepoint registration

There is no point in doing the event notifier creation after tracepoint
registration for syscall tracing. Move it prior to tracepoint
registration, similarly to event recorder.

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

3 years agosyscalls: remove vmalloc sync mappings
Mathieu Desnoyers [Fri, 5 Nov 2021 14:55:26 +0000 (10:55 -0400)] 
syscalls: remove vmalloc sync mappings

The system call tables don't use vmalloc, so there is no point in
synchronizing the mappings.

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

3 years agoRefactoring: introduce lttng_event_enabler_create_{syscall,tracepoint}_events_if_missing
Mathieu Desnoyers [Fri, 5 Nov 2021 14:16:10 +0000 (10:16 -0400)] 
Refactoring: introduce lttng_event_enabler_create_{syscall,tracepoint}_events_if_missing

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

3 years agoRefactoring: combine common code into _lttng_kernel_event_create
Mathieu Desnoyers [Thu, 4 Nov 2021 21:10:21 +0000 (17:10 -0400)] 
Refactoring: combine common code into _lttng_kernel_event_create

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

3 years agoFix: clear error counter before adding to lists
Mathieu Desnoyers [Thu, 4 Nov 2021 21:05:10 +0000 (17:05 -0400)] 
Fix: clear error counter before adding to lists

Adding to lists should be the last thing in the create function,
otherwise errors on error counter clear may lead to use-after-free
due to presence of freed objects in linked lists.

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

3 years agoRefactoring: introduce lttng_kernel_event_id_available
Mathieu Desnoyers [Thu, 4 Nov 2021 21:02:55 +0000 (17:02 -0400)] 
Refactoring: introduce lttng_kernel_event_id_available

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

3 years agoRefactoring: remove unused event_recorder_return
Mathieu Desnoyers [Thu, 4 Nov 2021 20:53:32 +0000 (16:53 -0400)] 
Refactoring: remove unused event_recorder_return

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

3 years agoRefactoring: event create: introduce _lttng_event_recorder_metadata_statedump
Mathieu Desnoyers [Thu, 4 Nov 2021 20:51:34 +0000 (16:51 -0400)] 
Refactoring: event create: introduce _lttng_event_recorder_metadata_statedump

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

3 years agoRefactoring: event create: use lttng_get_event_list_head_from_enabler
Mathieu Desnoyers [Thu, 4 Nov 2021 20:45:36 +0000 (16:45 -0400)] 
Refactoring: event create: use lttng_get_event_list_head_from_enabler

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

3 years agoRefactoring: introduce lttng_kernel_event_notifier_clear_error_counter
Mathieu Desnoyers [Thu, 4 Nov 2021 20:42:44 +0000 (16:42 -0400)] 
Refactoring: introduce lttng_kernel_event_notifier_clear_error_counter

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

3 years agoRefactoring: introduce lttng_event_enabler_event_name_match_event
Mathieu Desnoyers [Thu, 4 Nov 2021 20:33:39 +0000 (16:33 -0400)] 
Refactoring: introduce lttng_event_enabler_event_name_match_event

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

3 years agoRefactoring: event create: use parent structure
Mathieu Desnoyers [Thu, 4 Nov 2021 19:51:24 +0000 (15:51 -0400)] 
Refactoring: event create: use parent structure

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

3 years agoRefactoring: introduce lttng_kernel_event_alloc and lttng_kernel_event_free
Mathieu Desnoyers [Thu, 4 Nov 2021 19:44:48 +0000 (15:44 -0400)] 
Refactoring: introduce lttng_kernel_event_alloc and lttng_kernel_event_free

Eliminate duplicated code.

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

3 years agoRefactoring: merge lttng_sync_event_list common code
Mathieu Desnoyers [Wed, 3 Nov 2021 20:21:43 +0000 (16:21 -0400)] 
Refactoring: merge lttng_sync_event_list common code

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

3 years agoRefactoring: move enablers list into common structure
Mathieu Desnoyers [Wed, 3 Nov 2021 20:01:14 +0000 (16:01 -0400)] 
Refactoring: move enablers list into common structure

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

3 years agoRefactoring: introduce lttng_event_sync_filter_state and lttng_event_sync_capture_state
Mathieu Desnoyers [Wed, 3 Nov 2021 19:42:01 +0000 (15:42 -0400)] 
Refactoring: introduce lttng_event_sync_filter_state and lttng_event_sync_capture_state

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

3 years agoRefactoring: combine common code into lttng_event_enabler_ref_events
Mathieu Desnoyers [Wed, 3 Nov 2021 19:27:37 +0000 (15:27 -0400)] 
Refactoring: combine common code into lttng_event_enabler_ref_events

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

3 years agoRefactoring: introduce lttng_event_enabler_init_event_filter
Mathieu Desnoyers [Wed, 3 Nov 2021 19:22:28 +0000 (15:22 -0400)] 
Refactoring: introduce lttng_event_enabler_init_event_filter

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

3 years agoRefactoring: introduce lttng_event_enabler_init_event_capture
Mathieu Desnoyers [Wed, 3 Nov 2021 19:19:26 +0000 (15:19 -0400)] 
Refactoring: introduce lttng_event_enabler_init_event_capture

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

3 years agoRefactoring: combine common code into lttng_syscall_table_set_wildcard_all
Mathieu Desnoyers [Wed, 3 Nov 2021 19:09:53 +0000 (15:09 -0400)] 
Refactoring: combine common code into lttng_syscall_table_set_wildcard_all

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

3 years agoRefactoring: introduce list head from enabler getter
Mathieu Desnoyers [Wed, 3 Nov 2021 18:59:51 +0000 (14:59 -0400)] 
Refactoring: introduce list head from enabler getter

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

3 years agoRefactoring: move event list node field to common structure
Mathieu Desnoyers [Wed, 3 Nov 2021 18:55:36 +0000 (14:55 -0400)] 
Refactoring: move event list node field to common structure

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

3 years agoRefactoring: combine common code into lttng_create_event_if_missing
Mathieu Desnoyers [Wed, 3 Nov 2021 16:20:32 +0000 (12:20 -0400)] 
Refactoring: combine common code into lttng_create_event_if_missing

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

3 years agoRefactoring: combine identical functions into lttng_create_tracepoint_event_if_missing
Mathieu Desnoyers [Wed, 3 Nov 2021 16:17:10 +0000 (12:17 -0400)] 
Refactoring: combine identical functions into lttng_create_tracepoint_event_if_missing

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

3 years agoRefactoring/fix: desc match enabler: handle error internally
Mathieu Desnoyers [Wed, 3 Nov 2021 16:14:09 +0000 (12:14 -0400)] 
Refactoring/fix: desc match enabler: handle error internally

This actually ensures that callers don't mistakenly consider a negative
return value (error) as a match success.

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

3 years agoRefactoring: syscalls: use common match functions
Mathieu Desnoyers [Wed, 3 Nov 2021 16:08:22 +0000 (12:08 -0400)] 
Refactoring: syscalls: use common match functions

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

3 years agoRefactoring: combine create event common code
Mathieu Desnoyers [Wed, 3 Nov 2021 16:00:02 +0000 (12:00 -0400)] 
Refactoring: combine create event common code

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

3 years agoRefactoring: combine match functions for notifier and recorder
Mathieu Desnoyers [Wed, 3 Nov 2021 15:25:59 +0000 (11:25 -0400)] 
Refactoring: combine match functions for notifier and recorder

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

3 years agoRefactoring: introduce lttng_get_event_ht_from_enabler
Mathieu Desnoyers [Tue, 2 Nov 2021 20:58:34 +0000 (16:58 -0400)] 
Refactoring: introduce lttng_get_event_ht_from_enabler

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

3 years agoRefactoring: combine hlist_node into common event structure
Mathieu Desnoyers [Tue, 2 Nov 2021 20:42:52 +0000 (16:42 -0400)] 
Refactoring: combine hlist_node into common event structure

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

3 years agoRefactoring: event notifier create: use enablers
Mathieu Desnoyers [Tue, 2 Nov 2021 19:04:08 +0000 (15:04 -0400)] 
Refactoring: event notifier create: use enablers

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

3 years agoRefactoring: combine event hash tables common code
Mathieu Desnoyers [Tue, 2 Nov 2021 18:16:38 +0000 (14:16 -0400)] 
Refactoring: combine event hash tables common code

Combine common code across notifier and recorder.

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

3 years agoRefactoring: combine _lttng_event_unregister common code
Mathieu Desnoyers [Tue, 2 Nov 2021 18:11:40 +0000 (14:11 -0400)] 
Refactoring: combine _lttng_event_unregister common code

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

3 years agoRefactoring: combine register_event common code
Mathieu Desnoyers [Tue, 2 Nov 2021 18:02:37 +0000 (14:02 -0400)] 
Refactoring: combine register_event common code

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

3 years agoRefactoring: combine lttng_create_syscall_event_if_missing common code
Mathieu Desnoyers [Tue, 2 Nov 2021 17:52:42 +0000 (13:52 -0400)] 
Refactoring: combine lttng_create_syscall_event_if_missing common code

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

3 years agoRefactoring: syscalls: move lttng_syscalls_create_matching_event_notifiers into regis...
Mathieu Desnoyers [Tue, 2 Nov 2021 17:50:40 +0000 (13:50 -0400)] 
Refactoring: syscalls: move lttng_syscalls_create_matching_event_notifiers into registration

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

3 years agoRefactoring: Rename lttng_channel_syscall_mask to lttng_syscall_table_get_active_mask
Mathieu Desnoyers [Tue, 2 Nov 2021 17:34:00 +0000 (13:34 -0400)] 
Refactoring: Rename lttng_channel_syscall_mask to lttng_syscall_table_get_active_mask

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

3 years agoRefactoring: kretprobes: use event common argument types
Mathieu Desnoyers [Tue, 2 Nov 2021 17:30:32 +0000 (13:30 -0400)] 
Refactoring: kretprobes: use event common argument types

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

3 years agoRefactoring: kprobes: combine common code between recorder and notifier
Mathieu Desnoyers [Tue, 2 Nov 2021 16:46:48 +0000 (12:46 -0400)] 
Refactoring: kprobes: combine common code between recorder and notifier

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

3 years agoRefactoring: uprobes: combine common code between recorder and notifier
Mathieu Desnoyers [Tue, 2 Nov 2021 16:38:41 +0000 (12:38 -0400)] 
Refactoring: uprobes: combine common code between recorder and notifier

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

3 years agoRefactoring: syscalls: combine syscalls register event for notifier/recorder
Mathieu Desnoyers [Tue, 2 Nov 2021 16:31:08 +0000 (12:31 -0400)] 
Refactoring: syscalls: combine syscalls register event for notifier/recorder

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

3 years agoRefactoring: syscall: combine syscall filter enable/disable recorder/notifier
Mathieu Desnoyers [Tue, 2 Nov 2021 15:21:47 +0000 (11:21 -0400)] 
Refactoring: syscall: combine syscall filter enable/disable recorder/notifier

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

3 years agoRefactoring: rename lttng_syscalls_register_event to lttng_syscalls_register_event_re...
Mathieu Desnoyers [Mon, 1 Nov 2021 20:47:39 +0000 (16:47 -0400)] 
Refactoring: rename lttng_syscalls_register_event to lttng_syscalls_register_event_recorder

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

3 years agoCleanup: tracepoint probe register/unregister: use parent field
Mathieu Desnoyers [Mon, 1 Nov 2021 20:39:22 +0000 (16:39 -0400)] 
Cleanup: tracepoint probe register/unregister: use parent field

Use the parent field to match the type expected in the probe callback.

This works so far only because parent is the first field of the children
structures.

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

3 years agoRefactoring/fix: syscall table unregister/destroy
Mathieu Desnoyers [Mon, 1 Nov 2021 19:59:10 +0000 (15:59 -0400)] 
Refactoring/fix: syscall table unregister/destroy

Combine syscall table unregister/destroy for both channel buffers and
notifier groups.

This fixes an issue within notifier groups where the syscall dispatch
tables are freed before waiting for an RCU grace period.

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

3 years agoRefactoring: rename lttng_channel_create to lttng_channel_buffer_create
Mathieu Desnoyers [Mon, 1 Nov 2021 19:33:28 +0000 (15:33 -0400)] 
Refactoring: rename lttng_channel_create to lttng_channel_buffer_create

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

3 years agoRefactoring: channel enable/disable using common type
Mathieu Desnoyers [Mon, 1 Nov 2021 19:31:04 +0000 (15:31 -0400)] 
Refactoring: channel enable/disable using common type

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

3 years agoCleanup: rename event register/unregister for event recorder
Mathieu Desnoyers [Mon, 1 Nov 2021 19:23:20 +0000 (15:23 -0400)] 
Cleanup: rename event register/unregister for event recorder

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

3 years agoCleanup: rename lttng_syscalls_destroy_event to lttng_syscalls_destroy_channel
Mathieu Desnoyers [Mon, 1 Nov 2021 19:20:22 +0000 (15:20 -0400)] 
Cleanup: rename lttng_syscalls_destroy_event to lttng_syscalls_destroy_channel

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

3 years agoCleanup: syscall filter enable/disable event
Mathieu Desnoyers [Mon, 1 Nov 2021 19:14:44 +0000 (15:14 -0400)] 
Cleanup: syscall filter enable/disable event

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

3 years agoCleanup: notifier syscalls: Remove useless zero-init of zeroed memory
Mathieu Desnoyers [Mon, 1 Nov 2021 18:59:41 +0000 (14:59 -0400)] 
Cleanup: notifier syscalls: Remove useless zero-init of zeroed memory

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

3 years agoRefactoring: combine event enabler destroy for notifier and recorder
Mathieu Desnoyers [Mon, 1 Nov 2021 18:47:24 +0000 (14:47 -0400)] 
Refactoring: combine event enabler destroy for notifier and recorder

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

3 years agoRefactoring: combine event notifier notifier and recorder enable/disable
Mathieu Desnoyers [Mon, 1 Nov 2021 18:31:51 +0000 (14:31 -0400)] 
Refactoring: combine event notifier notifier and recorder enable/disable

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

3 years agoRefactoring: combine filter bytecode attach functions
Mathieu Desnoyers [Mon, 1 Nov 2021 18:16:07 +0000 (14:16 -0400)] 
Refactoring: combine filter bytecode attach functions

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

3 years agoRefactoring: rename lttng_event_enabler to lttng_event_recorder_enabler
Mathieu Desnoyers [Mon, 1 Nov 2021 17:59:48 +0000 (13:59 -0400)] 
Refactoring: rename lttng_event_enabler to lttng_event_recorder_enabler

To clarify that event recorder is distinct from event notifier, rename
"event enabler" to "event recorder enabler".

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

3 years agoRefactoring: syscall tracing: combine common fields into struct lttng_kernel_syscall_...
Mathieu Desnoyers [Mon, 1 Nov 2021 17:43:58 +0000 (13:43 -0400)] 
Refactoring: syscall tracing: combine common fields into struct lttng_kernel_syscall_table

There was a lot of code duplication between syscall tables associated
with ring buffers and those associated with event notifiers.

Move common fields into a struct lttng_kernel_syscall_table, and add a
syscall_table field in both struct lttng_event_notifier_group and
struct lttng_kernel_channel_common_private.

This allows removing both syscall_entry_event_notifier_probe and
syscall_exit_event_notifier_probe by using the syscall_entry_event_probe
and syscall_exit_event_probe instead for event notifiers as well.

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

3 years agoRename event/notifier enabler base field to parent
Mathieu Desnoyers [Fri, 22 Oct 2021 20:16:26 +0000 (16:16 -0400)] 
Rename event/notifier enabler base field to parent

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

3 years agoRename struct lttng_enabler to struct lttng_event_enabler_common
Mathieu Desnoyers [Fri, 22 Oct 2021 19:56:00 +0000 (15:56 -0400)] 
Rename struct lttng_enabler to struct lttng_event_enabler_common

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

3 years agoUse event enabler for event recorder creation for all instrumentation types
Mathieu Desnoyers [Fri, 22 Oct 2021 19:17:25 +0000 (15:17 -0400)] 
Use event enabler for event recorder creation for all instrumentation types

Remove special-cases for uprobes, kprobes, kretprobes and use a
temporary event enabler to hold relevant information for event recorder
creation.

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

3 years agofix: implicit-int error in EXPORT_SYMBOL_GPL
Daniel Gomez [Fri, 8 Oct 2021 17:38:02 +0000 (19:38 +0200)] 
fix: implicit-int error in EXPORT_SYMBOL_GPL

Add module header to fix error:
error: type defaults to 'int' in declaration of 'EXPORT_SYMBOL_GPL'
[-Werror=implicit-int]

Log:
/workdir/build/workspace/sources/lttng-modules/src/wrapper/random.c:54:1:
warning: data definition has no type or storage class
   54 EXPORT_SYMBOL_GPL(wrapper_get_bootid);
      ^~~~~~~~~~~~~~~~~
/workdir/build/workspace/sources/lttng-modules/src/wrapper/random.c:54:1:
error: type defaults to 'int' in declaration of 'EXPORT_SYMBOL_GPL'
[-Werror=implicit-int]
/workdir/build/workspace/sources/lttng-modules/src/wrapper/random.c:54:1:
warning: parameter names (without types) in function declaration
cc1: some warnings being treated as errors
make[3]: ***
[/workdir/build/tmp/work-shared/qt5222/kernel-source/scripts/Makefile.build:271:
/workdir/build/workspace/sources/lttng-modules/src/wrapper/random.o]

Signed-off-by: Daniel Gomez <daniel@qtec.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: If1b96f6fcc19988b94dc09b12d071f2c61491b83

3 years agofix: Revert "Makefile: Enable -Wimplicit-fallthrough for Clang" (v5.15)
Michael Jeanson [Mon, 13 Sep 2021 18:16:22 +0000 (14:16 -0400)] 
fix: Revert "Makefile: Enable -Wimplicit-fallthrough for Clang" (v5.15)

Starting with v5.15, "-Wimplicit-fallthrough=5" was added to the build
flags which requires the use of "__attribute__((__fallthrough__))" to
annotate fallthrough case statements.

See upstream commit by the man himself:

  commit d936eb23874433caa3e3d841cfa16f5434b85dcf
  Author: Linus Torvalds <torvalds@linux-foundation.org>
  Date:   Thu Jul 15 18:05:31 2021 -0700

    Revert "Makefile: Enable -Wimplicit-fallthrough for Clang"

    This reverts commit b7eb335e26a9c7f258c96b3962c283c379d3ede0.

    It turns out that the problem with the clang -Wimplicit-fallthrough
    warning is not about the kernel source code, but about clang itself, and
    that the warning is unusable until clang fixes its broken ways.

    In particular, when you enable this warning for clang, you not only get
    warnings about implicit fallthroughs.  You also get this:

       warning: fallthrough annotation in unreachable code [-Wimplicit-fallthrough]

    which is completely broken becasue it

     (a) doesn't even tell you where the problem is (seriously: no line
         numbers, no filename, no nothing).

     (b) is fundamentally broken anyway, because there are perfectly valid
         reasons to have a fallthrough statement even if it turns out that
         it can perhaps not be reached.

    In the kernel, an example of that second case is code in the scheduler:

                    switch (state) {
                    case cpuset:
                            if (IS_ENABLED(CONFIG_CPUSETS)) {
                                    cpuset_cpus_allowed_fallback(p);
                                    state = possible;
                                    break;
                            }
                            fallthrough;
                    case possible:

    where if CONFIG_CPUSETS is enabled you actually never hit the
    fallthrough case at all.  But that in no way makes the fallthrough
    wrong.

    So the warning is completely broken, and enabling it for clang is a very
    bad idea.

    In the meantime, we can keep the gcc option enabled, and make the gcc
    build use

        -Wimplicit-fallthrough=5

    which means that we will at least continue to require a proper
    fallthrough statement, and that gcc won't silently accept the magic
    comment versions. Because gcc does this all correctly, and while the odd
    "=5" part is kind of obscure, it's documented in [1]:

      "-Wimplicit-fallthrough=5 doesn’t recognize any comments as
       fallthrough comments, only attributes disable the warning"

    so if clang ever fixes its bad behavior we can try enabling it there again.

Change-Id: Iea69849592fb69ac04fb9bb28efcd6b8dce8ba88
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
3 years agofix: cpu/hotplug: Remove deprecated CPU-hotplug functions. (v5.15)
Michael Jeanson [Mon, 13 Sep 2021 16:00:38 +0000 (12:00 -0400)] 
fix: cpu/hotplug: Remove deprecated CPU-hotplug functions. (v5.15)

The CPU-hotplug functions get|put_online_cpus() were deprecated in v4.13
and removed in v5.15.

See upstream commits :

commit 8c854303ce0e38e5bbedd725ff39da7e235865d8
Author: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date:   Tue Aug 3 16:16:21 2021 +0200

    cpu/hotplug: Remove deprecated CPU-hotplug functions.

    No users in tree use the deprecated CPU-hotplug functions anymore.

    Remove them.

Introduced in v4.13 :

  commit 8f553c498e1772cccb39a114da4a498d22992758
  Author: Thomas Gleixner <tglx@linutronix.de>
  Date:   Wed May 24 10:15:12 2017 +0200

    cpu/hotplug: Provide cpus_read|write_[un]lock()

    The counting 'rwsem' hackery of get|put_online_cpus() is going to be
    replaced by percpu rwsem.

    Rename the functions to make it clear that it's locking and not some
    refcount style interface. These new functions will be used for the
    preparatory patches which make the code ready for the percpu rwsem
    conversion.

    Rename all instances in the cpu hotplug code while at it.

Change-Id: I5a37cf5afc075a402b7347989fac637dfa60a1ed
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
3 years agofix: sched: Change task_struct::state (v5.14)
Michael Jeanson [Mon, 12 Jul 2021 18:51:20 +0000 (14:51 -0400)] 
fix: sched: Change task_struct::state (v5.14)

See upstream commit:

  commit 2f064a59a11ff9bc22e52e9678bc601404c7cb34
  Author: Peter Zijlstra <peterz@infradead.org>
  Date:   Fri Jun 11 10:28:17 2021 +0200

    sched: Change task_struct::state

    Change the type and name of task_struct::state. Drop the volatile and
    shrink it to an 'unsigned int'. Rename it in order to find all uses
    such that we can use READ_ONCE/WRITE_ONCE as appropriate.

Change-Id: I3a379192d6b977753fe58d4f67833a78dd7a0a47
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
3 years agofix: btrfs: pass btrfs_inode to btrfs_writepage_endio_finish_ordered() (v5.14)
Michael Jeanson [Mon, 12 Jul 2021 19:00:26 +0000 (15:00 -0400)] 
fix: btrfs: pass btrfs_inode to btrfs_writepage_endio_finish_ordered() (v5.14)

See upstream commit:

  commit 38a39ac77e089515acbe85c6c70c3df1e728357d
  Author: Qu Wenruo <wqu@suse.com>
  Date:   Thu Apr 8 20:32:27 2021 +0800

    btrfs: pass btrfs_inode to btrfs_writepage_endio_finish_ordered()

    There is a pretty bad abuse of btrfs_writepage_endio_finish_ordered() in
    end_compressed_bio_write().

    It passes compressed pages to btrfs_writepage_endio_finish_ordered(),
    which is only supposed to accept inode pages.

    Thankfully the important info here is the inode, so let's pass
    btrfs_inode directly into btrfs_writepage_endio_finish_ordered(), and
    make @page parameter optional.

    By this, end_compressed_bio_write() can happily pass page=NULL while
    still getting everything done properly.

    Also, to cooperate with such modification, replace @page parameter for
    trace_btrfs_writepage_end_io_hook() with btrfs_inode.
    Although this removes page_index info, the existing start/len should be
    enough for most usage.

Change-Id: If96e99c2d9533d96d9d1aa6460bb7fd3ac9ed7ab
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
3 years agofix: adjust ranges for RHEL 8.4
Michael Jeanson [Tue, 18 May 2021 15:16:34 +0000 (11:16 -0400)] 
fix: adjust ranges for RHEL 8.4

Change-Id: I9ac44467cca4850fb4051252937542d5a054ccc4
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
This page took 0.045817 seconds and 4 git commands to generate.