[Devel] Re: [RFC][PATCH] x86_86 support of checkpoint/restart (Re: Checkpoint / Restart)

Dave Hansen dave at linux.vnet.ibm.com
Mon Feb 9 10:02:38 PST 2009


On Fri, 2009-02-06 at 16:17 -0800, Nauman Rafique wrote:
> The patch sent by Masahiko assumes that all the user-space registers
> are saved on
> the kernel stack on a system call. This is not true for the majority
> of the system calls. The callee saved registers (as defined by x86_64
> ABI) - rbx, rbp, r12, r13, r14, r15 - are saved only in some special
> cases. That means that these registers would not be available to
> checkpoint code. Moreover, the restore code would have no space in
> stack to restore those registers.

According to this:

http://msdn.microsoft.com/en-us/library/6t169e9c(VS.80).aspx

Those registers all get clobbered on all function calls.  I assume that
userspace also considers them to get clobbered on system calls as
well.  

What are those special cases you are talking about?  Certain special
cases for entering the kernel where we do save those registers?

Signal handling and ptrace single stepping are two places I would
imagine we have to enter the kernel and preserve those registers.  Is
that why you were suggesting overloading signal delivery?

Thanks for pointing out the problem, though.  This one will be
interesting. :)

-- Dave

_______________________________________________
Containers mailing list
Containers at lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers




More information about the Devel mailing list