diff options
Diffstat (limited to 'recipes-containers/criu/files/0001-x86-crtools-do-not-error-when-YMM-is-missing.patch')
| -rw-r--r-- | recipes-containers/criu/files/0001-x86-crtools-do-not-error-when-YMM-is-missing.patch | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/recipes-containers/criu/files/0001-x86-crtools-do-not-error-when-YMM-is-missing.patch b/recipes-containers/criu/files/0001-x86-crtools-do-not-error-when-YMM-is-missing.patch new file mode 100644 index 00000000..795ef4cf --- /dev/null +++ b/recipes-containers/criu/files/0001-x86-crtools-do-not-error-when-YMM-is-missing.patch | |||
| @@ -0,0 +1,48 @@ | |||
| 1 | From 6072c23dbd3bbdc9fead4d90fd2ea2212f2ae0cd Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Zhang Ning <ning.a.zhang@intel.com> | ||
| 3 | Date: Tue, 16 Apr 2019 15:45:05 +0800 | ||
| 4 | Subject: [PATCH] x86/crtools: do not error when YMM is missing | ||
| 5 | |||
| 6 | for Intel Apollo Lake SOC, its cpuinfo and fpu features: | ||
| 7 | cpu: x86_family 6 x86_vendor_id GenuineIntel x86_model_id Intel(R) Celeron(R) CPU J3455 @ 1.50GHz | ||
| 8 | cpu: fpu: xfeatures_mask 0x11 xsave_size 1088 xsave_size_max 1088 xsaves_size 704 | ||
| 9 | cpu: fpu: x87 floating point registers xstate_offsets 0 / 0 xstate_sizes 160 / 160 | ||
| 10 | |||
| 11 | this CPU doesn't have AVX registers, YMM feature. | ||
| 12 | |||
| 13 | when CRIU runs on this CPU, it will report dump error: | ||
| 14 | Dumping GP/FPU registers for 4888 | ||
| 15 | Error (criu/arch/x86/crtools.c:362): x86: Corruption in XFEATURE_YMM area (expected 64 but 0 obtained) | ||
| 16 | Error (criu/cr-dump.c:1278): Can't infect (pid: 4888) with parasite | ||
| 17 | |||
| 18 | that's because x86/crtools.c will still valid YMM xsave frame, thus fail to dump. | ||
| 19 | |||
| 20 | bypass unsupported feature, to make CRIU runs this kinds of CPUs. | ||
| 21 | |||
| 22 | Cc: Chen Hu <hu1.chen@intel.com> | ||
| 23 | Signed-off-by: Zhang Ning <ning.a.zhang@intel.com> | ||
| 24 | Acked-by: Cyrill Gorcunov <gorcunov@gmail.com> | ||
| 25 | Signed-off-by: Andrei Vagin <avagin@gmail.com> | ||
| 26 | |||
| 27 | Upstream-Status: Backport [https://github.com/checkpoint-restore/criu/commit/5a52e34655636a8f00a664cf42716e1439ea2ef0] | ||
| 28 | Signed-off-by: Dengke Du <dengke.du@windriver.com> | ||
| 29 | --- | ||
| 30 | criu/arch/x86/crtools.c | 2 +- | ||
| 31 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 32 | |||
| 33 | diff --git a/criu/arch/x86/crtools.c b/criu/arch/x86/crtools.c | ||
| 34 | index ee016da..efc23e5 100644 | ||
| 35 | --- a/criu/arch/x86/crtools.c | ||
| 36 | +++ b/criu/arch/x86/crtools.c | ||
| 37 | @@ -354,7 +354,7 @@ static bool valid_xsave_frame(CoreEntry *core) | ||
| 38 | }; | ||
| 39 | |||
| 40 | for (i = 0; i < ARRAY_SIZE(features); i++) { | ||
| 41 | - if (!features[i].ptr && i > 0) | ||
| 42 | + if (!features[i].ptr) | ||
| 43 | continue; | ||
| 44 | |||
| 45 | if (features[i].expected > features[i].obtained) { | ||
| 46 | -- | ||
| 47 | 2.7.4 | ||
| 48 | |||
