diff options
author | Like Xu <likexu@tencent.com> | 2021-11-03 17:17:16 +0800 |
---|---|---|
committer | Peter Zijlstra <peterz@infradead.org> | 2021-11-11 13:09:34 +0100 |
commit | 5863702561e625903ec678551cb056a4b19e0b8a (patch) | |
tree | 47384c41dbe7fec2d2f5c53ce93b9e1b1569f9b2 | |
parent | 0fe39a3929ac7af980347814d552a734b51adacf (diff) | |
download | linux-5863702561e625903ec678551cb056a4b19e0b8a.tar.bz2 |
perf/x86/vlbr: Add c->flags to vlbr event constraints
Just like what we do in the x86_get_event_constraints(), the
PERF_X86_EVENT_LBR_SELECT flag should also be propagated
to event->hw.flags so that the host lbr driver can save/restore
MSR_LBR_SELECT for the special vlbr event created by KVM or BPF.
Fixes: 097e4311cda9 ("perf/x86: Add constraint to create guest LBR event without hw counter")
Reported-by: Wanpeng Li <wanpengli@tencent.com>
Signed-off-by: Like Xu <likexu@tencent.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Tested-by: Wanpeng Li <wanpengli@tencent.com>
Link: https://lore.kernel.org/r/20211103091716.59906-1-likexu@tencent.com
-rw-r--r-- | arch/x86/events/intel/core.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/x86/events/intel/core.c b/arch/x86/events/intel/core.c index 603964408d2d..42cf01ecdd13 100644 --- a/arch/x86/events/intel/core.c +++ b/arch/x86/events/intel/core.c @@ -3048,8 +3048,10 @@ intel_vlbr_constraints(struct perf_event *event) { struct event_constraint *c = &vlbr_constraint; - if (unlikely(constraint_match(c, event->hw.config))) + if (unlikely(constraint_match(c, event->hw.config))) { + event->hw.flags |= c->flags; return c; + } return NULL; } |