From: Reinette Chatre <reinette.chatre@intel.com>
To: tglx@linutronix.de, fenghua.yu@intel.com, tony.luck@intel.com,
peterz@infradead.org, mingo@redhat.com, acme@kernel.org
Cc: gavin.hindman@intel.com, jithu.joseph@intel.com,
dave.hansen@intel.com, hpa@zytor.com, x86@kernel.org,
linux-kernel@vger.kernel.org,
Reinette Chatre <reinette.chatre@intel.com>
Subject: [PATCH V5 1/6] perf/core: Add sanity check to deal with pinned event failure
Date: Wed, 19 Sep 2018 10:29:06 -0700
Message-ID: <6486385d1f30336e9973b24c8c65f5079543d3d3.1537377064.git.reinette.chatre@intel.com> (raw)
In-Reply-To: <cover.1537377064.git.reinette.chatre@intel.com>
In-Reply-To: <cover.1537377064.git.reinette.chatre@intel.com>
It is possible that a failure can occur during the scheduling of a
pinned event. The initial portion of perf_event_read_local() contains
the various error checks an event should pass before it can be
considered valid. Ensure that the potential scheduling failure
of a pinned event is checked for and have a credible error.
Link: http://lkml.kernel.org/r/20180807093615.GY2494@hirez.programming.kicks-ass.net
Suggested-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
---
kernel/events/core.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/kernel/events/core.c b/kernel/events/core.c
index 2a62b96600ad..191c0c2e10de 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -3940,6 +3940,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
--
2.17.0
next prev parent reply index
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-19 17:29 [PATCH V5 0/6] perf and x86/intel_rdt: Fix lack of coordination with perf Reinette Chatre
2018-09-19 17:29 ` Reinette Chatre [this message]
2018-09-28 20:48 ` [tip:perf/urgent] perf/core: Add sanity check to deal with pinned event failure tip-bot for Reinette Chatre
2018-09-19 17:29 ` [PATCH V5 2/6] perf/x86: Add helper to obtain performance counter index Reinette Chatre
2018-09-29 7:00 ` [tip:x86/cache] " tip-bot for Reinette Chatre
2018-09-19 17:29 ` [PATCH V5 3/6] x86/intel_rdt: Remove local register variables Reinette Chatre
2018-09-29 7:01 ` [tip:x86/cache] " tip-bot for Reinette Chatre
2018-09-19 17:29 ` [PATCH V5 4/6] x86/intel_rdt: Create required perf event attributes Reinette Chatre
2018-09-29 7:01 ` [tip:x86/cache] " tip-bot for Reinette Chatre
2018-09-19 17:29 ` [PATCH V5 5/6] x86/intel_rdt: Use perf infrastructure for measurements Reinette Chatre
2018-09-20 14:11 ` Peter Zijlstra
2018-09-20 19:02 ` [PATCH V6 " Reinette Chatre
2018-09-29 7:02 ` [tip:x86/cache] " tip-bot for Reinette Chatre
2018-09-19 17:29 ` [PATCH V5 6/6] x86/intel_rdt: Re-enable pseudo-lock measurements Reinette Chatre
2018-10-03 19:57 ` [tip:x86/cache] " tip-bot for Reinette Chatre
2018-09-20 14:11 ` [PATCH V5 0/6] perf and x86/intel_rdt: Fix lack of coordination with perf Peter Zijlstra
2018-09-21 16:49 ` Reinette Chatre
2018-09-27 20:39 ` Thomas Gleixner
2018-09-28 6:58 ` Peter Zijlstra
2018-09-29 14:23 ` Reinette Chatre
2018-09-29 17:56 ` Thomas Gleixner
2018-10-03 19:41 ` Reinette Chatre
2018-10-03 19:45 ` Thomas Gleixner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6486385d1f30336e9973b24c8c65f5079543d3d3.1537377064.git.reinette.chatre@intel.com \
--to=reinette.chatre@intel.com \
--cc=acme@kernel.org \
--cc=dave.hansen@intel.com \
--cc=fenghua.yu@intel.com \
--cc=gavin.hindman@intel.com \
--cc=hpa@zytor.com \
--cc=jithu.joseph@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=tony.luck@intel.com \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
LKML Archive on lore.kernel.org
Archives are clonable:
git clone --mirror https://lore.kernel.org/lkml/0 lkml/git/0.git
git clone --mirror https://lore.kernel.org/lkml/1 lkml/git/1.git
git clone --mirror https://lore.kernel.org/lkml/2 lkml/git/2.git
git clone --mirror https://lore.kernel.org/lkml/3 lkml/git/3.git
git clone --mirror https://lore.kernel.org/lkml/4 lkml/git/4.git
git clone --mirror https://lore.kernel.org/lkml/5 lkml/git/5.git
git clone --mirror https://lore.kernel.org/lkml/6 lkml/git/6.git
git clone --mirror https://lore.kernel.org/lkml/7 lkml/git/7.git
git clone --mirror https://lore.kernel.org/lkml/8 lkml/git/8.git
git clone --mirror https://lore.kernel.org/lkml/9 lkml/git/9.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 lkml lkml/ https://lore.kernel.org/lkml \
linux-kernel@vger.kernel.org
public-inbox-index lkml
Example config snippet for mirrors
Newsgroup available over NNTP:
nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git