diff --git a/ci/provisioning/post_provision_config_common_functions.sh b/ci/provisioning/post_provision_config_common_functions.sh index 0b3d9413ab2..5c5e2a50fbd 100755 --- a/ci/provisioning/post_provision_config_common_functions.sh +++ b/ci/provisioning/post_provision_config_common_functions.sh @@ -323,7 +323,7 @@ post_provision_config_nodes() { rm -f "$REPOS_DIR"/*_job_daos-stack_job_*_job_*.repo time dnf -y erase fio fuse ior-hpc mpich-autoload \ argobots cart daos daos-client daos-spdk dpdk \ - libisa-l libpmemobj mercury mpich \ + libisa-l libpmemobj libpmemobj1 mercury mpich \ pmix protobuf-c spdk libfabric libpmem \ munge-libs munge slurm \ slurm-example-configs slurmctld slurm-slurmmd diff --git a/docs/admin/hardware.md b/docs/admin/hardware.md index c35b00af025..939ce9b4829 100644 --- a/docs/admin/hardware.md +++ b/docs/admin/hardware.md @@ -21,7 +21,7 @@ servers. DAOS requires a 64-bit processor architecture and is primarily developed on Intel x86\_64 architecture. The DAOS software and the libraries it depends on (e.g., [ISA-L](https://github.com/intel/isa-l), -[SPDK](https://spdk.io/), [PMDK](https://github.com/pmem/pmdk/), and +[SPDK](https://spdk.io/), [PMDK](https://github.com/daos-stack/pmdk/), and [DPDK](https://www.dpdk.org/) can take advantage of Intel Streaming SIMD (SSE) and Intel Advanced Vector Extensions (AVX). diff --git a/docs/admin/troubleshooting.md b/docs/admin/troubleshooting.md index 6365142b5cd..8d615e4991f 100644 --- a/docs/admin/troubleshooting.md +++ b/docs/admin/troubleshooting.md @@ -1003,7 +1003,7 @@ Please refer the [ndctl list](https://docs.pmem.io/ndctl-user-guide/ndctl-man-pa The pmempool is a management tool for Persistent Memory pool files created by PMDK libraries. DAOS uses the PMDK library to manage persistence inside ext4 files. -[pmempool](https://github.com/pmem/pmdk/blob/stable-2.0/doc/pmempool/pmempool-check.1.md) can check consistency of a given pool file. +[pmempool](https://github.com/daos-stack/pmdk/blob/stable-2.1/doc/pmempool/pmempool-check.1.md) can check consistency of a given pool file. It can be run with -r (repair) option which can fix some of the issues with pool file. DAOS will have more number of such pool file (vos-*), based on number of targets mention per daos engine. User may need to check each vos pool file for corruption on faulty pool. diff --git a/docs/overview/terminology.md b/docs/overview/terminology.md index 677e03f579c..4815199e6cc 100644 --- a/docs/overview/terminology.md +++ b/docs/overview/terminology.md @@ -32,7 +32,7 @@ |[OFI](https://ofiwg.github.io/libfabric/)|Open Fabrics Interfaces| |OS|Operating System| |PM|Persistent Memory| -|[PMDK](https://github.com/pmem/pmdk)|Persistent Memory Devevelopment Kit| +|[PMDK](https://github.com/daos-stack/pmdk)|Persistent Memory Devevelopment Kit| |[RAFT](https://raft.github.io/)|Raft is a consensus algorithm used to distribute state transitions among DAOS server nodes.| |RAS|Reliability, Availability & Serviceability| |RDB|Replicated Database, containing pool metadata and maintained across DAOS servers using the Raft algorithm.| diff --git a/src/vos/README.md b/src/vos/README.md index db3c83c8229..5a65e7feed1 100644 --- a/src/vos/README.md +++ b/src/vos/README.md @@ -58,7 +58,7 @@ Please refer to the Blob I/O (BIO) module for mor Special care is taken when developing and modifying the VOS layer because any software bug could corrupt data structures in persistent memory. The VOS, therefore, checksums its persistent data structures despite the presence of hardware ECC. -The VOS provides a lightweight I/O stack fully in user space, leveraging the PMDK open-source libraries developed to support this programming model. +The VOS provides a lightweight I/O stack fully in user space, leveraging the PMDK open-source libraries developed to support this programming model. @@ -73,7 +73,7 @@ It is worth noting that such transactions are different from the DAOS transactio Persistent memory transactions must guarantee consistency of VOS internal data structures when processing incoming requests, regardless of their epoch number. Transactions over persistent memory can be implemented in many different ways, e.g., undo logs, redo logs, a combination of both, or copy-on-write. -PMDK is an open source collection of libraries for using persistent memory, optimized specifically for NVRAM. +PMDK is an open source collection of libraries for using persistent memory, optimized specifically for NVRAM. Among these is the libpmemobj library, which implements relocatable persistent heaps called persistent memory pools. This includes memory allocation, transactions, and general facilities for persistent memory programming. The transactions are local to one thread (not multi-threaded) and rely on undo logs. diff --git a/third_party_programs.txt b/third_party_programs.txt index a98b70907d6..3fd62a5416a 100644 --- a/third_party_programs.txt +++ b/third_party_programs.txt @@ -117,9 +117,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Copyright (c) 2009,2014 Google Inc. All rights reserved. pmdk (BSD 3-clause "New" or "Revised" License) - https://github.com/pmem/pmdk - https://github.com/pmem/pmdk/blob/master/LICENSE - Copyright 2014-2020, Intel Corporation + https://github.com/daos-stack/pmdk + https://github.com/daos-stack/pmdk/blob/master/LICENSE + Copyright 2014-2024, Intel Corporation Portable Hardware Locality (hwloc) (BSD 3-clause "New" or "Revised" License) https://www.open-mpi.org/projects/hwloc/ diff --git a/utils/build.config b/utils/build.config index 42b49fcd125..76f5c0f6fcb 100644 --- a/utils/build.config +++ b/utils/build.config @@ -4,7 +4,7 @@ component=daos [commit_versions] argobots=v1.2 fused=v1.0.0 -pmdk=2.1.2 +pmdk=2.1.3 isal=v2.31.1 isal_crypto=v2.25.0 spdk=v24.09 diff --git a/utils/rpms/daos.changelog b/utils/rpms/daos.changelog index ac92201275b..16f420643ac 100644 --- a/utils/rpms/daos.changelog +++ b/utils/rpms/daos.changelog @@ -1,4 +1,7 @@ %changelog +* Wed Feb 18 2026 Oksana Salyk 2.7.104-2 +- Update PMDK to release 2.1.3 + * Tue Feb 10 2026 Dalton Bohning 2.7.104-1 - Bump version to 2.7.104 diff --git a/utils/rpms/daos.sh b/utils/rpms/daos.sh index 1171a079746..2db52a22eba 100755 --- a/utils/rpms/daos.sh +++ b/utils/rpms/daos.sh @@ -184,7 +184,7 @@ EOF EXTRA_OPTS+=("--rpm-attr" "2755,root,daos_server:${bindir}/daos_server") DEPENDS=( "daos = ${VERSION}-${RELEASE}" "daos-spdk = ${daos_spdk_full}" ) - DEPENDS+=( "${pmemobj_lib} >= ${pmdk_full}" "${argobots_lib} >= ${argobots_full}" ) + DEPENDS+=( "${pmemobj_lib} = ${pmdk_full}" "${argobots_lib} >= ${argobots_full}" ) DEPENDS+=( "${isal_crypto_lib} >= ${isal_crypto_version}" "numactl" "pciutils" ) build_package "daos-server" diff --git a/utils/rpms/daos.spec b/utils/rpms/daos.spec index b4b8af94452..bbba1cf3406 100644 --- a/utils/rpms/daos.spec +++ b/utils/rpms/daos.spec @@ -24,7 +24,7 @@ Name: daos Version: 2.7.104 -Release: 1%{?relval}%{?dist} +Release: 2%{?relval}%{?dist} Summary: DAOS Storage Engine License: BSD-2-Clause-Patent @@ -61,7 +61,7 @@ BuildRequires: libjson-c-devel BuildRequires: boost-devel %endif %if %{with server} -BuildRequires: libpmemobj-devel >= 2.1.0 +BuildRequires: libpmemobj-devel >= 2.1.3 %endif BuildRequires: fused-devel %if (0%{?suse_version} >= 1500) @@ -164,10 +164,10 @@ Requires: ndctl # needed to set PMem configuration goals in BIOS through control-plane %if (0%{?suse_version} >= 1500) Requires: ipmctl >= 03.00.00.0423 -Requires: libpmemobj1 >= 2.1.0-1.suse1500 +Requires: libpmemobj1 >= 2.1.3 %else Requires: ipmctl >= 03.00.00.0468 -Requires: libpmemobj >= 2.1.0-1%{?dist} +Requires: libpmemobj >= 2.1.3 %endif Requires: mercury >= %{mercury_version} Requires(post): /sbin/ldconfig diff --git a/utils/rpms/package_info.sh b/utils/rpms/package_info.sh index ac6356c3c72..ef3338124d4 100644 --- a/utils/rpms/package_info.sh +++ b/utils/rpms/package_info.sh @@ -50,7 +50,7 @@ export mercury_full="${mercury_version}-${mercury_release}" export argobots_version="1.2" export argobots_release="4${distro_name}" export argobots_full="${argobots_version}-${argobots_release}" -export pmdk_version="2.1.2" +export pmdk_version="2.1.3" export pmdk_release="1${distro_name}" export pmdk_full="${pmdk_version}-${pmdk_release}" export isal_version="2.31.1" @@ -104,9 +104,9 @@ set_lib_name mercury_libfabric lib mercury-libfabric mercury-libfabric mercury-l export mercury_libfabric_lib set_lib_name pmemobj lib libpmemobj libpmemobj1 libpmemobj1 -set_lib_name pmemobj dev libpmemobj libpmemobj1 libpmemobj1 +set_lib_name pmemobj dev libpmemobj libpmemobj libpmemobj set_lib_name pmem lib libpmem libpmem1 libpmem1 -set_lib_name pmem dev libpmem libpmem libpmem1 +set_lib_name pmem dev libpmem libpmem libpmem set_lib_name pmempool lib libpmempool libpmempool1 libpmempool1 export pmem_lib export pmem_dev diff --git a/utils/rpms/pmdk.changelog b/utils/rpms/pmdk.changelog index d4cd893efeb..0b6f288aa1f 100644 --- a/utils/rpms/pmdk.changelog +++ b/utils/rpms/pmdk.changelog @@ -1,6 +1,16 @@ %changelog +* Mon Jan 19 2026 Oksana Salyk - 2.1.3-1 +- Expand the sds.at_create CTL to disable unnecessary bad-block checking when running without PMem, preventing the stack overflow (DAOS-18296). +- Fix an issue in the PMEMOBJ allocator with a potential to corrupt the allocator's metadata (DAOS-18195). + * Wed Nov 05 2025 Tomasz Gromadzki - 2.1.2-1 -- Update to release 2.1.2 +- Expand the sds.at_create CTL to also cover pmemobj_open() (DAOS-17449) + - Previously, this CTL affected only pmemobj_create(). + - Now, it affects both pmemobj_create() and pmemobj_open(). + - pmemobj_open() won't be able to open a pool with SDS enabled if the feature is currently + force-disabled. + - Conversely, pmemobj_open() does not issue a warning when attempting to open a pool with SDS disabled + while the feature is force-disabled. * Fri Oct 31 2025 Tomasz Gromadzki - 2.1.0-7 - Restore the RPM changelog, which has not been available since version 2.1.0-4. @@ -21,6 +31,7 @@ * Mon Aug 11 2025 Jeff Olivier - 2.1.0-4 - Switch to fpm build for RPMs +- New location of the PMDK repository (https://github.com/daos-stack/pmdk) * Wed Nov 06 2024 Tomasz Gromadzki - 2.1.0-3 - Apply patches to silence annoying error messages on: diff --git a/utils/rpms/pmdk.sh b/utils/rpms/pmdk.sh index 11dc0490cc5..d26dbeee2ac 100755 --- a/utils/rpms/pmdk.sh +++ b/utils/rpms/pmdk.sh @@ -1,5 +1,6 @@ #!/bin/bash # (C) Copyright 2025 Google LLC +# Copyright 2026 Hewlett Packard Enterprise Development LP set -eEuo pipefail root="$(realpath "$(dirname "${BASH_SOURCE[0]}")")" . "${root}/fpm_common.sh" @@ -15,7 +16,7 @@ LICENSE="BSD-3-Clause" ARCH=${isa} DESCRIPTION="The Persistent Memory Development Kit is a collection of libraries for using memory-mapped persistence, optimized specifically for persistent memory." -URL="https://github.com/pmem/pmdk" +URL="https://github.com/daos-stack/pmdk" RPM_CHANGELOG="pmdk.changelog" files=()