[CRIU] Bug report: a process restored with criu crashes on SIGFPE

Andrei Vagin avagin at virtuozzo.com
Tue Jan 30 07:41:14 MSK 2018


On Mon, Jan 29, 2018 at 02:45:02PM +0200, Shlomi Matichin wrote:
> hello andrei and dimitry,
> 
> (dimitry, thats a cool email address).
> 
> so i started creating a VM for you guys to reproduce the bug, and found out
> it works great on t2.large aws instances - but crashes consistently on
> c5.large aws instances, which i think explains why you couldn't reproduce
> it...
> dimitry's test fails on the c5.large, and succeeds on the t2.large (rest of
> the tests you requested, pass on both). output attached. (i had to add sudo
> and change protobuf-python -> python protobuf).
> 
> pypy crashes after restore on my personal laptop as well, but unfortunatly
> the tests didn't run on my laptop, output exception and cpuinfo also
> attached.
> 
> i'm creating a VM for you guys on AWS with a c5.large instance type to work
> on, will send connection details later on a private email.
> i'm using the following ami, at eu-west-1 aws region
> "ami-0741d47e" #
> ubuntu/images/hvm-ssd/ubuntu-artful-17.10-amd64-server-20180102

Thank you for this VM. Today we was able to do some experiments.

* Now we understand that the mxcsr register isn't dumped.

* We suspect that this is a kernel bug. And it was probably fixed by
this patch https://patchwork.kernel.org/patch/9567939/. It was pushed
into the 4.14 kernel. I checked that Dmitry's test works correctly on this
kernel.

It can be installed from this repo:
https://launchpad.net/~canonical-kernel-team/+archive/ubuntu/unstable

* We are still not sure that our way of dumping and restoring an fpu
state works properly in all cases.

That all news for today.

Thanks,
Andrei

> 
> i'll also finish writing a script to reproduce the issue, and will send you
> the instructions in that email.
> 
> thanks you very much,
> Shlomi.
> 
> 
> 
> 
> On Sun, Jan 28, 2018 at 9:01 PM, Andrei Vagin <avagin at virtuozzo.com> wrote:
> 
> > On Sat, Jan 27, 2018 at 12:28:31PM -0800, Andrei Vagin wrote:
> > > On Fri, Jan 26, 2018 at 02:02:35PM +0200, Shlomi Matichin wrote:
> > > >    0x00007fc88f5c7788: jmpq   0x7fc88f5c7706
> > > >    0x00007fc88f5c778d: nopl   (%rax)
> > > >    0x00007fc88f5c7790: movl   $0x0,0x4(%r13)
> > > >    0x00007fc88f5c7798: jmpq   0x7fc88f5c76fc
> > > >    0x00007fc88f5c779d: nopl   (%rax)
> > > >    0x00007fc88f5c77a0: movl   $0x0,0x0(%r13)
> > > >    0x00007fc88f5c77a8: jmpq   0x7fc88f5c76ee
> > > >    0x00007fc88f5c77ad: pxor   %xmm3,%xmm3
> > > > => 0x00007fc88f5c77b1: cvtsd2ss %xmm0,%xmm3
> > >
> > > Looks like we incorrectly save fpu state...
> > >
> > > I tried to reproduce this issue on my laptop, in digital ocean with the
> > same
> > > ubuntu version, and I even created an aws account. But in all my
> > attempts,
> > > everything works as expected.
> > >
> > > Could you write a detailed instruction how you reproduce this bug on a
> > > ec2 instance? What image do you use? Maybe you can create there an
> > > instance and give us access to it?
> > >
> > > Could you show registers before and after dump/restore?
> > >
> > > For that you need to attach to a target process by gdb and call " info
> > > all-registers", then you need to detach from a process, do dump/restore
> > > and attach again to get registers. Pls, don't forget to check that the
> > > issue is reproduced in this case.
> >
> > We have an idea that mxcsr isn't dumped properlly in your case. And Dima
> > wrote a test to check this. Could you try to run it?
> >
> > 1. git clone https://github.com/avagin/criu -b fpu2
> > 2. cd criu
> > 3. apt-get update && apt-get install -y \
> >                 build-essential \
> >                 protobuf-c-compiler \
> >                 libprotobuf-c0-dev \
> >                 libprotobuf-dev \
> >                 bsdmainutils \
> >                 protobuf-compiler \
> >                 python-minimal \
> >                 libaio-dev \
> >                 libcap-dev \
> >                 iptables \
> >                 libnl-3-dev \
> >                 libnl-route-3-dev \
> >                 libselinux-dev \
> >                 pkg-config \
> >                 git-core \
> >                 libnet-dev \
> >                 gcc \
> >                 python-yaml protobuf-python
> > 4. make
> > 5. make -C test/zdtm/lib
> > 6. python test/zdtm.py run -t zdtm/static/fpu02
> >
> > In addition, you can try to run other fpu tests:
> > 7. python test/zdtm.py run -t zdtm/static/sse00 -t zdtm/static/sse20  -t
> > zdtm/static/mmx00 -t zdtm/static/fpu00
> >
> > Thanks,
> > Andrei
> >
> > >
> > > Thanks,
> > > Andrei
> >

