diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-08-07 13:18:09 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-08-07 13:18:13 +0000 |
commit | 225809f918c2f2c9c831ea16ddb9b81485af5f34 (patch) | |
tree | 5332d51631f39fc96804d8001996f028bbbbdf54 /debian/patches-rt/0001-perf-Move-irq_work_queue-where-the-event-is-prepared.patch | |
parent | Merging upstream version 6.10.3. (diff) | |
download | linux-225809f918c2f2c9c831ea16ddb9b81485af5f34.tar.xz linux-225809f918c2f2c9c831ea16ddb9b81485af5f34.zip |
Merging debian version 6.10.3-1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian/patches-rt/0001-perf-Move-irq_work_queue-where-the-event-is-prepared.patch')
-rw-r--r-- | debian/patches-rt/0001-perf-Move-irq_work_queue-where-the-event-is-prepared.patch | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/debian/patches-rt/0001-perf-Move-irq_work_queue-where-the-event-is-prepared.patch b/debian/patches-rt/0001-perf-Move-irq_work_queue-where-the-event-is-prepared.patch index b5d1590348..8b06ae678c 100644 --- a/debian/patches-rt/0001-perf-Move-irq_work_queue-where-the-event-is-prepared.patch +++ b/debian/patches-rt/0001-perf-Move-irq_work_queue-where-the-event-is-prepared.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> -Date: Tue, 12 Mar 2024 19:01:49 +0100 -Subject: [PATCH 1/4] perf: Move irq_work_queue() where the event is prepared. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.9/older/patches-6.9-rt5.tar.xz +Date: Thu, 4 Jul 2024 19:03:35 +0200 +Subject: [PATCH 1/7] perf: Move irq_work_queue() where the event is prepared. +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.10/older/patches-6.10.2-rt14.tar.xz Only if perf_event::pending_sigtrap is zero, the irq_work accounted by increminging perf_event::nr_pending. The member perf_event::pending_addr @@ -15,27 +15,34 @@ irq_work is scheduled once. Tested-by: Marco Elver <elver@google.com> Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com> -Reported-by: Arnaldo Carvalho de Melo <acme@redhat.com> -Link: https://lore.kernel.org/r/20240312180814.3373778-2-bigeasy@linutronix.de +Link: https://lore.kernel.org/r/20240704170424.1466941-2-bigeasy@linutronix.de Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- - kernel/events/core.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) + kernel/events/core.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) --- a/kernel/events/core.c +++ b/kernel/events/core.c -@@ -9591,6 +9591,7 @@ static int __perf_event_overflow(struct +@@ -9738,6 +9738,11 @@ static int __perf_event_overflow(struct if (!event->pending_sigtrap) { event->pending_sigtrap = pending_id; local_inc(&event->ctx->nr_pending); ++ ++ event->pending_addr = 0; ++ if (valid_sample && (data->sample_flags & PERF_SAMPLE_ADDR)) ++ event->pending_addr = data->addr; + irq_work_queue(&event->pending_irq); } else if (event->attr.exclude_kernel && valid_sample) { /* * Should not be able to return to user space without -@@ -9610,7 +9611,6 @@ static int __perf_event_overflow(struct - event->pending_addr = 0; - if (valid_sample && (data->sample_flags & PERF_SAMPLE_ADDR)) - event->pending_addr = data->addr; +@@ -9753,11 +9758,6 @@ static int __perf_event_overflow(struct + */ + WARN_ON_ONCE(event->pending_sigtrap != pending_id); + } +- +- event->pending_addr = 0; +- if (valid_sample && (data->sample_flags & PERF_SAMPLE_ADDR)) +- event->pending_addr = data->addr; - irq_work_queue(&event->pending_irq); } |