lttng-modules.git
2 years agofix: mm/tracing: add 'accounted' entry into output of allocation tracepoints (v6.0)
Michael Jeanson [Mon, 15 Aug 2022 21:22:47 +0000 (17:22 -0400)] 
fix: mm/tracing: add 'accounted' entry into output of allocation tracepoints (v6.0)

See upstream commit :

  commit b347aa7b57477f71c740e2bbc6d1078a7109ba23
  Author: Vasily Averin <vasily.averin@linux.dev>
  Date:   Fri Jun 3 06:21:49 2022 +0300

    mm/tracing: add 'accounted' entry into output of allocation tracepoints

    Slab caches marked with SLAB_ACCOUNT force accounting for every
    allocation from this cache even if __GFP_ACCOUNT flag is not passed.
    Unfortunately, at the moment this flag is not visible in ftrace output,
    and this makes it difficult to analyze the accounted allocations.

    This patch adds boolean "accounted" entry into trace output,
    and set it to 'true' for calls used __GFP_ACCOUNT flag and
    for allocations from caches marked with SLAB_ACCOUNT.
    Set it to 'false' if accounting is disabled in configs.

Change-Id: I023a355b94e79931499e1a1f648e2649d6dd3c89
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agofix: block: remove bdevname (v6.0)
Michael Jeanson [Mon, 15 Aug 2022 18:39:42 +0000 (14:39 -0400)] 
fix: block: remove bdevname (v6.0)

See upstream commit :

  commit 900d156bac2bc474cf7c7bee4efbc6c83ec5ae58
  Author: Christoph Hellwig <hch@lst.de>
  Date:   Wed Jul 13 07:53:17 2022 +0200

    block: remove bdevname

    Replace the remaining calls of bdevname with snprintf using the %pg
    format specifier.

Change-Id: I09f2afe91e549be2746334a4a09fc00be09b0778
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agofix: fs/jbd2: Fix the documentation of the jbd2_write_superblock() callers (v6.0)
Michael Jeanson [Mon, 15 Aug 2022 21:21:20 +0000 (17:21 -0400)] 
fix: fs/jbd2: Fix the documentation of the jbd2_write_superblock() callers (v6.0)

See upstream commit :

  commit 6669797b0dd41ced457760b6e1014fdda8ce19ce
  Author: Bart Van Assche <bvanassche@acm.org>
  Date:   Thu Jul 14 11:07:22 2022 -0700

    Commit 2a222ca992c3 ("fs: have submit_bh users pass in op and flags
    separately") renamed the jbd2_write_superblock() 'write_op' argument into
    'write_flags'. Propagate this change to the jbd2_write_superblock()
    callers. Additionally, change the type of 'write_flags' into blk_opf_t.

Change-Id: I65b8af95b3d07438763dd94f409c197e3b400733
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agofix: tie compaction probe build to CONFIG_COMPACTION
Michael Jeanson [Wed, 10 Aug 2022 15:07:14 +0000 (11:07 -0400)] 
fix: tie compaction probe build to CONFIG_COMPACTION

The definition of 'struct compact_control' in 'mm/internal.h' depends on
CONFIG_COMPACTION being defined. Only build the compaction probe when
this configuration option is enabled.

Thanks to Bruce Ashfield <bruce.ashfield@gmail.com> for reporting this
issue.

Change-Id: I81e77aa9c1bf10452c152d432fe5224df0db42c9
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.15.58..v5.16)
Mathieu Desnoyers [Fri, 29 Jul 2022 19:37:43 +0000 (15:37 -0400)] 
fix: net: skb: introduce kfree_skb_reason() (v5.15.58..v5.16)

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? )

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

2 years agofix: workqueue: Fix type of cpu in trace event (v5.19)
Michael Jeanson [Wed, 15 Jun 2022 16:07:16 +0000 (12:07 -0400)] 
fix: workqueue: Fix type of cpu in trace event (v5.19)

