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

Cyrill Gorcunov gorcunov at gmail.com
Wed Sep 25 21:23:23 MSK 2019


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