> sudo python test/zdtm.py run -t zdtm/static/fpu02
> Warn  (criu/kerndat.c:804): Can't load /run/criu.kdat
> === Run 1/1 ================ zdtm/static/fpu02
> 
> ========================== Run zdtm/static/fpu02 in h ==========================
>  DEP       fpu02.d
>  CC        fpu02.o
>  LINK      fpu02
> Start test
> ./fpu02 --pidfile=fpu02.pid --outfile=fpu02.out
> Run criu dump
> Run criu restore
> Send the 15 signal to  57
> Wait for zdtm/static/fpu02(57) to die for 0.100000
> Removing dump/zdtm/static/fpu02/57
> ========================= Test zdtm/static/fpu02 PASS ==========================
> 
> ========================= Run zdtm/static/fpu02 in ns ==========================
> Construct root for zdtm/static/fpu02
> Start test
> ./fpu02 --pidfile=fpu02.pid --outfile=fpu02.out
> Run criu dump
> Run criu restore
> Send the 15 signal to  121
> Wait for zdtm/static/fpu02(121) to die for 0.100000
> Removing dump/zdtm/static/fpu02/100
> ========================= Test zdtm/static/fpu02 PASS ==========================
> 
> ========================= Run zdtm/static/fpu02 in uns =========================
> Start test
> ./fpu02 --pidfile=fpu02.pid --outfile=fpu02.out
> Run criu dump
> Run criu restore
> Send the 15 signal to  204
> Wait for zdtm/static/fpu02(204) to die for 0.100000
> Removing dump/zdtm/static/fpu02/182
> ========================= Test zdtm/static/fpu02 PASS ==========================
> 
> 
> #######################################################################3
> ########################################################################
> ########################################################################
> sudo python test/zdtm.py run -t zdtm/static/sse00 -t zdtm/static/sse20  -t zdtm/static/mmx00 -t zdtm/static/fpu00
> === Run 1/4 ====------------ zdtm/static/sse00
> 
> ========================== Run zdtm/static/sse00 in h ==========================
>  DEP       sse00.d
>  CC        sse00.o
>  LINK      sse00
> Start test
> ./sse00 --pidfile=sse00.pid --outfile=sse00.out
> Run criu dump
> Run criu restore
> Send the 15 signal to  57
> Wait for zdtm/static/sse00(57) to die for 0.100000
> Removing dump/zdtm/static/sse00/57
> ========================= Test zdtm/static/sse00 PASS ==========================
> 
> ========================= Run zdtm/static/sse00 in ns ==========================
> Start test
> ./sse00 --pidfile=sse00.pid --outfile=sse00.out
> Run criu dump
> Run criu restore
> Send the 15 signal to  121
> Wait for zdtm/static/sse00(121) to die for 0.100000
> Removing dump/zdtm/static/sse00/100
> ========================= Test zdtm/static/sse00 PASS ==========================
> 
> ========================= Run zdtm/static/sse00 in uns =========================
> Start test
> ./sse00 --pidfile=sse00.pid --outfile=sse00.out
> Run criu dump
> Run criu restore
> Send the 15 signal to  204
> Wait for zdtm/static/sse00(204) to die for 0.100000
> Removing dump/zdtm/static/sse00/182
> ========================= Test zdtm/static/sse00 PASS ==========================
> === Run 2/4 ========-------- zdtm/static/sse20
> 
> ========================== Run zdtm/static/sse20 in h ==========================
>  DEP       sse20.d
>  CC        sse20.o
>  LINK      sse20
> Start test
> ./sse20 --pidfile=sse20.pid --outfile=sse20.out
> Run criu dump
> Run criu restore
> Send the 15 signal to  57
> Wait for zdtm/static/sse20(57) to die for 0.100000
> Removing dump/zdtm/static/sse20/57
> ========================= Test zdtm/static/sse20 PASS ==========================
> 
> ========================= Run zdtm/static/sse20 in ns ==========================
> Start test
> ./sse20 --pidfile=sse20.pid --outfile=sse20.out
> Run criu dump
> Run criu restore
> Send the 15 signal to  121
> Wait for zdtm/static/sse20(121) to die for 0.100000
> Removing dump/zdtm/static/sse20/100
> ========================= Test zdtm/static/sse20 PASS ==========================
> 
> ========================= Run zdtm/static/sse20 in uns =========================
> Start test
> ./sse20 --pidfile=sse20.pid --outfile=sse20.out
> Run criu dump
> Run criu restore
> Send the 15 signal to  204
> Wait for zdtm/static/sse20(204) to die for 0.100000
> Removing dump/zdtm/static/sse20/182
> ========================= Test zdtm/static/sse20 PASS ==========================
> === Run 3/4 ============---- zdtm/static/mmx00
> 
> ========================== Run zdtm/static/mmx00 in h ==========================
>  DEP       mmx00.d
>  CC        mmx00.o
>  LINK      mmx00
> Start test
> ./mmx00 --pidfile=mmx00.pid --outfile=mmx00.out
> Run criu dump
> Run criu restore
> Send the 15 signal to  57
> Wait for zdtm/static/mmx00(57) to die for 0.100000
> Removing dump/zdtm/static/mmx00/57
> ========================= Test zdtm/static/mmx00 PASS ==========================
> 
> ========================= Run zdtm/static/mmx00 in ns ==========================
> Start test
> ./mmx00 --pidfile=mmx00.pid --outfile=mmx00.out
> Run criu dump
> Run criu restore
> Send the 15 signal to  121
> Wait for zdtm/static/mmx00(121) to die for 0.100000
> Removing dump/zdtm/static/mmx00/100
> ========================= Test zdtm/static/mmx00 PASS ==========================
> 
> ========================= Run zdtm/static/mmx00 in uns =========================
> Start test
> ./mmx00 --pidfile=mmx00.pid --outfile=mmx00.out
> Run criu dump
> Run criu restore
> Send the 15 signal to  204
> Wait for zdtm/static/mmx00(204) to die for 0.100000
> Removing dump/zdtm/static/mmx00/182
> ========================= Test zdtm/static/mmx00 PASS ==========================
> === Run 4/4 ================ zdtm/static/fpu00
> 
> ========================== Run zdtm/static/fpu00 in h ==========================
>  DEP       fpu00.d
>  CC        fpu00.o
>  LINK      fpu00
> Start test
> ./fpu00 --pidfile=fpu00.pid --outfile=fpu00.out
> Run criu dump
> Run criu restore
> Send the 15 signal to  57
> Wait for zdtm/static/fpu00(57) to die for 0.100000
> Removing dump/zdtm/static/fpu00/57
> ========================= Test zdtm/static/fpu00 PASS ==========================
> 
> ========================= Run zdtm/static/fpu00 in ns ==========================
> Start test
> ./fpu00 --pidfile=fpu00.pid --outfile=fpu00.out
> Run criu dump
> Run criu restore
> Send the 15 signal to  121
> Wait for zdtm/static/fpu00(121) to die for 0.100000
> Removing dump/zdtm/static/fpu00/100
> ========================= Test zdtm/static/fpu00 PASS ==========================
> 
> ========================= Run zdtm/static/fpu00 in uns =========================
> Start test
> ./fpu00 --pidfile=fpu00.pid --outfile=fpu00.out
> Run criu dump
> Run criu restore
> Send the 15 signal to  204
> Wait for zdtm/static/fpu00(204) to die for 0.100000
> Removing dump/zdtm/static/fpu00/182
> ========================= Test zdtm/static/fpu00 PASS ==========================

