The package rpms/nvml.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/nvml.git/commit/?id=77fa7fc0e3cea....
Change:
+ExclusiveArch: x86_64 ppc64le
Thanks.
Full change:
============
commit 7ac6dfcf3bdf53b3ee063894e15a73cce36b3afe
Author: Marcin lusarz <marcin.slusarz(a)intel.com>
Date: Wed Feb 26 17:52:25 2020 +0100
Add ChangeLog for 1.8-2
diff --git a/nvml.spec b/nvml.spec
index 1c72a81..d47eaad 100644
--- a/nvml.spec
+++ b/nvml.spec
@@ -32,7 +32,7 @@
Name: nvml
Version: 1.8
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Persistent Memory Development Kit (formerly NVML)
License: BSD
URL:
http://pmem.io/pmdk
@@ -70,8 +70,12 @@ BuildRequires: libunwind-devel
%global __provides_exclude_from ^%{_libdir}/pmdk_debug/.*\\.so.*$
# By design, PMDK does not support any 32-bit architecture.
-# Due to dependency on xmmintrin.h and some inline assembly, it can be
-# compiled only for x86_64 at the moment.
+# Due to dependency on some inline assembly, PMDK can be compiled only
+# on these architectures:
+# - x86_64
+# - ppc64le (experimental)
+# - aarch64 (unmaintained, supporting hardware doesn't exist?)
+#
# Other 64-bit architectures could also be supported, if only there is
# a request for that, and if somebody provides the arch-specific
# implementation of the low-level routines for flushing to persistent
@@ -79,7 +83,6 @@ BuildRequires: libunwind-devel
#
https://bugzilla.redhat.com/show_bug.cgi?id=1340634
#
https://bugzilla.redhat.com/show_bug.cgi?id=1340635
-#
https://bugzilla.redhat.com/show_bug.cgi?id=1340636
#
https://bugzilla.redhat.com/show_bug.cgi?id=1340637
ExclusiveArch: x86_64 ppc64le
@@ -602,6 +605,9 @@ cp utils/pmdk.magic %{buildroot}%{_datadir}/pmdk/
%changelog
+* Wed Feb 26 2020 Marcin lusarz <marcin.slusarz(a)intel.com> - 1.8-2
+- Enable PPC64LE packages
+
* Wed Feb 12 2020 Marcin lusarz <marcin.slusarz(a)intel.com> - 1.8-1
- Update to PMDK version 1.8. This release stops shipping
libvmem & libvmmalloc. These libraries are now provided by vmem
commit 77fa7fc0e3ceae7cac61ad7fc153e1be1590ecd5
Author: Lucas A. M. Magalhaes <lamm(a)linux.ibm.com>
Date: Mon Feb 17 17:48:05 2020 -0300
Add ppc64le package
diff --git a/nvml.spec b/nvml.spec
index e6df7db..1c72a81 100644
--- a/nvml.spec
+++ b/nvml.spec
@@ -82,7 +82,7 @@ BuildRequires: libunwind-devel
#
https://bugzilla.redhat.com/show_bug.cgi?id=1340636
#
https://bugzilla.redhat.com/show_bug.cgi?id=1340637
-ExclusiveArch: x86_64
+ExclusiveArch: x86_64 ppc64le
%description
The Persistent Memory Development Kit is a collection of libraries for
commit f5e3e301bba3bf05ee872678217e48fc12781513
Author: Marcin lusarz <marcin.slusarz(a)intel.com>
Date: Wed Feb 26 17:09:15 2020 +0100
Add another patch for timeouts on PPC64.
diff --git a/0003-test-build-obj_defrag_advanced-with-some-optimizatio.patch
b/0003-test-build-obj_defrag_advanced-with-some-optimizatio.patch
new file mode 100644
index 0000000..58ff8a3
--- /dev/null
+++ b/0003-test-build-obj_defrag_advanced-with-some-optimizatio.patch
@@ -0,0 +1,24 @@
+From ad2064dbb457482f9af9816f61ba721cc5aae126 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Marcin=20=C5=9Alusarz?= <marcin.slusarz(a)intel.com>
+Date: Wed, 26 Feb 2020 15:54:19 +0100
+Subject: [PATCH] test: build obj_defrag_advanced with some optimizations
+
+On my machine it decreases TEST3 time from 52s to 20s
+and TEST5 from 30s to 11s.
+---
+ src/test/obj_defrag_advanced/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/test/obj_defrag_advanced/Makefile
b/src/test/obj_defrag_advanced/Makefile
+index f2e8eda94..45fa851aa 100644
+--- a/src/test/obj_defrag_advanced/Makefile
++++ b/src/test/obj_defrag_advanced/Makefile
+@@ -40,4 +40,4 @@ LIBPMEMOBJ=y
+
+ include ../Makefile.inc
+
+-CFLAGS += -DDEBUG
++CFLAGS += -DDEBUG -Og
+--
+2.20.1
+
diff --git a/nvml.spec b/nvml.spec
index 79cba1b..e6df7db 100644
--- a/nvml.spec
+++ b/nvml.spec
@@ -40,6 +40,7 @@ URL:
http://pmem.io/pmdk
Source0:
https://github.com/pmem/pmdk/releases/download/%{upstreamversion}/pmdk-%{...
Patch0: 0001-test-py-add-require_free_space.patch
Patch1: 0002-test-Fix-obj_zones-for-ppc64le.patch
+Patch2: 0003-test-build-obj_defrag_advanced-with-some-optimizatio.patch
BuildRequires: gcc
BuildRequires: make
@@ -530,6 +531,7 @@ provided in the command line options to check whether files are in a
consistent
%setup -q -n pmdk-%{upstreamversion}
%patch0 -p1
%patch1 -p1
+%patch2 -p1
%build
commit 0116788efd1a5e2e815514690a732290bb9b52fc
Author: Marcin lusarz <marcin.slusarz(a)intel.com>
Date: Tue Feb 25 19:04:33 2020 +0100
Add patch for timeouts on PPC64
diff --git a/0002-test-Fix-obj_zones-for-ppc64le.patch
b/0002-test-Fix-obj_zones-for-ppc64le.patch
new file mode 100644
index 0000000..19f4d54
--- /dev/null
+++ b/0002-test-Fix-obj_zones-for-ppc64le.patch
@@ -0,0 +1,38 @@
+From 0d72150d0f1e6d52c3b8888500fbcce64c751362 Mon Sep 17 00:00:00 2001
+From: "Lucas A. M. Magalhaes" <lamm(a)linux.ibm.com>
+Date: Fri, 21 Feb 2020 09:40:28 -0300
+Subject: [PATCH] test: Fix obj_zones for ppc64le
+
+This test was timing out because of intensive page_fault
+handling. By allocating more by each loop we minimize this
+issue.
+
+Signed-off-by: Lucas A. M. Magalhaes <lamm(a)linux.ibm.com>
+---
+ src/test/obj_zones/obj_zones.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/test/obj_zones/obj_zones.c b/src/test/obj_zones/obj_zones.c
+index c1d84268a..3cc796beb 100644
+--- a/src/test/obj_zones/obj_zones.c
++++ b/src/test/obj_zones/obj_zones.c
+@@ -36,6 +36,7 @@
+ */
+
+ #include <stddef.h>
++#include <page_size.h>
+
+ #include "unittest.h"
+
+@@ -104,7 +105,7 @@ test_malloc_free(const char *path)
+ 0, S_IWUSR | S_IRUSR)) == NULL)
+ UT_FATAL("!pmemobj_create: %s", path);
+
+- size_t alloc_size = 128 * 1024;
++ size_t alloc_size = PMEM_PAGESIZE * 32;
+ size_t max_allocs = 1000000;
+ PMEMoid *oid = MALLOC(sizeof(PMEMoid) * max_allocs);
+ size_t n = 0;
+--
+2.20.1
+
diff --git a/nvml.spec b/nvml.spec
index 6d988dc..79cba1b 100644
--- a/nvml.spec
+++ b/nvml.spec
@@ -39,6 +39,7 @@ URL:
http://pmem.io/pmdk
Source0:
https://github.com/pmem/pmdk/releases/download/%{upstreamversion}/pmdk-%{...
Patch0: 0001-test-py-add-require_free_space.patch
+Patch1: 0002-test-Fix-obj_zones-for-ppc64le.patch
BuildRequires: gcc
BuildRequires: make
@@ -528,6 +529,7 @@ provided in the command line options to check whether files are in a
consistent
%prep
%setup -q -n pmdk-%{upstreamversion}
%patch0 -p1
+%patch1 -p1
%build
commit aa6b3b4baec9feb76a6c3cc4077a571dae79336c
Author: Marcin lusarz <marcin.slusarz(a)intel.com>
Date: Tue Feb 18 15:58:49 2020 +0100
Also run Python tests
diff --git a/0001-test-py-add-require_free_space.patch
b/0001-test-py-add-require_free_space.patch
new file mode 100644
index 0000000..1be4bfe
--- /dev/null
+++ b/0001-test-py-add-require_free_space.patch
@@ -0,0 +1,70 @@
+From 2bfc80d85248ed0014e396c2cab4b8ffb60e470e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Marcin=20=C5=9Alusarz?= <marcin.slusarz(a)intel.com>
+Date: Tue, 18 Feb 2020 15:51:12 +0100
+Subject: [PATCH] test: (py) add require_free_space
+
+---
+ src/test/obj_defrag_advanced/TESTS.py | 4 ++++
+ src/test/unittest/context.py | 11 ++++++++---
+ 2 files changed, 12 insertions(+), 3 deletions(-)
+
+diff --git a/src/test/obj_defrag_advanced/TESTS.py
b/src/test/obj_defrag_advanced/TESTS.py
+index 8979af4a5..daf7d8ecc 100755
+--- a/src/test/obj_defrag_advanced/TESTS.py
++++ b/src/test/obj_defrag_advanced/TESTS.py
+@@ -49,6 +49,8 @@ class ObjDefragAdvanced(t.BaseTest):
+ min_root_size = 0
+
+ def run(self, ctx):
++ ctx.require_free_space(self.pool_size)
++
+ path = ctx.create_holey_file(self.pool_size, 'testfile')
+ dump1 = 'dump1.log'
+ dump2 = 'dump2.log'
+@@ -98,6 +100,8 @@ class ObjDefragAdvancedMt(ObjDefragAdvanced):
+ ncycles = 2
+
+ def run(self, ctx):
++ ctx.require_free_space(self.pool_size)
++
+ path = ctx.create_holey_file(self.pool_size, 'testfile')
+
+ ctx.exec('obj_defrag_advanced',
+diff --git a/src/test/unittest/context.py b/src/test/unittest/context.py
+index 00a35fba3..2b326ebce 100644
+--- a/src/test/unittest/context.py
++++ b/src/test/unittest/context.py
+@@ -1,5 +1,5 @@
+ #
+-# Copyright 2019, Intel Corporation
++# Copyright 2019-2020, Intel Corporation
+ #
+ # Redistribution and use in source and binary forms, with or without
+ # modification, are permitted provided that the following conditions
+@@ -136,9 +136,9 @@ class ContextBase:
+ return int(proc.stdout)
+ futils.fail('Could not get size of the file, it is inaccessible or does not
exist')
+
+- def get_free_space(self):
++ def get_free_space(self, dir="."):
+ """Returns free space for current file system"""
+- _, _, free = shutil.disk_usage(".")
++ _, _, free = shutil.disk_usage(dir)
+ return free
+
+
+@@ -187,6 +187,11 @@ class Context(ContextBase):
+ os.chmod(filepath, mode)
+ return filepath
+
++ def require_free_space(self, space):
++ if self.get_free_space(self.testdir) < space:
++ futils.skip('Not enough free space (' + str(space / 1024 / 1024) +
++ ' MiB required)')
++
+ def mkdirs(self, path, mode=None):
+ """
+ Creates directory along with all parent directories required. In the
+--
+2.17.2
+
diff --git a/nvml.spec b/nvml.spec
index a043993..6d988dc 100644
--- a/nvml.spec
+++ b/nvml.spec
@@ -2,7 +2,6 @@
# rpmbuild options:
# --with | --without fabric
# --with | --without ndctl
-# --define _testconfig <path to custom testconfig.sh>
# do not terminate build if files in the $RPM_BUILD_ROOT
# directory are not found in %%files (without fabric case)
@@ -39,6 +38,7 @@ License: BSD
URL:
http://pmem.io/pmdk
Source0:
https://github.com/pmem/pmdk/releases/download/%{upstreamversion}/pmdk-%{...
+Patch0: 0001-test-py-add-require_free_space.patch
BuildRequires: gcc
BuildRequires: make
@@ -47,6 +47,7 @@ BuildRequires: autoconf
BuildRequires: automake
BuildRequires: man
BuildRequires: pkgconfig
+BuildRequires: python3
%if %{with ndctl}
BuildRequires: ndctl-devel >= %{min_ndctl_ver}
@@ -526,6 +527,7 @@ provided in the command line options to check whether files are in a
consistent
%prep
%setup -q -n pmdk-%{upstreamversion}
+%patch0 -p1
%build
@@ -556,13 +558,27 @@ cp utils/pmdk.magic %{buildroot}%{_datadir}/pmdk/
%if 0%{?_skip_check} == 1
echo "Check skipped"
%else
- %if %{defined _testconfig}
- cp %{_testconfig} src/test/testconfig.sh
- %else
- echo "PMEM_FS_DIR=/tmp" > src/test/testconfig.sh
- echo "PMEM_FS_DIR_FORCE_PMEM=1" >> src/test/testconfig.sh
- echo 'TEST_BUILD="debug nondebug"' >> src/test/testconfig.sh
- %endif
+ echo "PMEM_FS_DIR=/tmp" > src/test/testconfig.sh
+ echo "PMEM_FS_DIR_FORCE_PMEM=1" >> src/test/testconfig.sh
+ echo 'TEST_BUILD="debug nondebug"' >>
src/test/testconfig.sh
+ echo "TM=1" >> src/test/testconfig.sh
+
+ echo "config = {" > src/test/testconfig.py
+ echo " 'pmem_fs_dir': '/tmp'," >>
src/test/testconfig.py
+ echo " 'fs_dir_force_pmem': 1," >>
src/test/testconfig.py
+ echo " 'build': ['debug', 'release']," >>
src/test/testconfig.py
+ echo " 'tm': 1," >>
src/test/testconfig.py
+ echo " 'test_type': 'check'," >>
src/test/testconfig.py
+ echo " 'fs': 'all'," >>
src/test/testconfig.py
+ echo " 'unittest_log_level': 1," >>
src/test/testconfig.py
+ echo " 'keep_going': False," >>
src/test/testconfig.py
+ echo " 'timeout': '3m'," >>
src/test/testconfig.py
+ echo " 'dump_lines': 30," >>
src/test/testconfig.py
+ echo " 'force_enable': None," >>
src/test/testconfig.py
+ echo " 'device_dax_path': []," >>
src/test/testconfig.py
+ echo "}" >> src/test/testconfig.py
+
+ make pycheck
make check
%endif