>>> +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. ok. I get it now. why 256 bytes of extra stack ? I'm sure it's not random. Thanks, C. _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers