Skip to content

Commit

Permalink
DAOS-14408 common: ensure NDCTL not used for storage class ram
Browse files Browse the repository at this point in the history
NDCTL features can not be used with no-DCPM PMem (simulated PMem)
PMEMOBJ_CONF=sds.at_create=0 disables NDCTL features in PMDK

Required-githooks: true

Signed-off-by: Tomasz Gromadzki <[email protected]>
  • Loading branch information
grom72 committed Aug 28, 2024
1 parent 0f811a9 commit ee6d615
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 1 deletion.
8 changes: 7 additions & 1 deletion src/tests/ftest/config_file_gen.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env python3
"""
(C) Copyright 2020-2023 Intel Corporation.
(C) Copyright 2020-2024 Intel Corporation.
SPDX-License-Identifier: BSD-2-Clause-Patent
"""
Expand Down Expand Up @@ -51,6 +51,12 @@ def generate_server_config(args):
config.engine_params[0].storage.storage_tiers[0].storage_class.value = "ram"
config.engine_params[0].storage.storage_tiers[0].scm_mount.value = "/mnt/daos"
config.engine_params[0].storage.storage_tiers[0].scm_size.value = 0

# Disable shutdown state (SDS) (part of RAS) for RAM-based simulated SCM.
# RAM doesn't support this feature and trying to use it will fail the create/open operations.
# PMEMOBJ expects the shutdown state support by default when built with NDCTL.
config.engine_params[0].env_vars.update("PMEMOBJ_CONF=sds.at_create=0", append=True)

# Update the configuration file access points
config.other_params.access_points.value = args.node_list.split(",")
return create_config(args, config)
Expand Down
8 changes: 8 additions & 0 deletions src/tests/ftest/util/server_utils_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -530,6 +530,14 @@ def get_params(self, test):
env.split("=", maxsplit=1)[0]: env.split("=", maxsplit=1)[1]
for env in self.REQUIRED_ENV_VARS[name]})

# Disable shutdown state (SDS) (part of RAS) for RAM-based simulated SCM.
# RAM doesn't support this feature and trying to use
# it will fail the create/open operations.
# PMEMOBJ expects the shutdown state support by default when built with NDCTL.

if not self.using_dcpm:
required_env_vars["PMEMOBJ_CONF"] = "sds.at_create=0"

# Enable fault injection if configured
if test.fault_injection.fault_file is not None:
self.log.debug("Enabling fault injection")
Expand Down
1 change: 1 addition & 0 deletions utils/nlt_server.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ engines:
- DAOS_STRICT_SHUTDOWN=1
- DAOS_TARGET_OVERSUBSCRIBE=1
- ABT_STACK_OVERFLOW_CHECK=mprotect
- PMEMOBJ_CONF=sds.at_create=0
storage:
-
class: ram
Expand Down

0 comments on commit ee6d615

Please sign in to comment.