See upstream commit :

  commit 873a400938b31a1e443c4d94b560b78300787540
  Author: Wonhyuk Yang <vvghjk1234@gmail.com>
  Date:   Wed May 4 11:32:03 2022 +0900

    workqueue: Fix type of cpu in trace event

    The trace event "workqueue_queue_work" use unsigned int type for
    req_cpu, cpu. This casue confusing cpu number like below log.

    $ cat /sys/kernel/debug/tracing/trace
    cat-317  [001] ...: workqueue_queue_work: ... req_cpu=8192 cpu=4294967295

    So, change unsigned type to signed type in the trace event. After
    applying this patch, cpu number will be printed as -1 instead of
    4294967295 as folllows.

    $ cat /sys/kernel/debug/tracing/trace
    cat-1338  [002] ...: workqueue_queue_work: ... req_cpu=8192 cpu=-1

Change-Id: I478083c350b6ec314d87e9159dc5b342b96daed7
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agofix: fs: Remove flags parameter from aops->write_begin (v5.19)
Michael Jeanson [Wed, 8 Jun 2022 17:07:59 +0000 (13:07 -0400)] 
fix: fs: Remove flags parameter from aops->write_begin (v5.19)

See upstream commit :

  commit 9d6b0cd7579844761ed68926eb3073bab1dca87b
  Author: Matthew Wilcox (Oracle) <willy@infradead.org>
  Date:   Tue Feb 22 14:31:43 2022 -0500

    fs: Remove flags parameter from aops->write_begin

    There are no more aop flags left, so remove the parameter.

Change-Id: I82725b93e13d749f52a631b2ac60df81a5e839f8
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agofix: mm/page_alloc: fix tracepoint mm_page_alloc_zone_locked() (v5.19)
Michael Jeanson [Wed, 8 Jun 2022 16:56:36 +0000 (12:56 -0400)] 
fix: mm/page_alloc: fix tracepoint mm_page_alloc_zone_locked() (v5.19)