> sudo python test/zdtm.py run -t zdtm/static/fpu02
> Warn  (criu/kerndat.c:804): Can't load /run/criu.kdat
> === Run 1/1 ================ zdtm/static/fpu02
> 
> ========================== Run zdtm/static/fpu02 in h ==========================
>  DEP       fpu02.d
>  CC        fpu02.o
>  LINK      fpu02
> Start test
> ./fpu02 --pidfile=fpu02.pid --outfile=fpu02.out
> Run criu dump
> Run criu restore
> Send the 15 signal to  57
> Wait for zdtm/static/fpu02(57) to die for 0.100000
> ################# Test zdtm/static/fpu02 FAIL at result check ##################
> Test output: ================================
> 12:27:31.004:    57: before: 1f80, after: 0
> 12:27:31.004:    57: FAIL: fpu02.c:81:  (errno = 11 (Resource temporarily unavailable))
> 
>  <<< ================================
> ##################################### FAIL #####################################
> 
> ##########################################################################
> ##########################################################################
> ##########################################################################
> sudo python test/zdtm.py run -t zdtm/static/sse00 -t zdtm/static/sse20  -t zdtm/static/mmx00 -t zdtm/static/fpu00
> === Run 1/4 ====------------ zdtm/static/sse00
> 
> ========================== Run zdtm/static/sse00 in h ==========================
>  DEP       sse00.d
>  CC        sse00.o
>  LINK      sse00
> Start test
> ./sse00 --pidfile=sse00.pid --outfile=sse00.out
> Run criu dump
> Run criu restore
> Send the 15 signal to  57
> Wait for zdtm/static/sse00(57) to die for 0.100000
> Removing dump/zdtm/static/sse00/57
> ========================= Test zdtm/static/sse00 PASS ==========================
> 
> ========================= Run zdtm/static/sse00 in ns ==========================
> Construct root for zdtm/static/sse00
> Start test
> ./sse00 --pidfile=sse00.pid --outfile=sse00.out
> Run criu dump
> Run criu restore
> Send the 15 signal to  121
> Wait for zdtm/static/sse00(121) to die for 0.100000
> Removing dump/zdtm/static/sse00/100
> ========================= Test zdtm/static/sse00 PASS ==========================
> 
> ========================= Run zdtm/static/sse00 in uns =========================
> Start test
> ./sse00 --pidfile=sse00.pid --outfile=sse00.out
> Run criu dump
> Run criu restore
> Send the 15 signal to  204
> Wait for zdtm/static/sse00(204) to die for 0.100000
> Removing dump/zdtm/static/sse00/182
> ========================= Test zdtm/static/sse00 PASS ==========================
> === Run 2/4 ========-------- zdtm/static/sse20
> 
> ========================== Run zdtm/static/sse20 in h ==========================
>  DEP       sse20.d
>  CC        sse20.o
>  LINK      sse20
> Start test
> ./sse20 --pidfile=sse20.pid --outfile=sse20.out
> Run criu dump
> Run criu restore
> Send the 15 signal to  57
> Wait for zdtm/static/sse20(57) to die for 0.100000
> Removing dump/zdtm/static/sse20/57
> ========================= Test zdtm/static/sse20 PASS ==========================
> 
> ========================= Run zdtm/static/sse20 in ns ==========================
> Start test
> ./sse20 --pidfile=sse20.pid --outfile=sse20.out
> Run criu dump
> Run criu restore
> Send the 15 signal to  121
> Wait for zdtm/static/sse20(121) to die for 0.100000
> Removing dump/zdtm/static/sse20/100
> ========================= Test zdtm/static/sse20 PASS ==========================
> 
> ========================= Run zdtm/static/sse20 in uns =========================
> Start test
> ./sse20 --pidfile=sse20.pid --outfile=sse20.out
> Run criu dump
> Run criu restore
> Send the 15 signal to  204
> Wait for zdtm/static/sse20(204) to die for 0.100000
> Removing dump/zdtm/static/sse20/182
> ========================= Test zdtm/static/sse20 PASS ==========================
> === Run 3/4 ============---- zdtm/static/mmx00
> 
> ========================== Run zdtm/static/mmx00 in h ==========================
>  DEP       mmx00.d
>  CC        mmx00.o
>  LINK      mmx00
> Start test
> ./mmx00 --pidfile=mmx00.pid --outfile=mmx00.out
> Run criu dump
> Run criu restore
> Send the 15 signal to  57
> Wait for zdtm/static/mmx00(57) to die for 0.100000
> Removing dump/zdtm/static/mmx00/57
> ========================= Test zdtm/static/mmx00 PASS ==========================
> 
> ========================= Run zdtm/static/mmx00 in ns ==========================
> Start test
> ./mmx00 --pidfile=mmx00.pid --outfile=mmx00.out
> Run criu dump
> Run criu restore
> Send the 15 signal to  121
> Wait for zdtm/static/mmx00(121) to die for 0.100000
> Removing dump/zdtm/static/mmx00/100
> ========================= Test zdtm/static/mmx00 PASS ==========================
> 
> ========================= Run zdtm/static/mmx00 in uns =========================
> Start test
> ./mmx00 --pidfile=mmx00.pid --outfile=mmx00.out
> Run criu dump
> Run criu restore
> Send the 15 signal to  204
> Wait for zdtm/static/mmx00(204) to die for 0.100000
> Removing dump/zdtm/static/mmx00/182
> ========================= Test zdtm/static/mmx00 PASS ==========================
> === Run 4/4 ================ zdtm/static/fpu00
> 
> ========================== Run zdtm/static/fpu00 in h ==========================
>  DEP       fpu00.d
>  CC        fpu00.o
>  LINK      fpu00
> Start test
> ./fpu00 --pidfile=fpu00.pid --outfile=fpu00.out
> Run criu dump
> Run criu restore
> Send the 15 signal to  57
> Wait for zdtm/static/fpu00(57) to die for 0.100000
> Removing dump/zdtm/static/fpu00/57
> ========================= Test zdtm/static/fpu00 PASS ==========================
> 
> ========================= Run zdtm/static/fpu00 in ns ==========================
> Start test
> ./fpu00 --pidfile=fpu00.pid --outfile=fpu00.out
> Run criu dump
> Run criu restore
> Send the 15 signal to  121
> Wait for zdtm/static/fpu00(121) to die for 0.100000
> Removing dump/zdtm/static/fpu00/100
> ========================= Test zdtm/static/fpu00 PASS ==========================
> 
> ========================= Run zdtm/static/fpu00 in uns =========================
> Start test
> ./fpu00 --pidfile=fpu00.pid --outfile=fpu00.out
> Run criu dump
> Run criu restore
> Send the 15 signal to  204
> Wait for zdtm/static/fpu00(204) to die for 0.100000
> Removing dump/zdtm/static/fpu00/182
> ========================= Test zdtm/static/fpu00 PASS ==========================

