linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Michael Neuling <mikey@neuling.org>
Cc: vda.linux@googlemail.com,
	Nishanth Aravamudan <nacc@linux.vnet.ibm.com>,
	linux-kernel@vger.kernel.org, Steve Munroe <sjmunroe@us.ibm.com>,
	paulus@samba.org, viro@zeniv.linux.org.uk,
	akpm@linux-foundation.org, linuxppc-dev@lists.ozlabs.org,
	Ryan Arnold <ryanarn@us.ibm.com>
Subject: Re: [PATCH] powerpc: Add HWCAP2 aux entry
Date: Tue, 23 Apr 2013 10:41:42 +1000	[thread overview]
Message-ID: <1366677702.2886.9.camel@pasglop> (raw)
In-Reply-To: <32253.1366256478@ale.ozlabs.ibm.com>

On Thu, 2013-04-18 at 13:41 +1000, Michael Neuling wrote:
> akpm,
> 
> If you're happy with this, is it something you can take in your tree?

Andrew ? Or give me an ack ? :-) I'm happy to carry this, we need that
rather urgently and we have the glibc folks on board.

Cheers,
Ben.

> Mikey
> 
> Michael Neuling <mikey@neuling.org> wrote:
> > We are currently out of free bits in AT_HWCAP. With POWER8, we have
> > several hardware features that we need to advertise. 
> > 
> > Tested on POWER and x86.
> > 
> > Signed-off-by: Michael Neuling <michael@neuling.org>
> > Signed-off-by: Nishanth Aravamudan <nacc@linux.vnet.ibm.com>
> > ---
> > 
> > > Wouldn't it be safer to not emit AT_HWCAP2 unless it is defined by the arch?
> > > 
> > > That way the change would only impact powerpc.
> > 
> > Should be addressed with this version.
> > 
> > Mikey
> > 
> > diff --git a/arch/powerpc/include/asm/cputable.h b/arch/powerpc/include/asm/cputable.h
> > index fb3245e..ccadad6 100644
> > --- a/arch/powerpc/include/asm/cputable.h
> > +++ b/arch/powerpc/include/asm/cputable.h
> > @@ -52,6 +52,7 @@ struct cpu_spec {
> >  	char		*cpu_name;
> >  	unsigned long	cpu_features;		/* Kernel features */
> >  	unsigned int	cpu_user_features;	/* Userland features */
> > +	unsigned int	cpu_user_features2;	/* Userland features v2 */
> >  	unsigned int	mmu_features;		/* MMU features */
> >  
> >  	/* cache line sizes */
> > diff --git a/arch/powerpc/include/asm/elf.h b/arch/powerpc/include/asm/elf.h
> > index ac9790f..cc0655a 100644
> > --- a/arch/powerpc/include/asm/elf.h
> > +++ b/arch/powerpc/include/asm/elf.h
> > @@ -61,6 +61,7 @@ typedef elf_vrregset_t elf_fpxregset_t;
> >     instruction set this cpu supports.  This could be done in userspace,
> >     but it's not easy, and we've already done it here.  */
> >  # define ELF_HWCAP	(cur_cpu_spec->cpu_user_features)
> > +# define ELF_HWCAP2	(cur_cpu_spec->cpu_user_features2)
> >  
> >  /* This yields a string that ld.so will use to load implementation
> >     specific libraries for optimization.  This is more specific in
> > diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
> > index 3939829..1f8b5d5 100644
> > --- a/fs/binfmt_elf.c
> > +++ b/fs/binfmt_elf.c
> > @@ -240,6 +240,9 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
> >  	NEW_AUX_ENT(AT_EGID, from_kgid_munged(cred->user_ns, cred->egid));
> >   	NEW_AUX_ENT(AT_SECURE, security_bprm_secureexec(bprm));
> >  	NEW_AUX_ENT(AT_RANDOM, (elf_addr_t)(unsigned long)u_rand_bytes);
> > +#ifdef ELF_HWCAP2
> > +	NEW_AUX_ENT(AT_HWCAP2, ELF_HWCAP2);
> > +#endif
> >  	NEW_AUX_ENT(AT_EXECFN, bprm->exec);
> >  	if (k_platform) {
> >  		NEW_AUX_ENT(AT_PLATFORM,
> > diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c
> > index 9c13e02..bf2381d 100644
> > --- a/fs/binfmt_elf_fdpic.c
> > +++ b/fs/binfmt_elf_fdpic.c
> > @@ -483,7 +483,6 @@ static int create_elf_fdpic_tables(struct linux_binprm *bprm,
> >  	size_t platform_len = 0, len;
> >  	char *k_platform, *k_base_platform;
> >  	char __user *u_platform, *u_base_platform, *p;
> > -	long hwcap;
> >  	int loop;
> >  	int nr;	/* reset for each csp adjustment */
> >  
> > @@ -502,8 +501,6 @@ static int create_elf_fdpic_tables(struct linux_binprm *bprm,
> >  		return -EFAULT;
> >  #endif
> >  
> > -	hwcap = ELF_HWCAP;
> > -
> >  	/*
> >  	 * If this architecture has a platform capability string, copy it
> >  	 * to userspace.  In some cases (Sparc), this info is impossible
> > @@ -617,7 +614,10 @@ static int create_elf_fdpic_tables(struct linux_binprm *bprm,
> >  
> >  	nr = 0;
> >  	csp -= DLINFO_ITEMS * 2 * sizeof(unsigned long);
> > -	NEW_AUX_ENT(AT_HWCAP,	hwcap);
> > +	NEW_AUX_ENT(AT_HWCAP,	ELF_HWCAP);
> > +#ifdef ELF_HWCAP2
> > +	NEW_AUX_ENT(AT_HWCAP2,	ELF_HWCAP2);
> > +#endif
> >  	NEW_AUX_ENT(AT_PAGESZ,	PAGE_SIZE);
> >  	NEW_AUX_ENT(AT_CLKTCK,	CLOCKS_PER_SEC);
> >  	NEW_AUX_ENT(AT_PHDR,	exec_params->ph_addr);
> > diff --git a/include/uapi/linux/auxvec.h b/include/uapi/linux/auxvec.h
> > index 61594d5..835c065 100644
> > --- a/include/uapi/linux/auxvec.h
> > +++ b/include/uapi/linux/auxvec.h
> > @@ -28,6 +28,7 @@
> >  #define AT_BASE_PLATFORM 24	/* string identifying real platform, may
> >  				 * differ from AT_PLATFORM. */
> >  #define AT_RANDOM 25	/* address of 16 random bytes */
> > +#define AT_HWCAP2 26	/* extension of AT_HWCAP */
> >  
> >  #define AT_EXECFN  31	/* filename of program */
> >  
> > _______________________________________________
> > Linuxppc-dev mailing list
> > Linuxppc-dev@lists.ozlabs.org
> > https://lists.ozlabs.org/listinfo/linuxppc-dev
> > 
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev

  reply	other threads:[~2013-04-23  0:42 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-02 21:22 [PATCH] powerpc: Add HWCAP2 aux entry Nishanth Aravamudan
2013-04-05  7:06 ` Michael Ellerman
     [not found]   ` <27144.1366001074@ale.ozlabs.ibm.com>
2013-04-18  3:33     ` Michael Neuling
2013-04-18  3:41       ` Michael Neuling
2013-04-23  0:41         ` Benjamin Herrenschmidt [this message]
2013-04-24 19:36           ` Andrew Morton

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1366677702.2886.9.camel@pasglop \
    --to=benh@kernel.crashing.org \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mikey@neuling.org \
    --cc=nacc@linux.vnet.ibm.com \
    --cc=paulus@samba.org \
    --cc=ryanarn@us.ibm.com \
    --cc=sjmunroe@us.ibm.com \
    --cc=vda.linux@googlemail.com \
    --cc=viro@zeniv.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).