import criu-3.15-4.module+el8.8.0+19044+f9982fd8
This commit is contained in:
parent
118190efec
commit
1a4f262f46
@ -0,0 +1,74 @@
|
||||
From d739260c57576c636759afb312340fa3827312f6 Mon Sep 17 00:00:00 2001
|
||||
From: Adrian Reber <areber@redhat.com>
|
||||
Date: Mon, 24 Apr 2023 09:28:19 +0200
|
||||
Subject: [PATCH] compel: support XSAVE on newer Intel CPUs
|
||||
|
||||
Newer Intel CPUs (Sapphire Rapids) have a much larger xsave area than
|
||||
before. Looking at older CPUs I see 2440 bytes.
|
||||
|
||||
# cpuid -1 -l 0xd -s 0
|
||||
...
|
||||
bytes required by XSAVE/XRSTOR area = 0x00000988 (2440)
|
||||
|
||||
On newer CPUs (Sapphire Rapids) it grows to 11008 bytes.
|
||||
|
||||
# cpuid -1 -l 0xd -s 0
|
||||
...
|
||||
bytes required by XSAVE/XRSTOR area = 0x00002b00 (11008)
|
||||
|
||||
This increase the xsave area from one page to four pages.
|
||||
|
||||
Without this patch the fpu03 test fails, with this patch it works again.
|
||||
|
||||
Signed-off-by: Adrian Reber <areber@redhat.com>
|
||||
---
|
||||
.../arch/x86/src/lib/include/uapi/asm/fpu.h | 28 +++++++++++++++++--
|
||||
1 file changed, 26 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/compel/arch/x86/src/lib/include/uapi/asm/fpu.h b/compel/arch/x86/src/lib/include/uapi/asm/fpu.h
|
||||
index bd3b0cbd5c..8c83dd9ae4 100644
|
||||
--- a/compel/arch/x86/src/lib/include/uapi/asm/fpu.h
|
||||
+++ b/compel/arch/x86/src/lib/include/uapi/asm/fpu.h
|
||||
@@ -21,7 +21,28 @@
|
||||
#define XSTATE_YMM 0x4
|
||||
|
||||
#define FXSAVE_SIZE 512
|
||||
-#define XSAVE_SIZE 4096
|
||||
+/*
|
||||
+ * This used to be 4096 (one page). There is a comment below concerning
|
||||
+ * this size:
|
||||
+ * "One page should be enough for the whole xsave state ;-)"
|
||||
+ * Which is kind of funny as it is no longer enough ;-)
|
||||
+ *
|
||||
+ * Older CPUs:
|
||||
+ * # cpuid -1 -l 0xd -s 0
|
||||
+ * ...
|
||||
+ * bytes required by XSAVE/XRSTOR area = 0x00000988 (2440)
|
||||
+ *
|
||||
+ * Newer CPUs (Sapphire Rapids):
|
||||
+ * # cpuid -1 -l 0xd -s 0
|
||||
+ * ...
|
||||
+ * bytes required by XSAVE/XRSTOR area = 0x00002b00 (11008)
|
||||
+ *
|
||||
+ * So one page is no longer enough... But:
|
||||
+ *
|
||||
+ * Four pages should be enough for the whole xsave state ;-)
|
||||
+ */
|
||||
+
|
||||
+#define XSAVE_SIZE 4*4096
|
||||
|
||||
#define XSAVE_HDR_SIZE 64
|
||||
#define XSAVE_HDR_OFFSET FXSAVE_SIZE
|
||||
@@ -233,8 +254,11 @@ struct pkru_state {
|
||||
*
|
||||
*
|
||||
* One page should be enough for the whole xsave state.
|
||||
+ *
|
||||
+ * Of course it was not ;-) Now using four pages...
|
||||
+ *
|
||||
*/
|
||||
-#define EXTENDED_STATE_AREA_SIZE (4096 - sizeof(struct i387_fxsave_struct) - sizeof(struct xsave_hdr_struct))
|
||||
+#define EXTENDED_STATE_AREA_SIZE (XSAVE_SIZE - sizeof(struct i387_fxsave_struct) - sizeof(struct xsave_hdr_struct))
|
||||
|
||||
/*
|
||||
* cpu requires it to be 64 byte aligned
|
@ -7,7 +7,7 @@
|
||||
|
||||
Name: criu
|
||||
Version: 3.15
|
||||
Release: 3%{?dist}
|
||||
Release: 4%{?dist}
|
||||
Provides: crtools = %{version}-%{release}
|
||||
Obsoletes: crtools <= 1.0-2
|
||||
Summary: Tool for Checkpoint/Restore in User-space
|
||||
@ -15,6 +15,9 @@ License: GPLv2
|
||||
URL: http://criu.org/
|
||||
Source0: http://download.openvz.org/criu/criu-%{version}.tar.bz2
|
||||
Source1: criu-tmpfiles.conf
|
||||
# Fix to work on CPUs with larger XSAVE area (Sapphire Rapids)
|
||||
# backported to CRIU 3.15
|
||||
Patch0: almost-d739260c57576c636759afb312340fa3827312f6.patch
|
||||
BuildRequires: gcc
|
||||
BuildRequires: systemd
|
||||
BuildRequires: libnet-devel
|
||||
@ -72,6 +75,7 @@ their content in human-readable form.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch -P 0 -p1
|
||||
|
||||
%build
|
||||
# %{?_smp_mflags} does not work
|
||||
@ -116,6 +120,10 @@ rm -rf $RPM_BUILD_ROOT%{_libexecdir}/%{name}
|
||||
%doc %{_mandir}/man1/crit.1*
|
||||
|
||||
%changelog
|
||||
* Fri Jun 09 2023 Adrian Reber <areber@redhat.com> - 3.15.4
|
||||
- added patch to support CRIU on Sapphire Rapids
|
||||
- Resolves: #2203296
|
||||
|
||||
* Fri Aug 06 2021 Jindrich Novy <jnovy@redhat.com> - 3.15-3
|
||||
- add Requires: criu-libs = %%{version}-%%{release} in criu-devel
|
||||
- add gating tests
|
||||
|
Loading…
Reference in New Issue
Block a user