Patch "s390/perf: fix bug when creating per-thread event" has been added to the 4.13-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
s390/perf: fix bug when creating per-thread event
to the 4.13-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
s390-perf-fix-bug-when-creating-per-thread-event.patch
and it can be found in the queue-4.13 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
fc3100d64f0ae383ae8d845989103da06d62763bMon Sep 17 00:00:00 2001
From: Pu Hou <[email protected]>
Date: Tue, 5 Sep 2017 05:17:24 +0200
Subject: s390/perf: fix bug when creating per-thread event
From: Pu Hou <[email protected]>
commit fc3100d64f0ae383ae8d845989103da06d62763b upstream.
A per-thread event could not be created correctly like below:
perf record --per-thread -e rB0000 -- sleep 1
Error:
The sys_perf_event_open() syscall returned with 19 (No such device) for event (rB0000). /bin/dmesg may provide additional information.
No CONFIG_PERF_EVENTS=y kernel support configured?
This bug was introduced by:
commit c311c797998c1e70eade463dd60b843da4f1a203
Author: Alexey Dobriyan <[email protected]>
Date: Mon May 8 15:56:15 2017 -0700
cpumask: make "nr_cpumask_bits" unsigned
If a per-thread event is not attached to any CPU, the cpu field in struct perf_event is -1. The above commit converts the CPU number to unsigned int, which result in an illegal CPU number.
--- arch/s390/kernel/perf_cpum_sf.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
arch/s390/kernel/perf_cpum_sf.c +6 -3
@@ -823,9 +823,12 @@ static int cpumsf_pmu_event_init(struct }/* Check online status of the CPU to which the event is pinned */ -if ((unsigned int )event->cpu >= nr_cpumask_bits || - (event->cpu >=0 && !cpu_online (event->cpu))) -return -ENODEV ; +if (event->cpu >=0 ) { +if ((unsigned int )event->cpu >= nr_cpumask_bits) +return -ENODEV ; +if (!cpu_online (event->cpu)) +return -ENODEV ; + }/* Force reset of idle/hv excludes regardless of what the * user requested.
Patches currently in stable-queue which might be from [email protected] are
queue-4.13/s390-perf-fix-bug-when-creating-per-thread-event.patch