See upstream commit :

  commit 10e0f7530205799e7e971aba699a7cb3a47456de
  Author: Wonhyuk Yang <vvghjk1234@gmail.com>
  Date:   Thu May 19 14:08:54 2022 -0700

    mm/page_alloc: fix tracepoint mm_page_alloc_zone_locked()

    Currently, trace point mm_page_alloc_zone_locked() doesn't show correct
    information.

    First, when alloc_flag has ALLOC_HARDER/ALLOC_CMA, page can be allocated
    from MIGRATE_HIGHATOMIC/MIGRATE_CMA.  Nevertheless, tracepoint use
    requested migration type not MIGRATE_HIGHATOMIC and MIGRATE_CMA.

    Second, after commit 44042b4498728 ("mm/page_alloc: allow high-order pages
    to be stored on the per-cpu lists") percpu-list can store high order
    pages.  But trace point determine whether it is a refiil of percpu-list by
    comparing requested order and 0.

    To handle these problems, make mm_page_alloc_zone_locked() only be called
    by __rmqueue_smallest with correct migration type.  With a new argument
    called percpu_refill, it can show roughly whether it is a refill of
    percpu-list.

Change-Id: I2e4a57393757f12b9c5a4566c4d1102ee2474a09
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agoFix: event notifier: racy use of last subbuffer record
Mathieu Desnoyers [Mon, 4 Apr 2022 19:42:00 +0000 (15:42 -0400)] 
Fix: event notifier: racy use of last subbuffer record

The lttng-modules event notifiers use the ring buffer internally. When
reading the payload of the last event in a sub-buffer with a multi-part
read (e.g. two read system calls), we should not "put" the sub-buffer
holding this data, else continuing reading the data in the following
read system call can observe corrupted data if it has been concurrently
overwritten by the producer.

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

2 years agoFix: bytecode interpreter context_get_index() leaves byte order uninitialized
Mathieu Desnoyers [Wed, 30 Mar 2022 18:24:54 +0000 (14:24 -0400)] 
Fix: bytecode interpreter context_get_index() leaves byte order uninitialized

Observed Issue
==============

When using the event notification capture feature to capture a context
field, e.g. '$ctx.cpu_id', the captured value is often observed in
reverse byte order.

Cause
=====

Within the bytecode interpreter, context_get_index() leaves the "rev_bo"
field uninitialized in the top of stack.

This only affects the event notification capture bytecode because the
BYTECODE_OP_GET_SYMBOL bytecode instruction (as of lttng-tools 2.13)
is only generated for capture bytecode in lttng-tools. Therefore, only
capture bytecode targeting contexts are affected by this issue. The
reason why lttng-tools uses the "legacy" bytecode instruction to get
context (BYTECODE_OP_GET_CONTEXT_REF) for the filter bytecode is to
preserve backward compatibility of filtering when interacting with
applications linked against LTTng-UST 2.12.

Solution
========

Initialize the rev_bo field based on the context field type
reserve_byte_order field.

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

None.

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

2 years agofix: 'random' tracepoints removed in stable kernels
Michael Jeanson [Tue, 31 May 2022 19:24:48 +0000 (15:24 -0400)] 
fix: 'random' tracepoints removed in stable kernels

The upstream commit 14c174633f349cb41ea90c2c0aaddac157012f74 removing
the 'random' tracepoints is being backported to multiple stable kernel
branches, I don't see how that qualifies as a fix but here we are.

Use the presence of 'include/trace/events/random.h' in the kernel source
tree instead of the rather tortuous version check to determine if we
need to build 'lttng-probe-random.ko'.

Change-Id: I8f5f2f4c9e09c61127c49c7949b22dd3fab0460d
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agofix: random: remove unused tracepoints (v5.10, v5.15)
He Zhe [Thu, 2 Jun 2022 06:36:08 +0000 (06:36 +0000)] 
fix: random: remove unused tracepoints (v5.10, v5.15)

The following kernel commit has been back ported to v5.10.119 and v5.15.44.

commit 14c174633f349cb41ea90c2c0aaddac157012f74
Author: Jason A. Donenfeld <Jason@zx2c4.com>
Date:   Thu Feb 10 16:40:44 2022 +0100

  random: remove unused tracepoints

  These explicit tracepoints aren't really used and show sign of aging.
  It's work to keep these up to date, and before I attempted to keep them
  up to date, they weren't up to date, which indicates that they're not
  really used. These days there are better ways of introspecting anyway.

Signed-off-by: He Zhe <zhe.he@windriver.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Change-Id: I0b7eb8aa78b5bd2039e20ae3e1da4c5eb9018789

2 years agofix: sched/tracing: Append prev_state to tp args instead (v5.18)
Michael Jeanson [Tue, 17 May 2022 15:46:29 +0000 (11:46 -0400)] 
fix: sched/tracing: Append prev_state to tp args instead (v5.18)

See upstream commit :

  commit 9c2136be0878c88c53dea26943ce40bb03ad8d8d
  Author: Delyan Kratunov <delyank@fb.com>
  Date:   Wed May 11 18:28:36 2022 +0000

    sched/tracing: Append prev_state to tp args instead

    Commit fa2c3254d7cf (sched/tracing: Don't re-read p->state when emitting
    sched_switch event, 2022-01-20) added a new prev_state argument to the
    sched_switch tracepoint, before the prev task_struct pointer.

    This reordering of arguments broke BPF programs that use the raw
    tracepoint (e.g. tp_btf programs). The type of the second argument has
    changed and existing programs that assume a task_struct* argument
    (e.g. for bpf_task_storage access) will now fail to verify.

    If we instead append the new argument to the end, all existing programs
    would continue to work and can conditionally extract the prev_state
    argument on supported kernel versions.

Change-Id: Ife2ec88a8bea2743562590cbd357068d7773863f
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agofix: KVM: x86: Unexport kvm_x86_ops (v5.18)
Michael Jeanson [Mon, 4 Apr 2022 20:28:26 +0000 (16:28 -0400)] 
fix: KVM: x86: Unexport kvm_x86_ops (v5.18)

See upstream commit :

  commit dfc4e6ca041135217c07ebcd102b6694cea22856
  Author: Sean Christopherson <seanjc@google.com>
  Date:   Fri Jan 28 00:51:56 2022 +0000

    KVM: x86: Unexport kvm_x86_ops

    Drop the export of kvm_x86_ops now it is no longer referenced by SVM or
    VMX.  Disallowing access to kvm_x86_ops is very desirable as it prevents
    vendor code from incorrectly modifying hooks after they have been set by
    kvm_arch_hardware_setup(), and more importantly after each function's
    associated static_call key has been updated.

    No functional change intended.

Change-Id: Icee959a984570f95ab9b71354225b5aeecea7da0
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agoFix: do not warn on unknown counter ioctl
Mathieu Desnoyers [Fri, 8 Apr 2022 18:33:20 +0000 (14:33 -0400)] 
Fix: do not warn on unknown counter ioctl

It is perfectly valid for a newer lttng-tools to try to use an unknown
ioctl and handle -ENOSYS.

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

2 years agofix: mm: compaction: cleanup the compaction trace events (v5.18)
Michael Jeanson [Mon, 4 Apr 2022 19:14:01 +0000 (15:14 -0400)] 
fix: mm: compaction: cleanup the compaction trace events (v5.18)

See upstream commit :

  commit abd4349ff9b8d242376b67711254221f64f447c7
  Author: Baolin Wang <baolin.wang@linux.alibaba.com>
  Date:   Tue Mar 22 14:45:56 2022 -0700

    mm: compaction: cleanup the compaction trace events

    As Steven suggested [1], we should access the pointers from the trace
    event to avoid dereferencing them to the tracepoint function when the
    tracepoint is disabled.

    [1] https://lkml.org/lkml/2021/11/3/409

Change-Id: I6c08250df8596e8dbc76780ae5d95c899c12e6fe
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agoRename genhd wrapper to blkdev
Michael Jeanson [Tue, 5 Apr 2022 18:57:41 +0000 (14:57 -0400)] 
Rename genhd wrapper to blkdev

The genhd.h header was folded into blkdev.h in v5.18, rename our wrapper
to follow upstream.

Change-Id: I4ec94fb94d11712dd20f0680aea1de77fbfa9d17
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agofix: scsi: core: Remove <scsi/scsi_request.h> (v5.18)
Michael Jeanson [Mon, 4 Apr 2022 19:08:48 +0000 (15:08 -0400)] 
fix: scsi: core: Remove <scsi/scsi_request.h> (v5.18)

See upstream commit :

  commit 26440303310591e29121964ede0048583cb3126d
  Author: Christoph Hellwig <hch@lst.de>
  Date:   Thu Feb 24 18:55:52 2022 +0100

    scsi: core: Remove <scsi/scsi_request.h>

    This header is empty now except for an include of <linux/blk-mq.h>, so
    remove it.

Change-Id: Ic8ee3352f1e8bddfcd44c31be9b788db82f183aa
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agofix: kprobes: Use rethook for kretprobe if possible (v5.18)
Michael Jeanson [Mon, 4 Apr 2022 19:02:10 +0000 (15:02 -0400)] 
fix: kprobes: Use rethook for kretprobe if possible (v5.18)

See upstream commit :

  commit 73f9b911faa74ac5107879de05c9489c419f41bb
  Author: Masami Hiramatsu <mhiramat@kernel.org>
  Date:   Sat Mar 26 11:27:05 2022 +0900

    kprobes: Use rethook for kretprobe if possible

    Use rethook for kretprobe function return hooking if the arch sets
    CONFIG_HAVE_RETHOOK=y. In this case, CONFIG_KRETPROBE_ON_RETHOOK is
    set to 'y' automatically, and the kretprobe internal data fields
    switches to use rethook. If not, it continues to use kretprobe
    specific function return hooks.

Change-Id: I2b7670dc04e4769c1e3c372582ad2f555f6d7a66
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agofix: random: remove unused tracepoints (v5.18)
Michael Jeanson [Mon, 4 Apr 2022 18:33:42 +0000 (14:33 -0400)] 
fix: random: remove unused tracepoints (v5.18)

See upstream commit :

  commit 14c174633f349cb41ea90c2c0aaddac157012f74
  Author: Jason A. Donenfeld <Jason@zx2c4.com>
  Date:   Thu Feb 10 16:40:44 2022 +0100

    random: remove unused tracepoints

    These explicit tracepoints aren't really used and show sign of aging.
    It's work to keep these up to date, and before I attempted to keep them
    up to date, they weren't up to date, which indicates that they're not
    really used. These days there are better ways of introspecting anyway.

Change-Id: I3b8c3e2732e7efdd76ce63204ac53a48784d0df6
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agofix: scsi: block: Remove REQ_OP_WRITE_SAME support (v5.18)
Michael Jeanson [Mon, 4 Apr 2022 18:12:13 +0000 (14:12 -0400)] 
fix: scsi: block: Remove REQ_OP_WRITE_SAME support (v5.18)

See upstream commit :

  commit 73bd66d9c834220579c881a3eb020fd8917075d8
  Author: Christoph Hellwig <hch@lst.de>
  Date:   Wed Feb 9 09:28:28 2022 +0100

    scsi: block: Remove REQ_OP_WRITE_SAME support

    No more users of REQ_OP_WRITE_SAME or drivers implementing it are left,
    so remove the infrastructure.

Change-Id: Ifbff71f79f8b590436fc7cb79f82d90c6e033d84
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agofix: block: remove genhd.h (v5.18)
Michael Jeanson [Mon, 4 Apr 2022 17:54:59 +0000 (13:54 -0400)] 
fix: block: remove genhd.h (v5.18)

See upstream commit :

  commit 322cbb50de711814c42fb088f6d31901502c711a
  Author: Christoph Hellwig <hch@lst.de>
  Date:   Mon Jan 24 10:39:13 2022 +0100

    block: remove genhd.h

    There is no good reason to keep genhd.h separate from the main blkdev.h
    header that includes it.  So fold the contents of genhd.h into blkdev.h
    and remove genhd.h entirely.

Change-Id: I7cf2aaa3a4c133320b95f2edde49f790f9515dbd
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agofix: sched/tracing: Don't re-read p->state when emitting sched_switch event (v5.18)
Michael Jeanson [Mon, 4 Apr 2022 17:52:57 +0000 (13:52 -0400)] 
fix: sched/tracing: Don't re-read p->state when emitting sched_switch event (v5.18)

See upstream commit :

  commit fa2c3254d7cfff5f7a916ab928a562d1165f17bb
  Author: Valentin Schneider <valentin.schneider@arm.com>
  Date:   Thu Jan 20 16:25:19 2022 +0000

    sched/tracing: Don't re-read p->state when emitting sched_switch event

    As of commit

      c6e7bd7afaeb ("sched/core: Optimize ttwu() spinning on p->on_cpu")

    the following sequence becomes possible:

                          p->__state = TASK_INTERRUPTIBLE;
                          __schedule()
                            deactivate_task(p);
      ttwu()
        READ !p->on_rq
        p->__state=TASK_WAKING
                            trace_sched_switch()
                              __trace_sched_switch_state()
                                task_state_index()
                                  return 0;

    TASK_WAKING isn't in TASK_REPORT, so the task appears as TASK_RUNNING in
    the trace event.

    Prevent this by pushing the value read from __schedule() down the trace
    event.

Change-Id: I46743cd006be4b4d573cae2d77df7d6d16744d04
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
2 years agoFix: tracepoint event: allow same provider and event name
Mathieu Desnoyers [Mon, 4 Apr 2022 19:49:32 +0000 (15:49 -0400)] 
Fix: tracepoint event: allow same provider and event name

Using the same name for the provider (TRACE_SYSTEM) and event name
causes a compilation error because the same identifiers are emitted
twice.

Fix this by prefixing the provider identifier with
"__provider_event_desc___".

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

2 years agoFix: compaction migratepages event name
Mathieu Desnoyers [Tue, 29 Mar 2022 20:34:07 +0000 (16:34 -0400)] 
Fix: compaction migratepages event name

The commit "fix: mm: compaction: fix the migration stats in trace_mm_compaction_migratepages() (v5.17)"

Triggers this warning:

    LTTng: event provider mismatch: The event name needs to start with provider name + _ + one or more letter, provider: compaction, event name: mm_compaction_migratepages

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

2 years agoDocument expected ISO8601 time formats in ABI header
Mathieu Desnoyers [Mon, 14 Mar 2022 17:31:24 +0000 (13:31 -0400)] 
Document expected ISO8601 time formats in ABI header

Document the expected ISO8601 time formats in the ABI header to justify
the choice of string maximum length.

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

2 years agoFix: lttng ABI: lttng_counter_ioctl() tainted scalar
Mathieu Desnoyers [Mon, 14 Mar 2022 15:25:56 +0000 (11:25 -0400)] 
Fix: lttng ABI: lttng_counter_ioctl() tainted scalar

Found by Coverity:

>>>     CID 1476250:    (TAINTED_SCALAR)
>>>     Using tainted variable "local_counter_aggregate.index.number_dimensions" as a loop boundary.

>>>     CID 1476250:    (TAINTED_SCALAR)
>>>     Using tainted variable "local_counter_clear.index.number_dimensions" as a loop boundary.

>>>     CID 1476250:    (TAINTED_SCALAR)
>>>     Using tainted variable "local_counter_read.index.number_dimensions" as a loop boundary.

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

2 years agoCleanup: Remove dead code in _lttng_kernel_event_create()
Mathieu Desnoyers [Mon, 14 Mar 2022 15:23:17 +0000 (11:23 -0400)] 
Cleanup: Remove dead code in _lttng_kernel_event_create()

Found by Coverity:

>>>     CID 1476251:    (DEADCODE)
>>>     Execution cannot reach this statement: "case LTTNG_KERNEL_ABI_NOOP:".

>>>     CID 1476251:    (DEADCODE)
>>>     Execution cannot reach this statement: "case LTTNG_KERNEL_ABI_FUNCT...".

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

2 years agoFix: lttng_event_enabler_create_syscall_events_if_missing() uninitialized ret variable
Mathieu Desnoyers [Mon, 14 Mar 2022 14:59:55 +0000 (10:59 -0400)] 
Fix: lttng_event_enabler_create_syscall_events_if_missing() uninitialized ret variable

Found by Coverity:

** CID 1476252:  Uninitialized variables  (UNINIT)
/src/lttng-syscalls.c: 843 in lttng_event_enabler_create_syscall_events_if_missing()

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

2 years agoFix: lttng_syscall_filter_enable_event(): uninitialized ret variable
Mathieu Desnoyers [Mon, 14 Mar 2022 14:58:08 +0000 (10:58 -0400)] 
Fix: lttng_syscall_filter_enable_event(): uninitialized ret variable

Found by Coverity:

** CID 1476253:  Uninitialized variables  (UNINIT)
/src/lttng-syscalls.c: 1057 in lttng_syscall_filter_enable_event()

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

2 years agoFix: sample discarded events count before reserve
Mathieu Desnoyers [Thu, 10 Mar 2022 19:20:47 +0000 (14:20 -0500)] 
Fix: sample discarded events count before reserve

Sampling the discarded events count in the buffer_end callback is done
out of order, and may therefore include increments performed by following
events (in following packets) if the thread doing the end-of-packet
event write is interrupted for a long time.

Sampling the event discarded counts before reserving space for the last
event in a packet, and keeping this as part of the private ring buffer
context, should fix this race.

In lttng-modules, this scenario would only happen if an interrupt
handler produces many events, when nested over an event between its
reserve and commit. Note that if lttng-modules supports faultable
tracepoints in the future, this may become more easy to trigger due to
preemption.

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

2 years agoCleanup: comment alignment in ring buffer config.h
Mathieu Desnoyers [Thu, 10 Mar 2022 19:01:14 +0000 (14:01 -0500)] 
Cleanup: comment alignment in ring buffer config.h

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

2 years agofix: net: socket: rename SKB_DROP_REASON_SOCKET_FILTER (v5.17)
Michael Jeanson [Mon, 31 Jan 2022 15:47:53 +0000 (10:47 -0500)] 
fix: net: socket: rename SKB_DROP_REASON_SOCKET_FILTER (v5.17)

No version check needed since this change is between two RCs, see
upstream commit :

  commit 364df53c081d93fcfd6b91085ff2650c7f17b3c7
  Author: Menglong Dong <imagedong@tencent.com>
  Date:   Thu Jan 27 17:13:01 2022 +0800

    net: socket: rename SKB_DROP_REASON_SOCKET_FILTER

    Rename SKB_DROP_REASON_SOCKET_FILTER, which is used
    as the reason of skb drop out of socket filter before
    it's part of a released kernel. It will be used for
    more protocols than just TCP in future series.

Link: https://lore.kernel.org/all/20220127091308.91401-2-imagedong@tencent.com/
Change-Id: I666461a5b541fe9e0bf53ad996ce33237af4bfbb
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
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

This page took 0.048384 seconds and 4 git commands to generate.