[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <b57f1785-e61f-20dd-49e1-76dfc1917df8@redhat.com>
Date: Fri, 7 Jan 2022 17:59:49 +0100
From: Paolo Bonzini <pbonzini@...hat.com>
To: Like Xu <like.xu.linux@...il.com>
Cc: Sean Christopherson <seanjc@...gle.com>,
Vitaly Kuznetsov <vkuznets@...hat.com>,
Wanpeng Li <wanpengli@...cent.com>,
Jim Mattson <jmattson@...gle.com>,
Joerg Roedel <joro@...tes.org>, kvm@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH RESEND] KVM: x86/pmu: Make top-down.slots event
unavailable in supported leaf
On 1/5/22 06:07, Like Xu wrote:
> + /*
> + * The 8th Intel pre-defined architectural event (Topdown Slots) will be supported
> + * if the 4th fixed counter exists && EAX[31:24] > 7 && EBX[7] = 0.
> + *
> + * Currently, KVM needs to set EAX[31:24] < 8 or EBX[7] == 1
> + * to make this event unavailable in a consistent way.
> + */
> + if (edx.split.num_counters_fixed < 4) {
> + if (eax.split.mask_length > 7)
> + eax.split.mask_length--;
> + if (eax.split.mask_length > 7)
> + cap.events_mask |= BIT_ULL(7);
> + }
> +
The first "> 7" is wrong; it should be == 8, shouldn't it? Something like
if (edx.split.num_counters_fixed < 4 && eax.split.mask_length >= 8) {
if (eax.split.mask_length == 8)
eax.split.mask_length--;
else
cap.events_mask |= BIT_ULL(7);
}
is what you mean, I think?
Paolo
Powered by blists - more mailing lists