From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.linutronix.de (193.142.43.55:993) by crypto-ml.lab.linutronix.de with IMAP4-SSL for ; 15 Apr 2020 23:58:51 -0000 Received: from mga06.intel.com ([134.134.136.31]) by Galois.linutronix.de with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1jOrvd-0003Tp-C7 for speck@linutronix.de; Thu, 16 Apr 2020 01:58:51 +0200 Received: from localhost (mtg-dev.jf.intel.com [10.54.74.10]) by smtp.ostc.intel.com (Postfix) with ESMTP id E59286363 for ; Wed, 15 Apr 2020 23:58:43 +0000 (UTC) Date: Wed, 15 Apr 2020 16:58:44 -0700 From: mark gross Subject: [MODERATED] Re: [PATCH 1/4] V7 more sampling fun 1 Message-ID: <20200415235844.GD100223@mtg-dev.jf.intel.com> Reply-To: mgross@linux.intel.com References: <20200415175145.GI31362@zn.tnic> MIME-Version: 1.0 In-Reply-To: <20200415175145.GI31362@zn.tnic> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable To: speck@linutronix.de List-ID: On Wed, Apr 15, 2020 at 07:51:45PM +0200, speck for Borislav Petkov wrote: > On Mon, Mar 16, 2020 at 05:56:27PM -0700, speck for mark gross wrote: > > From: mark gross > > Subject: [PATCH 1/4] x86/cpu: Add stepping field to x86_cpu_id structure > >=20 > > Intel uses the same family/model for several CPUs. Sometimes the > > stepping must be checked to tell them apart. > >=20 > > On X86 there can be at most 16 steppings, add steppings bitmask to > > x86_cpu_id and X86_MATCH_VENDOR_FAMILY_MODEL_STEPPING_FEATURE macro and > > support for matching against family/model/stepping. > >=20 > > Signed-off-by: Mark Gross > > Reviewed-by: Tony Luck > > --- > > arch/x86/include/asm/cpu_device_id.h | 27 ++++++++++++++++++++++++--- > > arch/x86/kernel/cpu/match.c | 7 ++++++- > > include/linux/mod_devicetable.h | 2 ++ > > 3 files changed, 32 insertions(+), 4 deletions(-) > >=20 > > diff --git a/arch/x86/include/asm/cpu_device_id.h b/arch/x86/include/asm/= cpu_device_id.h > > index cf3d621c6892..4f0df2e46c95 100644 > > --- a/arch/x86/include/asm/cpu_device_id.h > > +++ b/arch/x86/include/asm/cpu_device_id.h > > @@ -20,12 +20,14 @@ > > #define X86_CENTAUR_FAM6_C7_D 0xd > > #define X86_CENTAUR_FAM6_NANO 0xf > > =20 > > +#define X86_STEPPINGS(mins, maxs) GENMASK(maxs, mins) > > /** > > - * X86_MATCH_VENDOR_FAM_MODEL_FEATURE - Base macro for CPU matching > > + * X86_MATCH_VENDOR_FAM_MODEL_STEPPING_FEATURE - Base macro for CPU matc= hing > ^^^^^^^^ >=20 > If the steppings argument is a bitmask of steppings, then the name > should have "STEPPINGS" too to avoid confusion. done > > * @_vendor: The vendor name, e.g. INTEL, AMD, HYGON, ..., ANY > > * The name is expanded to X86_VENDOR_@_vendor > > * @_family: The family number or X86_FAMILY_ANY > > * @_model: The model number, model constant or X86_MODEL_ANY > > + * @_steppings: Bitmask for steppings, stepping constant or X86_STEPPING= _ANY > > * @_feature: A X86_FEATURE bit or X86_FEATURE_ANY > > * @_data: Driver specific data or NULL. The internal storage > > * format is unsigned long. The supplied value, pointer > > @@ -37,15 +39,34 @@ > > * into another macro at the usage site for good reasons, then please > > * start this local macro with X86_MATCH to allow easy grepping. > > */ > > -#define X86_MATCH_VENDOR_FAM_MODEL_FEATURE(_vendor, _family, _model, \ > > - _feature, _data) { \ > > +#define X86_MATCH_VENDOR_FAM_MODEL_STEPPING_FEATURE(_vendor, _family, _m= odel, \ > > + _steppings, _feature, _data) { \ > > .vendor =3D X86_VENDOR_##_vendor, \ > > .family =3D _family, \ > > .model =3D _model, \ > > + .steppings =3D _steppings, \ > > .feature =3D _feature, \ > > .driver_data =3D (unsigned long) _data \ > > } > > =20 > > +/** > > + * X86_MATCH_VENDOR_FAM_MODEL_FEATURE - Base macro for CPU matching >=20 > That isn't the base macro anymore. done --mark > --=20 > Regards/Gruss, > Boris. >=20 > SUSE Software Solutions Germany GmbH, GF: Felix Imend=C3=B6rffer, HRB 36809= , AG N=C3=BCrnberg > --=20