From 35eb3e629b3acce13813b19ca4b30e62e1fa2fd7 Mon Sep 17 00:00:00 2001 From: eabdullin Date: Thu, 4 Apr 2024 13:34:56 +0000 Subject: [PATCH] import CS criu-3.19-1.el9 --- .criu.metadata | 2 +- .gitignore | 2 +- ...260c57576c636759afb312340fa3827312f6.patch | 74 ------------------- SOURCES/pycriu-setup-py | 30 -------- SPECS/criu.spec | 25 +++---- 5 files changed, 14 insertions(+), 119 deletions(-) delete mode 100644 SOURCES/d739260c57576c636759afb312340fa3827312f6.patch delete mode 100644 SOURCES/pycriu-setup-py diff --git a/.criu.metadata b/.criu.metadata index 3058556..b040aeb 100644 --- a/.criu.metadata +++ b/.criu.metadata @@ -1 +1 @@ -f359d9a3af080f5d3293c847af5ab10f58639d85 SOURCES/criu-3.18.tar.gz +61ffc54bf7e345c9df2d20d599da47f0e91e70e2 SOURCES/criu-3.19.tar.gz diff --git a/.gitignore b/.gitignore index 9ac16f6..8f3a41f 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/criu-3.18.tar.gz +SOURCES/criu-3.19.tar.gz diff --git a/SOURCES/d739260c57576c636759afb312340fa3827312f6.patch b/SOURCES/d739260c57576c636759afb312340fa3827312f6.patch deleted file mode 100644 index 7847bb5..0000000 --- a/SOURCES/d739260c57576c636759afb312340fa3827312f6.patch +++ /dev/null @@ -1,74 +0,0 @@ -From d739260c57576c636759afb312340fa3827312f6 Mon Sep 17 00:00:00 2001 -From: Adrian Reber -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 ---- - .../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 -@@ -235,8 +256,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 diff --git a/SOURCES/pycriu-setup-py b/SOURCES/pycriu-setup-py deleted file mode 100644 index 6bfe3b1..0000000 --- a/SOURCES/pycriu-setup-py +++ /dev/null @@ -1,30 +0,0 @@ -import os -from setuptools import setup, find_packages - -print(find_packages('.')) - -def get_version(): - version = '0.0.1' - env = os.environ - if 'CRIU_VERSION_MAJOR' in env and 'CRIU_VERSION_MINOR' in env: - version = '{}.{}'.format( - env['CRIU_VERSION_MAJOR'], - env['CRIU_VERSION_MINOR'] - ) - if 'CRIU_VERSION_SUBLEVEL' in env and env['CRIU_VERSION_SUBLEVEL']: - version += '.' + env['CRIU_VERSION_SUBLEVEL'] - return version - - -setup( - name='pycriu', - version=get_version(), - description='CRiu Image Tool', - author='CRIU team', - author_email='criu@openvz.org', - license='GPLv2', - url='https://github.com/checkpoint-restore/criu', - packages=['pycriu','pycriu.images'], - package_dir = {'pycriu': '.', 'pycriu.images':'images'} - -) diff --git a/SPECS/criu.spec b/SPECS/criu.spec index 2d555bf..d98b94d 100644 --- a/SPECS/criu.spec +++ b/SPECS/criu.spec @@ -6,7 +6,7 @@ %global _lto_cflags %%{nil} Name: criu -Version: 3.18 +Version: 3.19 Release: 1%{?dist} Provides: crtools = %{version}-%{release} Obsoletes: crtools <= 1.0-2 @@ -15,13 +15,13 @@ License: GPLv2 URL: http://criu.org/ Source0: https://github.com/checkpoint-restore/criu/archive/v%{version}/criu-%{version}.tar.gz Source1: criu-tmpfiles.conf -Source2: pycriu-setup-py BuildRequires: gcc BuildRequires: systemd BuildRequires: libnet-devel BuildRequires: protobuf-devel protobuf-c-devel %{py_prefix}-devel libnl3-devel libcap-devel BuildRequires: asciidoc xmlto BuildRequires: %{py_prefix}-pip +BuildRequires: %{py_prefix}-protobuf BuildRequires: %{py_prefix}-setuptools BuildRequires: %{py_prefix}-wheel BuildRequires: perl-interpreter @@ -33,8 +33,6 @@ Recommends: tar Patch0: 0001-Fix-building-with-annobin.patch Patch1: criu.pc.patch -# Fix to work on CPUs with larger XSAVE area (Sapphire Rapids) -Patch2: https://github.com/checkpoint-restore/criu/commit/d739260c57576c636759afb312340fa3827312f6.patch # user-space and kernel changes are only available for x86_64, arm, # ppc64le, aarch64 and s390x @@ -82,7 +80,6 @@ their content in human-readable form. %setup -q %patch -P 0 -p1 %patch -P 1 -p1 -%patch -P 2 -p1 %build # %{?_smp_mflags} does not work @@ -91,12 +88,10 @@ CFLAGS+=`echo %{optflags} | sed -e 's,-fstack-protector\S*,,g'` make V=1 WERROR= make docs V=1 %install -cp %{SOURCE2} lib/py/setup.py -sed -e "s,--upgrade --force-reinstall,--disable-pip-version-check --progress-bar off --verbose,g; - s,\./crit,./crit lib/py,g;" -i lib/Makefile -rm -f crit/pyproject.toml +sed -e "s,--upgrade --ignore-installed,--no-index --no-deps -v --no-build-isolation,g" -i lib/Makefile -i crit/Makefile make install-criu DESTDIR=$RPM_BUILD_ROOT PREFIX=%{_prefix} LIBDIR=%{_libdir} make install-lib DESTDIR=$RPM_BUILD_ROOT PREFIX=%{_prefix} LIBDIR=%{_libdir} PYTHON=%{py_binary} +make install-crit DESTDIR=$RPM_BUILD_ROOT PREFIX=%{_prefix} LIBDIR=%{_libdir} PYTHON=%{py_binary} make install-man DESTDIR=$RPM_BUILD_ROOT PREFIX=%{_prefix} LIBDIR=%{_libdir} mkdir -p %{buildroot}%{_tmpfilesdir} install -m 0644 %{SOURCE1} %{buildroot}%{_tmpfilesdir}/%{name}.conf @@ -108,7 +103,7 @@ rm -rf $RPM_BUILD_ROOT%{_libexecdir}/%{name} # remove compel man-page rm $RPM_BUILD_ROOT%{_mandir}/man1/compel.1* # remove amdgpu plugin man-page -rm $RPM_BUILD_ROOT%{_mandir}/man1/amdgpu_plugin.1* +rm $RPM_BUILD_ROOT%{_mandir}/man1/criu-amdgpu-plugin.1* # remove criu-ns rm $RPM_BUILD_ROOT%{_sbindir}/criu-ns rm $RPM_BUILD_ROOT%{_mandir}/man1/criu-ns.1* @@ -129,16 +124,20 @@ rm $RPM_BUILD_ROOT%{_mandir}/man1/criu-ns.1* %{_libdir}/*.so.* %files -n %{py_prefix}-%{name} -%{python3_sitelib}/pycriu/* -%{python3_sitelib}/pycriu-%{version}.dist-info +%{python3_sitelib}/pycriu* %files -n crit %{_bindir}/crit %{python3_sitelib}/crit-%{version}.dist-info +%{python3_sitelib}/crit %doc %{_mandir}/man1/crit.1* %changelog -* Tue Apr 25 2034 Adrian Reber - 3.18-1 +* Fri Dec 08 2023 Radostin Stoyanov - 3.19-1 +- Update to 3.19 +- Drop upstreamed patches + +* Tue Apr 25 2023 Adrian Reber - 3.18-1 - Update to 3.18 - Apply patch from upstream to support newer CPUs