> cat /proc/cpuinfo
> processor: 0
> vendor_id: GenuineIntel
> cpu family: 6
> model: 85
> model name: Intel(R) Xeon(R) Platinum 8124M CPU @ 3.00GHz
> stepping: 3
> microcode: 0x100013e
> cpu MHz: 3000.000
> cache size: 25344 KB
> physical id: 0
> siblings: 2
> core id: 0
> cpu cores: 1
> apicid: 0
> initial apicid: 0
> fpu: yes
> fpu_exception: yes
> cpuid level: 13
> wp: yes
> flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves ida arat pku ospke
> bugs:
> bogomips: 6000.00
> clflush size: 64
> cache_alignment: 64
> address sizes: 46 bits physical, 48 bits virtual
> power management:
> 
> processor: 1
> vendor_id: GenuineIntel
> cpu family: 6
> model: 85
> model name: Intel(R) Xeon(R) Platinum 8124M CPU @ 3.00GHz
> stepping: 3
> microcode: 0x100013e
> cpu MHz: 3000.000
> cache size: 25344 KB
> physical id: 0
> siblings: 2
> core id: 0
> cpu cores: 1
> apicid: 1
> initial apicid: 1
> fpu: yes
> fpu_exception: yes
> cpuid level: 13
> wp: yes
> flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx avx512f avx512dq rdseed adx smap clflushopt clwb avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves ida arat pku ospke
> bugs:
> bogomips: 6000.00
> clflush size: 64
> cache_alignment: 64
> address sizes: 46 bits physical, 48 bits virtual
> power management:
> 

