[CRIU] [PATCH] x86/crtools: do not error when YMM is missing
ning.a.zhang at intel.com
ning.a.zhang at intel.com
Tue Apr 16 10:45:05 MSK 2019
From: Zhang Ning <ning.a.zhang at intel.com>
for Intel Apollo Lake SOC, its cpuinfo and fpu features:
cpu: x86_family 6 x86_vendor_id GenuineIntel x86_model_id Intel(R) Celeron(R) CPU J3455 @ 1.50GHz
cpu: fpu: xfeatures_mask 0x11 xsave_size 1088 xsave_size_max 1088 xsaves_size 704
cpu: fpu: x87 floating point registers xstate_offsets 0 / 0 xstate_sizes 160 / 160
this CPU doesn't have AVX registers, YMM feature.
when CRIU runs on this CPU, it will report dump error:
Dumping GP/FPU registers for 4888
Error (criu/arch/x86/crtools.c:362): x86: Corruption in XFEATURE_YMM area (expected 64 but 0 obtained)
Error (criu/cr-dump.c:1278): Can't infect (pid: 4888) with parasite
that's because x86/crtools.c will still valid YMM xsave frame, thus fail to dump.
bypass unsupported feature, to make CRIU runs this kinds of CPUs.
Cc: Chen Hu <hu1.chen at intel.com>
Signed-off-by: Zhang Ning <ning.a.zhang at intel.com>
---
criu/arch/x86/crtools.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/criu/arch/x86/crtools.c b/criu/arch/x86/crtools.c
index ee016da0..efc23e5f 100644
--- a/criu/arch/x86/crtools.c
+++ b/criu/arch/x86/crtools.c
@@ -354,7 +354,7 @@ static bool valid_xsave_frame(CoreEntry *core)
};
for (i = 0; i < ARRAY_SIZE(features); i++) {
- if (!features[i].ptr && i > 0)
+ if (!features[i].ptr)
continue;
if (features[i].expected > features[i].obtained) {
--
2.20.1
More information about the CRIU
mailing list