[PATCH] arch/powerpc: advertise ISA2.07, HTM, DSCR, EBB and ISEL bits in HWCAP2

Ryan Arnold ryanarn at us.ibm.com
Tue May 7 00:38:34 EST 2013


Nishanth Aravamudan <nacc at linux.vnet.ibm.com> wrote on 05/03/2013 06:40:19
PM:

> Nishanth Aravamudan <nacc at linux.vnet.ibm.com>
> 05/03/2013 06:40 PM
>
> To
>
> Benjamin Herrenschmidt <benh at kernel.crashing.org>
>
> cc
>
> Michael Neuling <michael.neuling at au1.ibm.com>, Michael R Meissner/
> Cambridge/IBM at IBMUS, Steve Munroe/Rochester/IBM at IBMUS, Peter
> Bergner/Rochester/IBM at IBMUS, Ryan Arnold/Rochester/IBM at IBMUS,
> linuxppc-dev at lists.ozlabs.org
>
> Subject
>
> Re: [PATCH] arch/powerpc: advertise ISA2.07, HTM, DSCR, EBB and ISEL
> bits in HWCAP2
>
> On 04.05.2013 [09:23:51 +1000], Benjamin Herrenschmidt wrote:
> > On Fri, 2013-05-03 at 16:19 -0700, Nishanth Aravamudan wrote:
> > > +/* in AT_HWCAP2 */
> > > +#define PPC_FEATURE2_ARCH_2_07         0x80000000
> > > +#define PPC_FEATURE2_HTM               0x40000000
> > > +#define PPC_FEATURE2_DSCR              0x20000000
> > > +#define PPC_FEATURE2_EBB               0x10000000
> > > +#define PPC_FEATURE2_ISEL              0x08000000
> >
> > Should we "adjust" (ie filter out) some of these based
> > on CONFIG_ options (such as transactional memory enabled,
> > EBB supported by the hypervisor, etc...) ?
>
> Err, yeah, that seems reasonable :) However, it seems like glibc uses
> these values rather directly so it knows what bits to check for each
> feature. Therefore, it seems like it would be better to do the
> ifdeffery/checking in the user in cputable.c, but that seems like it
> could get quite complicated.
>
> Would it be ok (I guess I'm asking Ryan & co. here) to have an #ifdef in
> the definition that may or may not mean the bit is set in the aux
> vector, but the bit, if set, would always be the same bit?

My understanding was that these bits being 'on' is an indication of what
features the hardware supports (or what the kernel emulates) and a not an
indication of whether that facility is currently enabled or not.  If the
hardware supports a particular feature but it is not enabled I'd expect
that user-space usage of that feature would cause the kernel to trap on a
facility availability exception (which is how Altivec/VMX is implemented,
being defaulted to turned off).

Otherwise there's no way I could know whether an ISA [optional] feature is
actually available on a particular machine.

And yes, the bits can't change.  My usage of hwcap.h has to coincide with
the kernel's asm/cputable.h
Ryan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/linuxppc-dev/attachments/20130506/9dcd10e7/attachment.html>


More information about the Linuxppc-dev mailing list