Messages in this thread Patch in this message | | | Subject | [GIT pull] perf fix for 4.19 | From | Thomas Gleixner <> | Date | Sat, 29 Sep 2018 20:25:47 +0200 |
| |
Greg,
please pull the latest perf-urgent-for-linus git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git perf-urgent-for-linus
A single fix for a missing sanity check when a pinned event is tried to be read on the wrong CPU due to a legit event scheduling failure.
Thanks,
tglx
------------------> Reinette Chatre (1): perf/core: Add sanity check to deal with pinned event failure
kernel/events/core.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/kernel/events/core.c b/kernel/events/core.c index c80549bf82c6..dcb093e7b377 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -3935,6 +3935,12 @@ int perf_event_read_local(struct perf_event *event, u64 *value, goto out; } + /* If this is a pinned event it must be running on this CPU */ + if (event->attr.pinned && event->oncpu != smp_processor_id()) { + ret = -EBUSY; + goto out; + } + /* * If the event is currently on this CPU, its either a per-task event, * or local to this CPU. Furthermore it means its ACTIVE (otherwise
| |