mirror of
git://git.yoctoproject.org/meta-virtualization.git
synced 2025-07-19 20:59:41 +02:00
criu: fix dump error on Intel Apollo Lake SOC
Fix dump error when executing: criu dump -D checkpoint -t pid
-------------------------------------------------
Error (criu/arch/x86/crtools.c:362): x86: Corruption in XFEATURE_YMM area (expected 64 but 0 obtained)
Error (criu/cr-dump.c:1280): Can't infect (pid: 2874) with parasite
Error (criu/cr-dump.c:1732): Dumping FAILED.
-------------------------------------------------
Backport upstream patch on criu-dev branch to fix this:
[5a52e34655
]
Signed-off-by: Dengke Du <dengke.du@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
This commit is contained in:
parent
a7e7310b68
commit
1f26faec8a
|
@ -21,6 +21,7 @@ SRC_URI = "git://github.com/xemul/criu.git;protocol=git \
|
||||||
file://0002-criu-Skip-documentation-install.patch \
|
file://0002-criu-Skip-documentation-install.patch \
|
||||||
file://0001-criu-Change-libraries-install-directory.patch \
|
file://0001-criu-Change-libraries-install-directory.patch \
|
||||||
file://lib-Makefile-overwrite-install-lib-to-allow-multiarc.patch \
|
file://lib-Makefile-overwrite-install-lib-to-allow-multiarc.patch \
|
||||||
|
file://0001-x86-crtools-do-not-error-when-YMM-is-missing.patch \
|
||||||
"
|
"
|
||||||
|
|
||||||
COMPATIBLE_HOST = "(x86_64|arm|aarch64).*-linux"
|
COMPATIBLE_HOST = "(x86_64|arm|aarch64).*-linux"
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
From 6072c23dbd3bbdc9fead4d90fd2ea2212f2ae0cd Mon Sep 17 00:00:00 2001
|
||||||
|
From: Zhang Ning <ning.a.zhang@intel.com>
|
||||||
|
Date: Tue, 16 Apr 2019 15:45:05 +0800
|
||||||
|
Subject: [PATCH] x86/crtools: do not error when YMM is missing
|
||||||
|
|
||||||
|
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@intel.com>
|
||||||
|
Signed-off-by: Zhang Ning <ning.a.zhang@intel.com>
|
||||||
|
Acked-by: Cyrill Gorcunov <gorcunov@gmail.com>
|
||||||
|
Signed-off-by: Andrei Vagin <avagin@gmail.com>
|
||||||
|
|
||||||
|
Upstream-Status: Backport [https://github.com/checkpoint-restore/criu/commit/5a52e34655636a8f00a664cf42716e1439ea2ef0]
|
||||||
|
Signed-off-by: Dengke Du <dengke.du@windriver.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 ee016da..efc23e5 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.7.4
|
||||||
|
|
Loading…
Reference in New Issue
Block a user