All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wen Pu <puwen@hygon.cn>
To: Sandipan Das <sandipan.das@amd.com>,
	Peter Zijlstra <peterz@infradead.org>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-perf-users@vger.kernel.org"
	<linux-perf-users@vger.kernel.org>,
	"x86@kernel.org" <x86@kernel.org>, "bp@alien8.de" <bp@alien8.de>,
	"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>,
	"acme@kernel.org" <acme@kernel.org>,
	"mark.rutland@arm.com" <mark.rutland@arm.com>,
	"alexander.shishkin@linux.intel.com" 
	<alexander.shishkin@linux.intel.com>,
	"namhyung@kernel.org" <namhyung@kernel.org>,
	"jolsa@kernel.org" <jolsa@kernel.org>,
	"tglx@linutronix.de" <tglx@linutronix.de>,
	"mingo@redhat.com" <mingo@redhat.com>,
	"pbonzini@redhat.com" <pbonzini@redhat.com>,
	"jmattson@google.com" <jmattson@google.com>,
	"like.xu.linux@gmail.com" <like.xu.linux@gmail.com>,
	"eranian@google.com" <eranian@google.com>,
	"ananth.narayan@amd.com" <ananth.narayan@amd.com>,
	"ravi.bangoria@amd.com" <ravi.bangoria@amd.com>,
	"santosh.shukla@amd.com" <santosh.shukla@amd.com>
Subject: Re: [PATCH v2 7/7] kvm: x86/cpuid: Fix CPUID leaf 0xA
Date: Tue, 26 Apr 2022 11:45:32 +0000	[thread overview]
Message-ID: <25e89d27-d7da-2dea-dd20-0a9d8dcdee83@hygon.cn> (raw)
In-Reply-To: <9e6d14a0-a658-195c-c7a3-7d2687a61544@amd.com>

On 2022/4/26 16:40, Sandipan Das wrote:
> Hi Peter,
> 
> On 4/26/2022 1:45 PM, Peter Zijlstra wrote:
>> On Thu, Apr 21, 2022 at 11:16:59AM +0530, Sandipan Das wrote:
>>> On some x86 processors, CPUID leaf 0xA provides information
>>> on Architectural Performance Monitoring features. It
>>> advertises a PMU version which Qemu uses to determine the
>>> availability of additional MSRs to manage the PMCs.
>>>
>>> Upon receiving a KVM_GET_SUPPORTED_CPUID ioctl request for
>>> the same, the kernel constructs return values based on the
>>> x86_pmu_capability irrespective of the vendor.
>>>
>>> This leaf and the additional MSRs are not supported on AMD
>>> processors. If PerfMonV2 is detected, the PMU version is
>>> set to 2 and guest startup breaks because of an attempt to
>>> access a non-existent MSR. Return zeros to avoid this.
>>>
>>> Fixes: a6c06ed1a60a ("KVM: Expose the architectural performance monitoring CPUID leaf")
>>> Reported-by: Vasant Hegde <vasant.hegde@amd.com>
>>> Signed-off-by: Sandipan Das <sandipan.das@amd.com>
>>> ---
>>>   arch/x86/kvm/cpuid.c | 5 +++++
>>>   1 file changed, 5 insertions(+)
>>>
>>> diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
>>> index 4b62d80bb22f..6bd65cad75ef 100644
>>> --- a/arch/x86/kvm/cpuid.c
>>> +++ b/arch/x86/kvm/cpuid.c
>>> @@ -872,6 +872,11 @@ static inline int __do_cpuid_func(struct kvm_cpuid_array *array, u32 function)
>>>   		union cpuid10_eax eax;
>>>   		union cpuid10_edx edx;
>>>   
>>> +		if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD) {
>>
>> This is the obligatory question about HYGON; should they be included
>> here?
>>
>> x86 is getting a number of me-too patches from both sides, where
>> behaviour has diverged for no raisin and then needs to be fixed up
>> again.
>>
> 
>  From what I understand, Hygon processors also do not support this leaf.
> Copying Pu Wen for confirmation.

Hi Peter, Sandipan:

I have confirmed that Hygon processors do not support CPUID leaf 0xA.
Sandipan, could you please also add X86_VENDOR_HYGON in the if
conditional?

-- 
Regards,
Pu Wen

> - Sandipan
> 
>>> +			entry->eax = entry->ebx = entry->ecx = entry->edx = 0;
>>> +			break;
>>> +		}
>>> +
>>>   		perf_get_x86_pmu_capability(&cap);
>>>   
>>>   		/*
>>> -- 
>>> 2.32.0
>>>

  reply	other threads:[~2022-04-26 11:49 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-21  5:46 [PATCH v2 0/7] perf/x86/amd/core: Add AMD PerfMonV2 support Sandipan Das
2022-04-21  5:46 ` [PATCH v2 1/7] x86/cpufeatures: Add PerfMonV2 feature bit Sandipan Das
2022-04-21  5:46 ` [PATCH v2 2/7] x86/msr: Add PerfCntrGlobal* registers Sandipan Das
2022-04-21  5:46 ` [PATCH v2 3/7] perf/x86/amd/core: Detect PerfMonV2 support Sandipan Das
2022-04-21  5:46 ` [PATCH v2 4/7] perf/x86/amd/core: Detect available counters Sandipan Das
2022-04-21  5:46 ` [PATCH v2 5/7] perf/x86/amd/core: Add PerfMonV2 counter control Sandipan Das
2022-04-21  5:46 ` [PATCH v2 6/7] perf/x86/amd/core: Add PerfMonV2 overflow handling Sandipan Das
2022-04-21  5:46 ` [PATCH v2 7/7] kvm: x86/cpuid: Fix CPUID leaf 0xA Sandipan Das
2022-04-26  8:15   ` Peter Zijlstra
2022-04-26  8:40     ` Sandipan Das
2022-04-26 11:45       ` Wen Pu [this message]
2022-04-26 12:39         ` Peter Zijlstra

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=25e89d27-d7da-2dea-dd20-0a9d8dcdee83@hygon.cn \
    --to=puwen@hygon.cn \
    --cc=acme@kernel.org \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=ananth.narayan@amd.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=eranian@google.com \
    --cc=jmattson@google.com \
    --cc=jolsa@kernel.org \
    --cc=like.xu.linux@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=peterz@infradead.org \
    --cc=ravi.bangoria@amd.com \
    --cc=sandipan.das@amd.com \
    --cc=santosh.shukla@amd.com \
    --cc=tglx@linutronix.de \
    --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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.