2021-11-03 09:18:56

by Like Xu

[permalink] [raw]
Subject: [PATCH] perf/x86/vlbr: Add c->flags to vlbr event constraints

From: Like Xu <[email protected]>

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.

Reported-by: Wanpeng Li <[email protected]>
Fixes: 097e4311cda9 ("perf/x86: Add constraint to create guest LBR event without hw counter")
Signed-off-by: Like Xu <[email protected]>
---
arch/x86/events/intel/core.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/x86/events/intel/core.c b/arch/x86/events/intel/core.c
index 7011e87be6d0..30b5d1b3cb03 100644
--- a/arch/x86/events/intel/core.c
+++ b/arch/x86/events/intel/core.c
@@ -2997,8 +2997,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;
}
--
2.33.0


2021-11-04 02:39:02

by Wanpeng Li

[permalink] [raw]
Subject: Re: [PATCH] perf/x86/vlbr: Add c->flags to vlbr event constraints

On Wed, 3 Nov 2021 at 17:17, Like Xu <[email protected]> wrote:
>
> From: Like Xu <[email protected]>
>
> 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.
>
> Reported-by: Wanpeng Li <[email protected]>
> Fixes: 097e4311cda9 ("perf/x86: Add constraint to create guest LBR event without hw counter")
> Signed-off-by: Like Xu <[email protected]>

Tested-by: Wanpeng Li <[email protected]>

2021-11-11 12:22:21

by tip-bot2 for Jacob Pan

[permalink] [raw]
Subject: [tip: perf/urgent] perf/x86/vlbr: Add c->flags to vlbr event constraints

The following commit has been merged into the perf/urgent branch of tip:

Commit-ID: 5863702561e625903ec678551cb056a4b19e0b8a
Gitweb: https://git.kernel.org/tip/5863702561e625903ec678551cb056a4b19e0b8a
Author: Like Xu <[email protected]>
AuthorDate: Wed, 03 Nov 2021 17:17:16 +08:00
Committer: Peter Zijlstra <[email protected]>
CommitterDate: Thu, 11 Nov 2021 13:09:34 +01:00

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 <[email protected]>
Signed-off-by: Like Xu <[email protected]>
Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
Tested-by: Wanpeng Li <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
---
arch/x86/events/intel/core.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/x86/events/intel/core.c b/arch/x86/events/intel/core.c
index 6039644..42cf01e 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;
}