[CRIU] [Announce] CRIU 3.5 "Clay Jay" is out

Andrey Vagin avagin at virtuozzo.com
Wed Oct 18 00:29:43 MSK 2017


On Tue, Oct 17, 2017 at 12:48:26PM -0700, Andrey Vagin wrote:
> On Tue, Oct 17, 2017 at 04:05:09PM +0200, Adrian Reber wrote:
> > On Tue, Oct 17, 2017 at 04:56:37PM +0300, Pavel Emelyanov wrote:
> > > On 10/17/2017 04:36 PM, Adrian Reber wrote:
> > > > On Tue, Oct 17, 2017 at 03:44:57PM +0300, Pavel Emelyanov wrote:
> > > >>>>> >From the changelog:
> > > >>>>>    Use __glibc_reserved1 instead of __reserved.
> > > >>>>>
> > > >>>>> And it's not a macro, so we cannot check it with #ifdef :\ IIRC we've seen smth like that
> > > >>>>> before, again with uc_mcontext.
> > > >>>
> > > >>> Has this been fixed? I see that you are preparing for the next release
> > > >>> and have not seen and follow-up discussion on this.
> > > >>
> > > >> Andrey, I thought we had patches about it and they've been pushed to master :)
> > > >> Have we?
> > > > 
> > > > There is only this:
> > > > 
> > > > https://github.com/checkpoint-restore/criu/commit/f41e386d4d40e3e26b0cfdc85a812b7edb337f1d
> > > > 
> > > > Which is not arch specific. I see no fix for aarch64 on criu-dev.
> > > 
> > > Was there a patch for it in the ML?
> > 
> > Not from me, as I am not sure how to properly fix it. It probably needs
> > a feature detection macro to select the right structure name. But I was
> > not able to get access to the combination of hardware and really new
> > glibc.
> 
> Could you try out the attached patch?

Here is a correct patch
https://github.com/avagin/criu/commit/36f3ab45867338e98e43ea5f1f26764ae3946fc2

In this patch, I declare this structure in a criu header. This should be
safe, because it is a part of the kernel API.

> 
> 
> > 
> > 		Adrian

> diff --git a/compel/arch/aarch64/src/lib/include/uapi/asm/sigframe.h b/compel/arch/aarch64/src/lib/include/uapi/asm/sigframe.h
> index 22246b8..009986d 100644
> --- a/compel/arch/aarch64/src/lib/include/uapi/asm/sigframe.h
> +++ b/compel/arch/aarch64/src/lib/include/uapi/asm/sigframe.h
> @@ -41,10 +41,22 @@ struct rt_sigframe {
>  			: "r"(new_sp)						\
>  			: "sp", "x8", "memory")
>  
> +struct cr_sigcontext {
> +        __u64 fault_address;
> +        /* AArch64 registers */
> +        __u64 regs[31];
> +        __u64 sp;
> +        __u64 pc;
> +        __u64 pstate;
> +        /* 4K reserved for FP/SIMD state and future expansion */
> +        __u8 __reserved[4096] __attribute__((__aligned__(16)));
> +};
> +
>  #define RT_SIGFRAME_UC(rt_sigframe)		(&rt_sigframe->uc)
>  #define RT_SIGFRAME_REGIP(rt_sigframe)		((long unsigned int)(rt_sigframe)->uc.uc_mcontext.pc)
>  #define RT_SIGFRAME_HAS_FPU(rt_sigframe)	(1)
> -#define RT_SIGFRAME_AUX_CONTEXT(rt_sigframe)	((struct aux_context*)&(rt_sigframe)->uc.uc_mcontext.__reserved)
> +#define RT_SIGFRAME_SIGCONTEXT(rt_sigframe)	((struct cr_sigcontext *)&(rt_sigframe)->uc.uc_mcontext_
> +#define RT_SIGFRAME_AUX_CONTEXT(rt_sigframe)	((struct aux_context*)&(RT_SIGFRAME_SIGCONTEXT(rt_sigframe)->__reserved))
>  #define RT_SIGFRAME_FPU(rt_sigframe)		(&RT_SIGFRAME_AUX_CONTEXT(rt_sigframe)->fpsimd)
>  #define RT_SIGFRAME_OFFSET(rt_sigframe)		0
>  

> _______________________________________________
> CRIU mailing list
> CRIU at openvz.org
> https://lists.openvz.org/mailman/listinfo/criu



More information about the CRIU mailing list