From: Oren Laadan <orenl@cs.columbia.edu>
To: Andrey Mirkin <major@openvz.org>
Cc: Louis.Rilling@kerlabs.com, containers@lists.linux-foundation.org,
Cedric Le Goater <clg@fr.ibm.com>,
linux-kernel@vger.kernel.org, Pavel Emelyanov <xemul@openvz.org>
Subject: Re: [Devel] Re: [PATCH 08/10] Introduce functions to restart a process
Date: Wed, 22 Oct 2008 11:25:03 -0400 [thread overview]
Message-ID: <48FF45CF.5000306@cs.columbia.edu> (raw)
In-Reply-To: <200810221412.14174.major@openvz.org>
Andrey Mirkin wrote:
> On Wednesday 22 October 2008 13:25 Louis Rilling wrote:
>> On Wed, Oct 22, 2008 at 12:49:54PM +0400, Andrey Mirkin wrote:
>>> On Monday 20 October 2008 13:23 Cedric Le Goater wrote:
>>>> Hello Andrey !
>>>>
>>>>> diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S
>>>>> index 109792b..a4848a3 100644
>>>>> --- a/arch/x86/kernel/entry_32.S
>>>>> +++ b/arch/x86/kernel/entry_32.S
>>>>> @@ -225,6 +225,7 @@ ENTRY(ret_from_fork)
>>>>> GET_THREAD_INFO(%ebp)
>>>>> popl %eax
>>>>> CFI_ADJUST_CFA_OFFSET -4
>>>>> +ret_from_fork_tail:
>>>>> pushl $0x0202 # Reset kernel eflags
>>>>> CFI_ADJUST_CFA_OFFSET 4
>>>>> popfl
>>>>> @@ -233,6 +234,26 @@ ENTRY(ret_from_fork)
>>>>> CFI_ENDPROC
>>>>> END(ret_from_fork)
>>>>>
>>>>> +ENTRY(i386_ret_from_resume)
>>>>> + CFI_STARTPROC
>>>>> + pushl %eax
>>>>> + CFI_ADJUST_CFA_OFFSET 4
>>>>> + call schedule_tail
>>>>> + GET_THREAD_INFO(%ebp)
>>>>> + popl %eax
>>>>> + CFI_ADJUST_CFA_OFFSET -4
>>>>> + movl (%esp), %eax
>>>>> + testl %eax, %eax
>>>>> + jz 1f
>>>>> + pushl %esp
>>>>> + call *%eax
>>>>> + addl $4, %esp
>>>>> +1:
>>>>> + addl $256, %esp
>>>>> + jmp ret_from_fork_tail
>>>>> + CFI_ENDPROC
>>>>> +END(i386_ret_from_resume)
>>>> Could you explain why you need to do this
>>>>
>>>> call *%eax
>>>>
>>>> is it related to the freezer code ?
>>> It is not related to the freezer code actually.
>>> That is needed to restart syscalls. Right now I don't have a code in my
>>> patchset which restarts a syscall, but later I plan to add it.
>>> In OpenVZ checkpointing we restart syscalls if process was caught in
>>> syscall during checkpointing.
>> Do you checkpoint uninterruptible syscalls as well? If only interruptible
>> syscalls are checkpointed, I'd say that either this syscall uses
>> ERESTARTSYS or ERESTART_RESTARTBLOCK, and then signal handling code already
>> does the trick, or this syscall does not restart itself when interrupted,
>> and well, this is life, userspace just sees -EINTR, which is allowed by the
>> syscall spec.
>> Actually this is how we checkpoint/migrate tasks in interruptible syscalls
>> in Kerrighed and this works.
>
> We checkpoint only interruptible syscalls. Some syscalls do not restart
> themself, that is why after restarting a process we restart syscall to
> complete it.
Can you please elaborate on this ? I don't recall having had issues
with that.
Thanks,
Oren.
>
> Andrey
> _______________________________________________
> Containers mailing list
> Containers@lists.linux-foundation.org
> https://lists.linux-foundation.org/mailman/listinfo/containers
next prev parent reply other threads:[~2008-10-22 15:27 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-17 23:11 [PATCH 0/10] OpenVZ kernel based checkpointing/restart (v2) Andrey Mirkin
2008-10-17 23:11 ` [PATCH 01/10] Introduce trivial sys_checkpoint and sys_restore system calls Andrey Mirkin
2008-10-17 23:11 ` [PATCH 02/10] Make checkpoint/restart functionality modular Andrey Mirkin
2008-10-17 23:11 ` [PATCH 03/10] Introduce context structure needed during checkpointing/restart Andrey Mirkin
2008-10-17 23:11 ` [PATCH 04/10] Introduce container dump function Andrey Mirkin
2008-10-17 23:11 ` [PATCH 05/10] Introduce function to dump process Andrey Mirkin
2008-10-17 23:11 ` [PATCH 06/10] Introduce functions to dump mm Andrey Mirkin
2008-10-17 23:11 ` [PATCH 07/10] Introduce function for restarting a container Andrey Mirkin
2008-10-17 23:11 ` [PATCH 08/10] Introduce functions to restart a process Andrey Mirkin
2008-10-17 23:11 ` [PATCH 09/10] Introduce functions to restore mm Andrey Mirkin
2008-10-17 23:11 ` [PATCH 10/10] Add support for multiple processes Andrey Mirkin
2008-10-27 15:58 ` Oren Laadan
2008-10-30 4:55 ` [Devel] " Andrey Mirkin
2008-10-20 9:23 ` [PATCH 08/10] Introduce functions to restart a process Cedric Le Goater
2008-10-22 8:49 ` [Devel] " Andrey Mirkin
2008-10-22 9:25 ` Louis Rilling
2008-10-22 10:06 ` Greg Kurz
2008-10-22 10:44 ` Louis Rilling
2008-10-22 12:44 ` Greg Kurz
2008-10-22 10:12 ` Andrey Mirkin
2008-10-22 10:46 ` Louis Rilling
2008-10-23 8:53 ` Andrey Mirkin
2008-10-22 15:25 ` Oren Laadan [this message]
2008-10-23 9:00 ` Andrey Mirkin
2008-10-23 13:57 ` Dave Hansen
2008-10-24 3:57 ` Andrey Mirkin
2008-10-25 21:10 ` Oren Laadan
2008-10-29 14:52 ` Andrey Mirkin
2008-10-30 15:59 ` Oren Laadan
2008-10-22 12:47 ` Cedric Le Goater
2008-10-23 9:54 ` Andrey Mirkin
2008-10-23 13:49 ` Dave Hansen
2008-10-24 4:04 ` Andrey Mirkin
2008-10-20 13:25 ` Louis Rilling
2008-10-23 10:56 ` [Devel] " Andrey Mirkin
2008-10-20 12:25 ` [PATCH 06/10] Introduce functions to dump mm Louis Rilling
2008-10-22 8:58 ` [Devel] " Andrey Mirkin
2008-10-20 17:21 ` Dave Hansen
2008-10-23 8:43 ` [Devel] " Andrey Mirkin
2008-10-23 13:51 ` Dave Hansen
2008-10-24 4:07 ` Andrey Mirkin
2008-10-20 11:02 ` [PATCH 05/10] Introduce function to dump process Louis Rilling
2008-10-24 4:15 ` [Devel] " Andrey Mirkin
2008-10-20 17:48 ` Serge E. Hallyn
2008-10-24 4:40 ` [Devel] " Andrey Mirkin
2008-10-20 17:02 ` [PATCH 03/10] Introduce context structure needed during checkpointing/restart Dave Hansen
2008-10-29 15:30 ` [Devel] " Andrey Mirkin
2008-10-20 16:51 ` [PATCH 02/10] Make checkpoint/restart functionality modular Dave Hansen
2008-10-20 16:59 ` Serge E. Hallyn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=48FF45CF.5000306@cs.columbia.edu \
--to=orenl@cs.columbia.edu \
--cc=Louis.Rilling@kerlabs.com \
--cc=clg@fr.ibm.com \
--cc=containers@lists.linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=major@openvz.org \
--cc=xemul@openvz.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox