[CRIU] BUG: CRIU corrupt floating point state after checkpoint
Dmitry Safonov
0x7f454c46 at gmail.com
Wed Sep 25 05:08:22 MSK 2019
On 9/25/19 3:02 AM, Diyu Zhou wrote:
> Unfortunately, neither option works.
> The problem still persists.
Note, that before rebuild the pie directory should be cleaned like:
`git clean -fdx criu/pie`
seems like we missing some dependency line in a Makefile to rebuild pies
on changes to compel.
> On Tue, Sep 24, 2019 at 6:54 PM Dmitry Safonov <0x7f454c46 at gmail.com> wrote:
>>
>> On 9/25/19 2:51 AM, Dmitry Safonov wrote:
>>> On 9/25/19 2:41 AM, Diyu Zhou wrote:
>>>> Sure. See:
>>>> https://github.com/vmexit/fpu-debug
>>>>
>>>> I'm very new to github, so let me know if there is any issue
>>>> accessing the link.
>>>
>>> Ok, might this quick-fast oneliner help?
>>>
>>> --->8---
>>> diff --git a/compel/src/main.c b/compel/src/main.c
>>> index 51bac099fe5e..ca3c0318093e 100644
>>> --- a/compel/src/main.c
>>> +++ b/compel/src/main.c
>>> @@ -41,7 +41,7 @@ typedef struct {
>>> static const flags_t flags = {
>>> #if defined CONFIG_X86_64
>>> .arch = "x86",
>>> - .cflags = COMPEL_CFLAGS_PIE,
>>> + .cflags = COMPEL_CFLAGS_PIE " -mfpmath=387",
>>
>> Maybe the right one would be actually -msoft-float ^^
>> That should insert calls to a library, which will break the build if it
>> actually happens.
Hmm, that's fun: -msoft-float doesn't break the build for me..
But together " -msoft-float -mno-sse" breaks. Ugh:
[..]
CC criu/pie/util-vdso.o
CC criu/pie/util.o
CC criu/pie/util-vdso-elf32.o
In file included from /usr/include/stdlib.h:1010,
from criu/pie/util-vdso-elf32.c:1:
/usr/include/bits/stdlib-float.h: In function ‘atof’:
/usr/include/bits/stdlib-float.h:26:1: error: SSE register return with
SSE disabled
26 | {
| ^
In file included from /usr/include/stdlib.h:1010,
from criu/pie/util-vdso.c:1:
/usr/include/bits/stdlib-float.h: In function ‘atof’:
/usr/include/bits/stdlib-float.h:26:1: error: SSE register return with
SSE disabled
26 | {
| ^
I presume that we don't use atof() in parasite, but the include
<stdlib.h> prevents using -mno-sse.
[it's a night-time in my time zone, so I'm AFK for some hours]
Thanks,
Dmitry
More information about the CRIU
mailing list