Re: [RESEND, v2] powerpc: Export thread_struct.used_vr/used_vsr to user space
From: Simon Guo
Date: Tue Jul 05 2016 - 06:36:00 EST
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@xxxxxxxxx>
> > Reviewed-by: Laurent Dufour <ldufour@xxxxxxxxxxxxxxxxxx>
> > @@ -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