Re: [PATCH 1/2] perf vendor events: Add stepping in CPUID string for x86

From: Liang, Kan
Date: Tue Nov 20 2018 - 08:55:16 EST




On 11/15/2018 9:14 PM, Arnaldo Carvalho de Melo wrote:
Em Thu, Nov 15, 2018 at 04:01:46PM -0500, Liang, Kan escreveu:


On 11/15/2018 3:44 PM, Jiri Olsa wrote:
On Wed, Nov 14, 2018 at 01:24:15PM -0800, kan.liang@xxxxxxxxxxxxxxx wrote:
From: Kan Liang <kan.liang@xxxxxxxxxxxxxxx>

Perf tools cannot find the proper event list for Cascadelake server.
Because Cascadelake server and Skylake server have the same CPU model
number, which are used by perf tools to find the event list.

The stepping for Skylake server is up to 4.
The stepping for Cascadelake server starts from 5.
The stepping can be used to distinguish between them.

The stepping is added in get_cpuid_str().
The stepping information for Skylake server is updated in mapfile.csv.
A x86 specific strcmp_cpuid_cmp() function is added to handle two CPUID
formats in mapfile.csv, "vendor-family-model-stepping" and
"vendor-family-model".
- If a cpuid-regular-expression from the mapfile.csv using the new
stepping format, a cpuid-string generated on the machine must include
stepping. Otherwise, it is a mismatch.
- If the cpuid-regular-expression using the old non-stepping format,
the stepping in the cpuid-string will be ignored.

The script, which using environment string "PERF_CPUID" without stepping
on Skylake server, will be broken. If so, users must fix their scripts.

Signed-off-by: Kan Liang <kan.liang@xxxxxxxxxxxxxxx>

Reviewed-by: Jiri Olsa <jolsa@xxxxxxxxxx>


Thanks Jirka,

Hi Arnaldo,

Are you OK with the patch?
If yes, I will go ahead to cleanup the *_cpuid_str() by moving them to
header.c as promised. https://lkml.org/lkml/2018/11/15/929
The new patch will be on top of this patch.

I'm travelling, will look at it soon, can't now, battery almost deead
:-\

Hi Arnaldo,

Have you got a chance to look at the code?

Thanks,
Kan