summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBruce Ashfield <bruce.ashfield@gmail.com>2022-05-19 20:46:09 -0400
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-06-18 16:34:41 +0100
commit7cdf493ae75f16e6989458fb48a7ce51fd182b1c (patch)
tree89d851365c25135f94e83d97f8a7dcbb7ccba81d
parent57962911f2a0c8de9a1af815a7e829fa22e009b6 (diff)
downloadpoky-7cdf493ae75f16e6989458fb48a7ce51fd182b1c.tar.gz
lttng-modules: fix build against 5.18-rc7+
lttng-modules fails to build against 5.18-rc7, the details of the fix are as follows: The commit [fix: sched/tracing: Don't re-read p->state when emitting sched_switch event (v5.18)] was correct, but the kernel changed their mind with the following 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. Fixes: fa2c3254d7cf (sched/tracing: Don't re-read p->state when emitting sched_switch event, 2022-01-20) Signed-off-by: Delyan Kratunov <delyank@fb.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Acked-by: Steven Rostedt (Google) <rostedt@goodmis.org> Link: https://lkml.kernel.org/r/c8a6930dfdd58a4a5755fc01732675472979732b.camel@fb.com By reordering the parameters (again) we can get back up and building. Upstream-Status: Backport (From OE-Core rev: 6c689e1b6f5501b0db8b24552fe4eae033fee289) Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit fb69e5cfb043a15354beb2d613772aa0233d12ae) Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules/0001-fix-sched-tracing-Append-prev_state-to-tp-args-inste.patch59
-rw-r--r--meta/recipes-kernel/lttng/lttng-modules_2.13.3.bb1
2 files changed, 60 insertions, 0 deletions
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0001-fix-sched-tracing-Append-prev_state-to-tp-args-inste.patch b/meta/recipes-kernel/lttng/lttng-modules/0001-fix-sched-tracing-Append-prev_state-to-tp-args-inste.patch
new file mode 100644
index 0000000000..b41053b6bc
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-modules/0001-fix-sched-tracing-Append-prev_state-to-tp-args-inste.patch
@@ -0,0 +1,59 @@
1From 9c5b8de32b5745f3ff31079c02da64595e101bee Mon Sep 17 00:00:00 2001
2From: Michael Jeanson <mjeanson@efficios.com>
3Date: Tue, 17 May 2022 11:46:29 -0400
4Subject: [PATCH] fix: sched/tracing: Append prev_state to tp args instead
5 (v5.18)
6
7See upstream commit :
8
9 commit 9c2136be0878c88c53dea26943ce40bb03ad8d8d
10 Author: Delyan Kratunov <delyank@fb.com>
11 Date: Wed May 11 18:28:36 2022 +0000
12
13 sched/tracing: Append prev_state to tp args instead
14
15 Commit fa2c3254d7cf (sched/tracing: Don't re-read p->state when emitting
16 sched_switch event, 2022-01-20) added a new prev_state argument to the
17 sched_switch tracepoint, before the prev task_struct pointer.
18
19 This reordering of arguments broke BPF programs that use the raw
20 tracepoint (e.g. tp_btf programs). The type of the second argument has
21 changed and existing programs that assume a task_struct* argument
22 (e.g. for bpf_task_storage access) will now fail to verify.
23
24 If we instead append the new argument to the end, all existing programs
25 would continue to work and can conditionally extract the prev_state
26 argument on supported kernel versions.
27
28
29Upstream-Status: Backport
30
31Change-Id: Ife2ec88a8bea2743562590cbd357068d7773863f
32Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
33Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
34---
35 include/instrumentation/events/sched.h | 6 +++---
36 1 file changed, 3 insertions(+), 3 deletions(-)
37
38diff --git a/include/instrumentation/events/sched.h b/include/instrumentation/events/sched.h
39index 339bec94..c1c3df15 100644
40--- a/include/instrumentation/events/sched.h
41+++ b/include/instrumentation/events/sched.h
42@@ -356,11 +356,11 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(sched_wakeup_template, sched_wakeup_new,
43 LTTNG_TRACEPOINT_EVENT(sched_switch,
44
45 TP_PROTO(bool preempt,
46- unsigned int prev_state,
47 struct task_struct *prev,
48- struct task_struct *next),
49+ struct task_struct *next,
50+ unsigned int prev_state),
51
52- TP_ARGS(preempt, prev_state, prev, next),
53+ TP_ARGS(preempt, prev, next, prev_state),
54
55 TP_FIELDS(
56 ctf_array_text(char, prev_comm, prev->comm, TASK_COMM_LEN)
57--
582.19.1
59
diff --git a/meta/recipes-kernel/lttng/lttng-modules_2.13.3.bb b/meta/recipes-kernel/lttng/lttng-modules_2.13.3.bb
index 2b00534e53..a5e6b906d2 100644
--- a/meta/recipes-kernel/lttng/lttng-modules_2.13.3.bb
+++ b/meta/recipes-kernel/lttng/lttng-modules_2.13.3.bb
@@ -20,6 +20,7 @@ SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \
20 file://0008-fix-scsi-core-Remove-scsi-scsi_request.h-v5.18.patch \ 20 file://0008-fix-scsi-core-Remove-scsi-scsi_request.h-v5.18.patch \
21 file://0009-Rename-genhd-wrapper-to-blkdev.patch \ 21 file://0009-Rename-genhd-wrapper-to-blkdev.patch \
22 file://0010-fix-mm-compaction-cleanup-the-compaction-trace-event.patch \ 22 file://0010-fix-mm-compaction-cleanup-the-compaction-trace-event.patch \
23 file://0001-fix-sched-tracing-Append-prev_state-to-tp-args-inste.patch \
23 " 24 "
24 25
25# Use :append here so that the patch is applied also when using devupstream 26# Use :append here so that the patch is applied also when using devupstream