Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
9626816
test: call setup before require_sds
osalyk Feb 25, 2025
7d26973
Merge pull request #6152 from osalyk/setup_sds
janekmi Mar 1, 2025
ce96f49
common: update before install (aarch64)
janekmi Mar 3, 2025
a1c6736
Merge pull request #6155 from pmem/main-aarch64-fix
osalyk Mar 3, 2025
e681f17
test: unblock obj_sds tests for non-pmem
osalyk Feb 25, 2025
d19e9fb
test: check if mock functions are used
osalyk Feb 26, 2025
a9df9a7
Merge pull request #6153 from osalyk/sds_non-pmem
janekmi Mar 3, 2025
2da26b7
Merge pull request #6154 from osalyk/obj_sds-test
janekmi Mar 3, 2025
f99ccfe
common: update workflow files
osalyk Apr 8, 2025
1f1f203
Merge pull request #2 from daos-stack/osalyk/workflow_files
janekmi Apr 24, 2025
d50e53e
test: add unit test for sds_check (#1)
osalyk May 14, 2025
41468c7
utils: switch self hosted runners to the new repo location
osalyk Sep 18, 2025
50b1826
common: switch self hosted runners to the new repo location
osalyk Sep 18, 2025
4151976
Merge pull request #7 from daos-stack/update_history
osalyk Sep 22, 2025
e13f02d
common: fix typo
osalyk Oct 2, 2025
a61ce3d
Merge pull request #8 from daos-stack/osalyk/typo
osalyk Oct 2, 2025
1c9322e
common: split the pmem_tests.yml file (#9)
osalyk Oct 7, 2025
d64cef1
common: reshuffle the jobs to fit both workflows into the 24-hour window
osalyk Oct 10, 2025
d74e400
common: extend jobs timeouts (#11)
osalyk Oct 13, 2025
d366169
common: add new timeout to static build
osalyk Oct 15, 2025
833db12
common: update the badges in the README.md file
osalyk Oct 15, 2025
ccbf8c2
Merge pull request #12 from daos-stack/workflows_4
osalyk Oct 15, 2025
58cbac3
common: limit Static builds to ICX runners only
osalyk Oct 16, 2025
fb44e7e
common: expand the sds.at_create CTL to also cover pmemobj_open()
janekmi Sep 5, 2025
e4e2b37
test: expand the sds.at_create CTL to also cover pmemobj_open() (fix)
janekmi Oct 17, 2025
c6a14a6
Merge pull request #15 from janekmi/DAOS-17449-expand_sds_at_create-m…
osalyk Oct 20, 2025
b4db741
common: update Changelog.md (#20)
osalyk Oct 27, 2025
35e8a80
common: 2.1.2-rc1 release
osalyk Oct 27, 2025
f9eb131
common: git versions
osalyk Oct 27, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/docker_rebuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ env:
GH_CR_USER: ${{ secrets.GH_CR_USER }}
GH_CR_PAT: ${{ secrets.GH_CR_PAT }}

GITHUB_REPO: pmem/pmdk
GITHUB_REPO: ${{ github.repository }}
DOCKER_REPO: ghcr.io/pmem/pmdk
WORKDIR: utils/docker
PUSH_IMAGE: 1
Expand All @@ -27,7 +27,7 @@ permissions: {}

jobs:
image:
if: github.repository == 'pmem/pmdk'
if: ${{ github.repository_owner == 'daos-stack' }}
name: Image
runs-on: ubuntu-latest
strategy:
Expand Down
12 changes: 7 additions & 5 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@ jobs:
fetch-depth: 50

- name: Check changelog
# Skip for pmem/pmdk/master and stable-* branches
# Skip for master and stable-* branches
if: |
!(github.repository == 'pmem/pmdk' &&
(github.ref_name == 'master' || startsWith(github.ref_name, 'stable-'))) &&
github.event_name == 'pull_request'
!(github.repository_owner == 'daos-stack' &&
(github.ref_name == 'master' || startsWith(github.ref_name, 'stable-'))) &&
github.event_name == 'pull_request'
uses: Zomzog/changelog-checker@09cfe9ad3618dcbfdba261adce0c41904cabb8c4 # v1.3.0
with:
fileName: ChangeLog
Expand Down Expand Up @@ -110,7 +110,9 @@ jobs:

- if: ${{ contains(matrix.CC, 'aarch64') }}
name: Install dependencies (aarch64)
run: sudo apt-get -y install gcc-aarch64-linux-gnu g++-11-aarch64-linux-gnu binutils-aarch64-linux-gnu
run: |
sudo apt-get update
sudo apt-get -y install gcc-aarch64-linux-gnu g++-11-aarch64-linux-gnu binutils-aarch64-linux-gnu

- name: Build sources
env:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ on:
- '*'

env:
GITHUB_REPO: pmem/pmdk
GITHUB_REPO: ${{ github.repository }}
DOCKER_REPO: ghcr.io/pmem/pmdk
HOST_WORKDIR: /home/runner/work/pmdk/pmdk
WORKDIR: utils/docker
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pmem_ras.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ permissions: {}
jobs:
linux:
name: PMEM_RAS
if: github.repository == 'pmem/pmdk'
if: github.repository_owner == 'daos-stack'
runs-on: [self-hosted, ras_controller]
env:
WORKDIR: utils/gha-runners
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/pmem_test_matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ permissions: {}
jobs:
job:
name: ${{ matrix.force_enable }}, ${{ matrix.test_script }}, ${{ matrix.os }}, ${{ matrix.build }}
if: github.repository == 'pmem/pmdk'
runs-on: [self-hosted, "${{ matrix.os }}"]
if: github.repository_owner == 'daos-stack'
runs-on: [self-hosted, pmdk, "${{ matrix.os }}"]
timeout-minutes: ${{ inputs.timeout_minutes }}
strategy:
fail-fast: false
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# Run all tests on PMEM.
#
# This workflow is run on 'self-hosted' runners.
name: PMEM tests
name: PMEM tests part 1

on:
workflow_dispatch:
schedule:
# run this job at 18:00 UTC every day
- cron: '0 18 * * *'
# run this job at 18:00 UTC every other day (even-numbered)
- cron: '0 18 2-31/2 * *'

permissions: {}

Expand All @@ -26,31 +26,12 @@ jobs:
valgrind: ${{ matrix.VALGRIND }}


# Test the default build with force-enabled Valgrind tooling for (persistent)
# memory error detection.
Memory:
uses: ./.github/workflows/pmem_test_matrix.yml
with:
force_enable: '["pmemcheck", "memcheck"]'
valgrind: 1


# Test the default build with force-enabled Valgrind tooling for thread error
# detection.
Thread:
uses: ./.github/workflows/pmem_test_matrix.yml
with:
force_enable: '["drd", "helgrind"]'
valgrind: 1
# 9h = 7h20m (the longest workflow execution time) + ~20% leeway.
timeout_minutes: 540


# Static builds are tested in this limited scope only.
static:
name: Static
if: github.repository == 'pmem/pmdk'
runs-on: [self-hosted, rhel]
if: github.repository_owner == 'daos-stack'
runs-on: [self-hosted, pmdk, rhel, icx]
timeout-minutes: 1440 # 24h
strategy:
fail-fast: false
matrix:
Expand All @@ -74,8 +55,8 @@ jobs:
# at compile time.
fault_injection:
name: Fault injection
if: github.repository == 'pmem/pmdk'
runs-on: [self-hosted, rhel]
if: github.repository_owner == 'daos-stack'
runs-on: [self-hosted, pmdk, rhel]

steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
Expand All @@ -100,8 +81,8 @@ jobs:
# https://github.com/daos-stack/pmdk/pull/35
ndctl_enable_n:
name: Without ndctl
if: github.repository == 'pmem/pmdk'
runs-on: [self-hosted, rhel]
if: github.repository_owner == 'daos-stack'
runs-on: [self-hosted, pmdk, rhel]

steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
Expand Down
34 changes: 34 additions & 0 deletions .github/workflows/pmem_tests_2.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Run all tests on PMEM.
#
# This workflow is run on 'self-hosted' runners.
name: PMEM tests part 2

on:
workflow_dispatch:
schedule:
# run this job at 18:00 UTC every other day (odd-numbered)
- cron: '0 18 */2 * *'

permissions: {}

jobs:
# Test the default build with force-enabled Valgrind tooling for (persistent)
# memory error detection.
Memory:
uses: ./.github/workflows/pmem_test_matrix.yml
with:
force_enable: '["pmemcheck", "memcheck"]'
valgrind: 1
# 12h = 720m (arbitrarily picked in hope it will be enough).
timeout_minutes: 720


# Test the default build with force-enabled Valgrind tooling for thread error
# detection.
Thread:
uses: ./.github/workflows/pmem_test_matrix.yml
with:
force_enable: '["drd", "helgrind"]'
valgrind: 1
# 12h = 720m (arbitrarily picked in hope it will be enough).
timeout_minutes: 720
2 changes: 1 addition & 1 deletion .github/workflows/scan_coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:
env:
# Note: All coverage scans, e.g. on pull requests, should be run in the same
# environment.
GITHUB_REPO: pmem/pmdk
GITHUB_REPO: ${{ github.repository }}
DOCKER_REPO: ghcr.io/pmem/pmdk
HOST_WORKDIR: /home/runner/work/pmdk/pmdk
WORKDIR: utils/docker
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/scan_coverity.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:
required: true

env:
GITHUB_REPO: pmem/pmdk
GITHUB_REPO: ${{ github.repository }}
DOCKER_REPO: ghcr.io/pmem/pmdk
COVERITY_SCAN_NOTIFICATION_EMAIL: ${{ secrets.COVERITY_SCAN_NOTIFICATION_EMAIL }}
COVERITY_SCAN_TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/scan_ubsan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
workflow_call:

env:
GITHUB_REPO: pmem/pmdk
GITHUB_REPO: ${{ github.repository }}
DOCKER_REPO: ghcr.io/pmem/pmdk
HOST_WORKDIR: /home/runner/work/pmdk/pmdk
WORKDIR: utils/docker
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
workflow_call:

env:
GITHUB_REPO: pmem/pmdk
GITHUB_REPO: ${{ github.repository }}
DOCKER_REPO: ghcr.io/pmem/pmdk

permissions: {}
Expand Down
14 changes: 14 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
Mon Oct 27 2025 Oksana Sałyk <oksana.salyk@hpe.com>

* Version 2.1.2

- Set up a new home for pmdk software (pmem/pmdk -> daos-stack/pmdk).
- Reorganized PMem HW tests to accommodate changes in HW supplies (daos-stack/pmdk#9-12).
- Expanded the sds.at_create CTL to also cover pmemobj_open() (daos-stack/pmdk#5, 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.

Wed Feb 19 2025 Oksana Sałyk <oksana.salyk@hpe.com>

* Version 2.1.1
Expand Down
12 changes: 5 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
# **PMDK: Persistent Memory Development Kit**

[![Main](https://github.com/pmem/pmdk/actions/workflows/main.yml/badge.svg)](https://github.com/pmem/pmdk/actions/workflows/main.yml)
[![Nightly](https://github.com/pmem/pmdk/actions/workflows/nightly.yml/badge.svg?branch=master)](https://github.com/pmem/pmdk/actions/workflows/nightly.yml)
[![Scans](https://github.com/pmem/pmdk/actions/workflows/scans.yml/badge.svg?branch=master)](https://github.com/pmem/pmdk/actions/workflows/scans.yml)
[![Coverage](https://codecov.io/github/pmem/pmdk/coverage.svg?branch=master)](https://codecov.io/gh/pmem/pmdk/branch/master)
[![PMem test](https://github.com/pmem/pmdk/actions/workflows/pmem_tests.yml/badge.svg?branch=master)](https://github.com/pmem/pmdk/actions/workflows/pmem_tests.yml)
[![Pmem RAS](https://github.com/pmem/pmdk/actions/workflows/pmem_ras.yml/badge.svg?branch=master)](https://github.com/pmem/pmdk/actions/workflows/pmem_ras.yml)
[![Docker rebuild](https://github.com/pmem/pmdk/actions/workflows/docker_rebuild.yml/badge.svg?branch=master)](https://github.com/pmem/pmdk/actions/workflows/docker_rebuild.yml)
[![Main](https://github.com/daos-stack/pmdk/actions/workflows/main.yml/badge.svg)](https://github.com/daos-stack/pmdk/actions/workflows/main.yml)
[![Nightly](https://github.com/daos-stack/pmdk/actions/workflows/nightly.yml/badge.svg?branch=master)](https://github.com/daos-stack/pmdk/actions/workflows/nightly.yml)
[![Scans](https://github.com/daos-stack/pmdk/actions/workflows/scans.yml/badge.svg?branch=master)](https://github.com/daos-stack/pmdk/actions/workflows/scans.yml)
[![PMem test 1](https://github.com/daos-stack/pmdk/workflows/PMEM%20tests%20part%201/badge.svg)](https://github.com/daos-stack/pmdk/actions/workflows/pmem_tests_1.yml)
[![PMem test 2](https://github.com/daos-stack/pmdk/workflows/PMEM%20tests%20part%202/badge.svg)](https://github.com/daos-stack/pmdk/actions/workflows/pmem_tests_2.yml)

The **Persistent Memory Development Kit (PMDK)** is a collection of libraries and tools for System Administrators and Application Developers to simplify managing and accessing persistent memory devices. For more information, see https://pmem.io.

Expand Down
11 changes: 8 additions & 3 deletions doc/libpmemobj/pmemobj_ctl_get.3.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,14 @@ impact of pagefaults. Affects only the **pmemobj_open**() function.

sds.at_create | rw | global | int | int | - | boolean

If set, force-enables or force-disables SDS feature during pool creation.
Affects only the **pmemobj_create**() function. See **pmempool_feature_query**(3)
for information about SDS (SHUTDOWN_STATE) feature.
If set, this option force-enables or force-disables the SDS feature.
It affects both the **pmemobj_create**() and **pmemobj_open**() functions.
A pool created while SDS is force-disabled will have the feature persistently disabled.
To enable the feature for an existing pool, use **pmempool_feature_enable**(3).
**pmemobj_open**() cannot 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.
For more information about the SDS (SHUTDOWN_STATE) feature, see **pmempool_feature_query**(3).

copy_on_write.at_open | rw | global | int | int | - | boolean

Expand Down
5 changes: 5 additions & 0 deletions src/common/ctl_sds.c
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// SPDX-License-Identifier: BSD-3-Clause
/* Copyright 2018-2021, Intel Corporation */
/* Copyright 2025, Hewlett Packard Enterprise Development LP */

/*
* ctl_sds.c -- implementation of the sds CTL namespace
Expand Down Expand Up @@ -32,6 +33,10 @@ CTL_WRITE_HANDLER(at_create)(void *ctx, enum ctl_query_source source,

int arg_in = *(int *)arg;

if (SDS_at_create != arg_in && arg_in == 0) {
CORE_LOG_HARK("PMEM feature disabled: SDS_at_create=0");
}

SDS_at_create = arg_in;

return 0;
Expand Down
2 changes: 2 additions & 0 deletions src/common/pmemcommon.inc
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright 2017-2023, Intel Corporation
# Copyright 2025, Hewlett Packard Enterprise Development LP
#
# src/pmemcommon.inc -- common SOURCE definitions for PMDK libraries
#
Expand All @@ -21,6 +22,7 @@ SOURCE +=\
$(COMMON)/rand.c\
$(COMMON)/set.c\
$(COMMON)/shutdown_state.c\
$(COMMON)/shutdown_state_helper.c\
$(COMMON)/uuid.c\
$(COMMON)/uuid_linux.c\
$(PMEM2)/pmem2_utils.c\
Expand Down
Loading
Loading