[RFC][PATCH 2/4] checkpoint/restart: x86 support

Arnd Bergmann arnd at arndb.de
Fri Aug 8 05:09:29 PDT 2008



> diff -puN /dev/null include/asm-x86/ckpt.h
> --- /dev/null	2007-04-11 11:48:27.000000000 -0700
> +++ linux-2.6.git-dave/include/asm-x86/ckpt.h	2008-08-04 13:29:59.000000000 -0700
> @@ -0,0 +1,46 @@

> +
> +struct cr_hdr_cpu {
> +        __u64 bx;
> +        __u64 cx;
> +        __u64 dx;
> +        __u64 si;
> +        __u64 di;
> +        __u64 bp;
> +        __u64 ax;
> +        __u64 ds;
> +        __u64 es;
> +        __u64 orig_ax;
> +        __u64 ip;
> +        __u64 cs;
> +        __u64 flags;
> +        __u64 sp;
> +        __u64 ss;
> +        __u64 fs;
> +        __u64 gs;
> +
> +	__u64 debugreg0;
> +	__u64 debugreg1;
> +	__u64 debugreg2;
> +	__u64 debugreg3;
> +	__u64 debugreg6;
> +	__u64 debugreg7;
> +
> +	__u8 uses_debug;
> +
> +	__u8 used_math;
> +	__u8 has_fxsr;
> +	union thread_xstate xstate;	/* i387 */
> +};

It seems weird that you use __u64 members for the registers, but don't
include r8..r15 in the list. As a consequence, this structure does not
seem well suited for either x86-32 or x86-64.

I would suggest either using struct pt_regs by reference, or defining
it so that you can use the same structure for both 32 and 64 bit x86.

	Arnd <><


More information about the Containers mailing list