[CRIU] BUG: CRIU corrupt floating point state after checkpoint

Diyu Zhou zhoudiyupku at gmail.com
Wed Sep 25 22:55:18 MSK 2019


You are welcome. Thank you all for your help and the wonderful tool: CRIU you
have created!

On Wed, Sep 25, 2019 at 11:23 AM Cyrill Gorcunov <gorcunov at gmail.com> wrote:
>
> On Wed, Sep 25, 2019 at 09:24:11AM -0700, Diyu Zhou wrote:
> > I think in the CRIU code,  the fpu frame saving and restoring is only performed
> > for the main thread. Other threads do not do that and thus cause the corruption.
> >
> > I did a few experiment with the CRIU code. I'm confident the floating
> > point corruption occurs inside the function parasite_dump_thread_seized
> > in criu/parasite-syscall.c. Specifically, I suspect the parasite code run
> > by compel_run_in_thread(tctl, PARASITE_CMD_DUMP_THREAD) causes the floating
> > point corruption. I added a return 0; before that function and the
> > floating point corruption does not occur anymore.
>
> Great, thanks! So you've narrowed down the bug. Will take a look, thanks!


More information about the CRIU mailing list