[MODERATED] Re: [PATCH 1/4] V7 more sampling fun 1

mark gross <[email protected]> Wed, 15 Apr 2020 16:58:44 -0700
Newsgroups org.kernel.lore.historical-speck
Message-ID <[email protected]>
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 <[email protected]>
> > 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 <[email protected]>
> > Reviewed-by: Tony Luck <[email protected]>
> > ---
> >  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