mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-15 15:04:27 +08:00
perf/x86: Simplify x86_pmu.get_constraints() interface
There is a special case for validate_events() where we'll call x86_pmu.get_constraints(.idx=-1). It's purpose, up until recent, seems to be to avoid taking a previous constraint from cpuc->event_constraint[] in intel_get_event_constraints(). (I could not find any other get_event_constraints() implementation using @idx) However, since that cpuc is freshly allocated, that array will in fact be initialized with NULL pointers, achieving the very same effect. Therefore remove this exception. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Reviewed-by: Stephane Eranian <eranian@google.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Vince Weaver <vincent.weaver@maine.edu> Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
parent
1a81542abf
commit
21d65555cd
@ -2031,7 +2031,7 @@ static int validate_event(struct perf_event *event)
|
||||
if (IS_ERR(fake_cpuc))
|
||||
return PTR_ERR(fake_cpuc);
|
||||
|
||||
c = x86_pmu.get_event_constraints(fake_cpuc, -1, event);
|
||||
c = x86_pmu.get_event_constraints(fake_cpuc, 0, event);
|
||||
|
||||
if (!c || !c->weight)
|
||||
ret = -EINVAL;
|
||||
|
@ -2931,11 +2931,9 @@ static struct event_constraint *
|
||||
intel_get_event_constraints(struct cpu_hw_events *cpuc, int idx,
|
||||
struct perf_event *event)
|
||||
{
|
||||
struct event_constraint *c1 = NULL;
|
||||
struct event_constraint *c2;
|
||||
struct event_constraint *c1, *c2;
|
||||
|
||||
if (idx >= 0) /* fake does < 0 */
|
||||
c1 = cpuc->event_constraint[idx];
|
||||
c1 = cpuc->event_constraint[idx];
|
||||
|
||||
/*
|
||||
* first time only
|
||||
@ -3410,7 +3408,7 @@ tfa_get_event_constraints(struct cpu_hw_events *cpuc, int idx,
|
||||
/*
|
||||
* Without TFA we must not use PMC3.
|
||||
*/
|
||||
if (!allow_tsx_force_abort && test_bit(3, c->idxmsk) && idx >= 0) {
|
||||
if (!allow_tsx_force_abort && test_bit(3, c->idxmsk)) {
|
||||
c = dyn_constraint(cpuc, c, idx);
|
||||
c->idxmsk64 &= ~(1ULL << 3);
|
||||
c->weight--;
|
||||
|
Loading…
Reference in New Issue
Block a user