> processor	: 0
> vendor_id	: GenuineIntel
> cpu family	: 6
> model		: 78
> model name	: Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz
> stepping	: 3
> microcode	: 0xba
> cpu MHz		: 2600.000
> cache size	: 4096 KB
> physical id	: 0
> siblings	: 4
> core id		: 0
> cpu cores	: 2
> apicid		: 0
> initial apicid	: 0
> fpu		: yes
> fpu_exception	: yes
> cpuid level	: 22
> wp		: yes
> flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp
> bugs		: cpu_meltdown spectre_v1 spectre_v2
> bogomips	: 5184.00
> clflush size	: 64
> cache_alignment	: 64
> address sizes	: 39 bits physical, 48 bits virtual
> power management:
> 
> processor	: 1
> vendor_id	: GenuineIntel
> cpu family	: 6
> model		: 78
> model name	: Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz
> stepping	: 3
> microcode	: 0xba
> cpu MHz		: 2600.000
> cache size	: 4096 KB
> physical id	: 0
> siblings	: 4
> core id		: 1
> cpu cores	: 2
> apicid		: 2
> initial apicid	: 2
> fpu		: yes
> fpu_exception	: yes
> cpuid level	: 22
> wp		: yes
> flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp
> bugs		: cpu_meltdown spectre_v1 spectre_v2
> bogomips	: 5184.00
> clflush size	: 64
> cache_alignment	: 64
> address sizes	: 39 bits physical, 48 bits virtual
> power management:
> 
> processor	: 2
> vendor_id	: GenuineIntel
> cpu family	: 6
> model		: 78
> model name	: Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz
> stepping	: 3
> microcode	: 0xba
> cpu MHz		: 2600.000
> cache size	: 4096 KB
> physical id	: 0
> siblings	: 4
> core id		: 0
> cpu cores	: 2
> apicid		: 1
> initial apicid	: 1
> fpu		: yes
> fpu_exception	: yes
> cpuid level	: 22
> wp		: yes
> flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp
> bugs		: cpu_meltdown spectre_v1 spectre_v2
> bogomips	: 5184.00
> clflush size	: 64
> cache_alignment	: 64
> address sizes	: 39 bits physical, 48 bits virtual
> power management:
> 
> processor	: 3
> vendor_id	: GenuineIntel
> cpu family	: 6
> model		: 78
> model name	: Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz
> stepping	: 3
> microcode	: 0xba
> cpu MHz		: 2600.000
> cache size	: 4096 KB
> physical id	: 0
> siblings	: 4
> core id		: 1
> cpu cores	: 2
> apicid		: 3
> initial apicid	: 3
> fpu		: yes
> fpu_exception	: yes
> cpuid level	: 22
> wp		: yes
> flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp
> bugs		: cpu_meltdown spectre_v1 spectre_v2
> bogomips	: 5184.00
> clflush size	: 64
> cache_alignment	: 64
> address sizes	: 39 bits physical, 48 bits virtual
> power management:
> 

> sudo python test/zdtm.py run -t zdtm/static/fpu02
> The kernel is tainted: '12289\n'
> Traceback (most recent call last):
>   File "test/zdtm.py", line 2164, in <module>
>     opts['action'](opts)
>   File "test/zdtm.py", line 1836, in run_tests
>     launcher = Launcher(opts, len(torun))
>   File "test/zdtm.py", line 1544, in __init__
>     raise Exception("The kernel is tainted: %r" % self.__taint)
> Exception: The kernel is tainted: '12289\n'
> shlomi at shlompad:/tmp/criu/criu$ sudo python test/zdtm.py run -t zdtm/static/sse00 -t zdtm/static/sse20  -t zdtm/static/mmx00 -t zdtm/static/fpu00
> The kernel is tainted: '12289\n'
> Traceback (most recent call last):
>   File "test/zdtm.py", line 2164, in <module>
>     opts['action'](opts)
>   File "test/zdtm.py", line 1836, in run_tests
>     launcher = Launcher(opts, len(torun))
>   File "test/zdtm.py", line 1544, in __init__
>     raise Exception("The kernel is tainted: %r" % self.__taint)
> Exception: The kernel is tainted: '12289\n'



More information about the CRIU mailing list