Re: [PATCH V6 2/5] perf/x86/kvm: Avoid unnecessary work in guest filtering

Liang, Kan
2019-02-04T16:23:18Z

On 2/4/2019 11:04 AM, Borislav Petkov wrote:
> On Mon, Feb 04, 2019 at 10:57:32AM -0500, Liang, Kan wrote:
>>
>>
>> On 2/4/2019 10:44 AM, Peter Zijlstra wrote:
>>> On Mon, Feb 04, 2019 at 04:38:27PM +0100, Peter Zijlstra wrote:
>>>> +static const struct x86_cpu_desc isolation_ucodes[] = {
>>>> + INTEL_CPU_DESC(INTEL_FAM6_KABYLAKE_MOBILE, 9, 0x0000004e),
>>>> + INTEL_CPU_DESC(INTEL_FAM6_KABYLAKE_MOBILE, 10, 0x0000004e),
>>>> + INTEL_CPU_DESC(INTEL_FAM6_KABYLAKE_MOBILE, 11, 0x0000004e),
>>>> + INTEL_CPU_DESC(INTEL_FAM6_KABYLAKE_MOBILE, 12, 0x0000004e),
>>>
>>>> + INTEL_CPU_DESC(INTEL_FAM6_KABYLAKE_DESKTOP, 10, 0x0000004e),
>>>> + INTEL_CPU_DESC(INTEL_FAM6_KABYLAKE_DESKTOP, 11, 0x0000004e),
>>>> + INTEL_CPU_DESC(INTEL_FAM6_KABYLAKE_DESKTOP, 12, 0x0000004e),
>>>> + INTEL_CPU_DESC(INTEL_FAM6_KABYLAKE_DESKTOP, 13, 0x0000004e),
>>>
>>> Do we want a special stepping (0 / -1) to be able to denote 'all' ?
>>>
>>
>> Something like as below?
>> #define X86_STEPPING_ANY 0xff
>>
>> As my understanding, the microcode version for each stepping is independent
>> and irrelevant.
>
> Huh?
>
> Why are we looking at the stepping then?
>
> x86_match_cpu_with_stepping() <---
>

I mean that the microcode version number is irrelevant between stepping.
Let's use SKL server as an example.
+ INTEL_CPU_DESC(INTEL_FAM6_SKYLAKE_X, 3, 0x00000021),
+ INTEL_CPU_DESC(INTEL_FAM6_SKYLAKE_X, 4, 0x00000000),

We need the function to check the min microcode version number for each
stepping.

Thanks,
Kan