[RESEND, v2] powerpc: Export thread_struct.used_vr/used_vsr to user space

Simon Guo wei.guo.simon at gmail.com
Tue Jul 5 07:08:41 AEST 2016


Hi Michael,
On Tue, Jul 05, 2016 at 03:40:40PM +1000, Michael Ellerman wrote:
> On Wed, 2016-06-04 at 07:00:12 UTC, Simon Guo wrote:
> > These 2 fields track whether user process has used Altivec/VSX
> > registers or not. They are used by kernel to setup signal frame
> > on user stack correctly regarding vector part.
> > 
> > CRIU(Checkpoint and Restore In User space) builds signal frame
> > for restored process. It will need this export information to
> > setup signal frame correctly. And CRIU will need to restore these
> > 2 fields for the restored process.
> > 
> > Signed-off-by: Simon Guo <wei.guo.simon at gmail.com>
> > Reviewed-by: Laurent Dufour <ldufour at linux.vnet.ibm.com>
> > @@ -176,6 +176,17 @@ struct pt_regs {
> >  #define PTRACE_GETREGS64	  0x16
> >  #define PTRACE_SETREGS64	  0x17
> >  
> > +/*
> > + * Get or set some register used bit.
> > + * The flags will be saved in a 32 bit data.
> > + * Currently it is only used for VR/VSR usage.
> > + */
> > +#define PTRACE_GET_REGS_USAGE	  0x1e
> > +#define PTRACE_SET_REGS_USAGE	  0x1f
> > +
> > +#define PTRACE_REGS_USAGE_VR_BIT  0x00000001
> > +#define PTRACE_REGS_USAGE_VSR_BIT 0x00000002
> 
> 
> It looks like you just made up this new ptrace ABI ?
> 
> Or is it used on other arches ? (no AFAICS)
> 
> How do other arches handle this ?
> 
> I'm a bit wary of adding new ptrace ABIs.
> 
> If we do want to do this, I'd at least think the mask should be u64, to give us
> more capacity to add new registers.
> 
> cheers

It is only used on PowerPc currently. I had better rename
it to:
#define PPC_PTRACE_GET_REGS_USAGE        0x96
#define PPC_PTRACE_SET_REGS_USAGE        0x97

I will change the mask into u64. 

Thanks,
- Simon



More information about the Linuxppc-dev mailing list