]> git.pld-linux.org Git - packages/lttng-modules.git/commitdiff
upstream fixes for kernel 6.3, rel 2 auto/th/lttng-modules-2.13.9-2
authorJan Rękorajski <baggins@pld-linux.org>
Sun, 21 May 2023 21:23:08 +0000 (23:23 +0200)
committerJan Rękorajski <baggins@pld-linux.org>
Sun, 21 May 2023 21:23:08 +0000 (23:23 +0200)
kernel-6.3.patch [new file with mode: 0644]
lttng-modules.spec

diff --git a/kernel-6.3.patch b/kernel-6.3.patch
new file mode 100644 (file)
index 0000000..7f502c9
--- /dev/null
@@ -0,0 +1,300 @@
+From 23d91ab1f33370551feceddd93a1ecac7213e692 Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Tue, 7 Mar 2023 11:41:14 -0500
+Subject: [PATCH] fix: mm: introduce vma->vm_flags wrapper functions (v6.3)
+
+See upstream commit :
+
+  commit bc292ab00f6c7a661a8a605c714e8a148f629ef6
+  Author: Suren Baghdasaryan <surenb@google.com>
+  Date:   Thu Jan 26 11:37:47 2023 -0800
+
+    mm: introduce vma->vm_flags wrapper functions
+
+    vm_flags are among VMA attributes which affect decisions like VMA merging
+    and splitting.  Therefore all vm_flags modifications are performed after
+    taking exclusive mmap_lock to prevent vm_flags updates racing with such
+    operations.  Introduce modifier functions for vm_flags to be used whenever
+    flags are updated.  This way we can better check and control correct
+    locking behavior during these updates.
+
+Change-Id: I2cf662420d9d7748e5e310d3ea4bac98ba7d7f94
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+---
+ include/wrapper/mm.h                  | 16 ++++++++++++++++
+ src/lib/ringbuffer/ring_buffer_mmap.c |  4 +++-
+ 2 files changed, 19 insertions(+), 1 deletion(-)
+
+diff --git a/include/wrapper/mm.h b/include/wrapper/mm.h
+index f7e8e87e..047d9368 100644
+--- a/include/wrapper/mm.h
++++ b/include/wrapper/mm.h
+@@ -13,6 +13,22 @@
+ #include <lttng/kernel-version.h>
++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,3,0))
++static inline
++void wrapper_vm_flags_set(struct vm_area_struct *vma,
++              vm_flags_t flags)
++{
++      vm_flags_set(vma, flags);
++}
++#else
++static inline
++void wrapper_vm_flags_set(struct vm_area_struct *vma,
++              vm_flags_t flags)
++{
++      vma->vm_flags |= flags;
++}
++#endif
++
+ #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,6,0) \
+               || LTTNG_UBUNTU_KERNEL_RANGE(4,4,25,44, 4,5,0,0))
+diff --git a/src/lib/ringbuffer/ring_buffer_mmap.c b/src/lib/ringbuffer/ring_buffer_mmap.c
+index 25e2d8d5..d24b76a3 100644
+--- a/src/lib/ringbuffer/ring_buffer_mmap.c
++++ b/src/lib/ringbuffer/ring_buffer_mmap.c
+@@ -17,6 +17,8 @@
+ #include <ringbuffer/frontend.h>
+ #include <ringbuffer/vfs.h>
++#include <wrapper/mm.h>
++
+ /*
+  * fault() vm_op implementation for ring buffer file mapping.
+  */
+@@ -113,7 +115,7 @@ static int lib_ring_buffer_mmap_buf(struct lttng_kernel_ring_buffer *buf,
+               return -EINVAL;
+       vma->vm_ops = &lib_ring_buffer_mmap_ops;
+-      vma->vm_flags |= VM_DONTEXPAND;
++      wrapper_vm_flags_set(vma, VM_DONTEXPAND);
+       vma->vm_private_data = buf;
+       return 0;
+From f3559e5b06b24ad0336211950792fa97398c5e9a Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Tue, 7 Mar 2023 12:05:00 -0500
+Subject: [PATCH] fix: uuid: Decouple guid_t and uuid_le types and respective
+ macros (v6.3)
+
+See upstream commit :
+
+  commit 5e6a51787fef20b849682d8c49ec9c2beed5c373
+  Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
+  Date:   Tue Jan 24 15:38:38 2023 +0200
+
+    uuid: Decouple guid_t and uuid_le types and respective macros
+
+    The guid_t type and respective macros are being used internally only.
+    The uuid_le has its user outside the kernel. Decouple these types and
+    macros, and make guid_t completely internal type to the kernel.
+
+Change-Id: I8644fd139b0630e9cf18886b84e33bffab1e5abd
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+---
+ include/lttng/events-internal.h | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/include/lttng/events-internal.h b/include/lttng/events-internal.h
+index ef1bed28..a727230f 100644
+--- a/include/lttng/events-internal.h
++++ b/include/lttng/events-internal.h
+@@ -9,6 +9,7 @@
+ #define _LTTNG_EVENTS_INTERNAL_H
+ #include <wrapper/compiler_attributes.h>
++#include <wrapper/uuid.h>
+ #include <lttng/events.h>
+@@ -309,7 +310,7 @@ struct lttng_metadata_cache {
+       atomic_t producing;             /* Metadata being produced (incomplete) */
+       struct kref refcount;           /* Metadata cache usage */
+       struct list_head metadata_stream;       /* Metadata stream list */
+-      uuid_le uuid;                   /* Trace session unique ID (copy) */
++      guid_t uuid;                    /* Trace session unique ID (copy) */
+       struct mutex lock;              /* Produce/consume lock */
+       uint64_t version;               /* Current version of the metadata */
+ };
+@@ -459,7 +460,7 @@ struct lttng_kernel_session_private {
+       struct list_head events;                /* Event list head */
+       struct list_head list;                  /* Session list */
+       unsigned int free_chan_id;              /* Next chan ID to allocate */
+-      uuid_le uuid;                           /* Trace session unique ID */
++      guid_t uuid;                            /* Trace session unique ID */
+       struct lttng_metadata_cache *metadata_cache;
+       unsigned int metadata_dumped:1,
+               tstate:1;                       /* Transient enable state */
+From f39b4a3cbff6d286025bd692aaa24ae6f8efb40b Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Tue, 7 Mar 2023 11:26:25 -0500
+Subject: [PATCH] fix: btrfs: pass find_free_extent_ctl to allocator
+ tracepoints (v6.3)
+
+See upstream commit :
+
+  commit cfc2de0fce015d4249c674ef9f5e0b4817ba5c53
+  Author: Boris Burkov <boris@bur.io>
+  Date:   Thu Dec 15 16:06:31 2022 -0800
+
+    btrfs: pass find_free_extent_ctl to allocator tracepoints
+
+    The allocator tracepoints currently have a pile of values from ffe_ctl.
+    In modifying the allocator and adding more tracepoints, I found myself
+    adding to the already long argument list of the tracepoints. It makes it
+    a lot simpler to just send in the ffe_ctl itself.
+
+Change-Id: Iab4132a9d3df3a6369591a50fb75374b1e399fa4
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+---
+ include/instrumentation/events/btrfs.h | 60 +++++++++++++++++++++++++-
+ 1 file changed, 58 insertions(+), 2 deletions(-)
+
+diff --git a/include/instrumentation/events/btrfs.h b/include/instrumentation/events/btrfs.h
+index 3e4ac56d..f370de68 100644
+--- a/include/instrumentation/events/btrfs.h
++++ b/include/instrumentation/events/btrfs.h
+@@ -13,6 +13,10 @@
+ #include <../fs/btrfs/accessors.h>
+ #endif
++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,3,0))
++#include <../fs/btrfs/extent-tree.h>
++#endif
++
+ #ifndef _TRACE_BTRFS_DEF_
+ #define _TRACE_BTRFS_DEF_
+ struct btrfs_root;
+@@ -1859,7 +1863,26 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserved_extent,  btrfs_reserved_extent_f
+ #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
+-#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,10,0) || \
++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,3,0))
++LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
++
++      btrfs_find_free_extent,
++
++      TP_PROTO(const struct btrfs_root *root,
++              const struct find_free_extent_ctl *ffe_ctl),
++
++      TP_ARGS(root, ffe_ctl),
++
++      TP_FIELDS(
++              ctf_array(u8, fsid, root->lttng_fs_info_fsid, BTRFS_UUID_SIZE)
++              ctf_integer(u64, root_objectid, root->root_key.objectid)
++              ctf_integer(u64, num_bytes, ffe_ctl->num_bytes)
++              ctf_integer(u64, empty_size, ffe_ctl->empty_size)
++              ctf_integer(u64, flags, ffe_ctl->flags)
++      )
++)
++
++#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,10,0) || \
+       LTTNG_KERNEL_RANGE(5,9,5, 5,10,0) || \
+       LTTNG_KERNEL_RANGE(5,4,78, 5,5,0) || \
+       LTTNG_UBUNTU_KERNEL_RANGE(5,8,18,44, 5,9,0,0))
+@@ -1998,7 +2021,40 @@ LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
+ )
+ #endif
+-#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,5,0))
++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,3,0))
++LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent,
++
++      TP_PROTO(const struct btrfs_block_group *block_group,
++              const struct find_free_extent_ctl *ffe_ctl),
++
++      TP_ARGS(block_group, ffe_ctl),
++
++      TP_FIELDS(
++              ctf_array(u8, fsid, block_group->lttng_fs_info_fsid, BTRFS_UUID_SIZE)
++              ctf_integer(u64, bg_objectid, block_group->start)
++              ctf_integer(u64, flags, block_group->flags)
++              ctf_integer(u64, start, ffe_ctl->search_start)
++              ctf_integer(u64, len, ffe_ctl->num_bytes)
++      )
++)
++
++LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserve_extent, btrfs_reserve_extent,
++
++      TP_PROTO(const struct btrfs_block_group *block_group,
++              const struct find_free_extent_ctl *ffe_ctl),
++
++      TP_ARGS(block_group, ffe_ctl)
++)
++
++LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserve_extent, btrfs_reserve_extent_cluster,
++
++      TP_PROTO(const struct btrfs_block_group *block_group,
++              const struct find_free_extent_ctl *ffe_ctl),
++
++      TP_ARGS(block_group, ffe_ctl)
++)
++
++#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,5,0))
+ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent,
+       TP_PROTO(const struct btrfs_block_group *block_group, u64 start,
+From 6bc8ed7d08c616991451183eaffeeeb80ca0cd1a Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Tue, 7 Mar 2023 11:10:26 -0500
+Subject: [PATCH] fix: net: add location to trace_consume_skb() (v6.3)
+
+See upstream commit :
+
+  commit dd1b527831a3ed659afa01b672d8e1f7e6ca95a5
+  Author: Eric Dumazet <edumazet@google.com>
+  Date:   Thu Feb 16 15:47:18 2023 +0000
+
+    net: add location to trace_consume_skb()
+
+    kfree_skb() includes the location, it makes sense
+    to add it to consume_skb() as well.
+
+Change-Id: I8d871187d90e7fe113a63e209b00aebe0df475f3
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+---
+ include/instrumentation/events/skb.h | 16 ++++++++++++++++
+ 1 file changed, 16 insertions(+)
+
+diff --git a/include/instrumentation/events/skb.h b/include/instrumentation/events/skb.h
+index 186732ea..3c43f32d 100644
+--- a/include/instrumentation/events/skb.h
++++ b/include/instrumentation/events/skb.h
+@@ -61,6 +61,21 @@ LTTNG_TRACEPOINT_EVENT_MAP(kfree_skb,
+ )
+ #endif
++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,3,0))
++LTTNG_TRACEPOINT_EVENT_MAP(consume_skb,
++
++      skb_consume,
++
++      TP_PROTO(struct sk_buff *skb, void *location),
++
++      TP_ARGS(skb, location),
++
++      TP_FIELDS(
++              ctf_integer_hex(void *, skbaddr, skb)
++              ctf_integer_hex(void *, location, location)
++      )
++)
++#else
+ LTTNG_TRACEPOINT_EVENT_MAP(consume_skb,
+       skb_consume,
+@@ -73,6 +88,7 @@ LTTNG_TRACEPOINT_EVENT_MAP(consume_skb,
+               ctf_integer_hex(void *, skbaddr, skb)
+       )
+ )
++#endif
+ LTTNG_TRACEPOINT_EVENT(skb_copy_datagram_iovec,
index c4a041a45de84a7e1f15254375cbee2b1e88e39f..3adb7b335dd76f0459620baadd7b684e0b7c6e7f 100644 (file)
@@ -6,7 +6,7 @@
 # nothing to be placed to debuginfo package
 %define                _enable_debug_packages  0
 
-%define                rel     1
+%define                rel     2
 %define                pname   lttng-modules
 Summary:       LTTng 2.x kernel modules
 Summary(pl.UTF-8):     Moduły jądra LTTng 2.x
@@ -18,6 +18,7 @@ Group:                Base/Kernel
 Source0:       https://lttng.org/files/lttng-modules/%{pname}-%{version}.tar.bz2
 # Source0-md5: aee7fd322982c884d139a2a3615d217a
 Patch0:                build.patch
+Patch1:                kernel-6.3.patch
 URL:           https://lttng.org/
 %{expand:%buildrequires_kernel kernel%%{_alt_kernel}-module-build >= 3:3.0}
 %{?with_kernelsrc:%{expand:%buildrequires_kernel kernel%%{_alt_kernel}-source >= 3:3.0}}
@@ -94,6 +95,7 @@ p=`pwd`\
 %setup -qc -n %{name}-%{version}
 cd %{pname}-%{version}
 %patch0 -p1
+%patch1 -p1
 
 %build
 cd  %{pname}-%{version}
This page took 0.077118 seconds and 4 git commands to generate.