Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
8 changes: 4 additions & 4 deletions docs/admin/performance_tuning.md
Original file line number Diff line number Diff line change
Expand Up @@ -409,16 +409,16 @@ to the next section for more information.

### SSDs

Performance of SSDs can be measured directly with SPDK via the spdk_nvme_perf
Performance of SSDs can be measured directly with SPDK via the daos_spdk_nvme_perf
tool. It can be run to test bandwidth in a non-destructive way as follows:

```bash
spdk_nvme_perf -q 16 -o 1048576 -w read -c 0xff -t 60
daos_spdk_nvme_perf -q 16 -o 1048576 -w read -c 0xff -t 60
```

IOPS can be measured with the following command:
```bash
spdk_nvme_perf -q 16 -o 4096 -w read -c 0xff -t 60
daos_spdk_nvme_perf -q 16 -o 4096 -w read -c 0xff -t 60
```

`-q` is used to control the queue depth, `-o` for the I/O size, `-w` is the
Expand All @@ -438,7 +438,7 @@ form of a core mash. `-c 0xff` uses the first 8 cores.
!!! note
On storage node using Intel VMD, the `--enable-vmd` option must be specified.

Many more options are available. Please run `spdk_nvme_perf` to see the list of
Many more options are available. Please run `daos_spdk_nvme_perf` to see the list of
parameters that can be tweaked.

## End-to-end Performance
Expand Down
10 changes: 5 additions & 5 deletions docs/admin/predeployment_check.md
Original file line number Diff line number Diff line change
Expand Up @@ -406,18 +406,18 @@ able to use with DPDK and VFIO if run as user "daos".
To change this, please adjust limits.conf memlock limit for user "daos".
```

Now the SSDs can be accessed by SPDK we can use the `spdk_nvme_manage` tool to format
Now the SSDs can be accessed by SPDK we can use the `daos_spdk_nvme_manage` tool to format
the SSDs with a 4K block size.

`spdk_nvme_manage` tool is provided by SPDK and will be found in the following locations:
`daos_spdk_nvme_manage` tool is provided by SPDK and will be found in the following locations:

- `/usr/bin/spdk_nvme_manage` if DAOS-maintained spdk-21.07-10 (or greater) RPM is installed
- `<daos_src>/install/prereq/release/spdk/bin/spdk_nvme_manage` after build from DAOS source
- `/usr/bin/daos_spdk_nvme_manage` if DAOS-maintained spdk-21.07-10 (or greater) RPM is installed
- `<daos_src>/install/prereq/release/spdk/bin/daos_spdk_nvme_manage` after build from DAOS source

Choose to format a SSD, use option "6" for formatting:

```bash
$ sudo /usr/bin/spdk_nvme_manage
$ sudo /usr/bin/daos_spdk_nvme_manage
NVMe Management Options
[1: list controllers]
[2: create namespace]
Expand Down
4 changes: 3 additions & 1 deletion site_scons/components/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Copyright 2016-2024 Intel Corporation
# Copyright 2025 Google LLC
# Copyright 2025-2026 Google LLC
# Copyright 2025-2026 Hewlett Packard Enterprise Development LP
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
Expand Down Expand Up @@ -419,6 +419,8 @@ def define_components(reqs):
headers=['spdk/nvme.h'],
pkgconfig='daos_spdk',
patch_rpath=['lib64/daos_srv', 'bin'],
patch_rpath_exclusions=['libspdk.so', 'spdk_cli', 'spdk_rpc', 'spdk-mcp',
'spdk-sma'],
requires=spdk_reqs)

reqs.define('protobufc',
Expand Down
17 changes: 13 additions & 4 deletions site_scons/prereq_tools/base.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Copyright 2016-2024 Intel Corporation
# Copyright 2025 Google LLC
# Copyright 2025-2026 Google LLC
# Copyright 2025-2026 Hewlett Packard Enterprise Development LP
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
Expand Down Expand Up @@ -768,6 +768,8 @@ def define(self, name, **kw):
build_env -- Environment variables to set for build
skip_arch -- not required on this architecture
static_libs -- Static libraries only, no published install
patch_rpath -- Patch the rpath in specified directories
patch_rpath_exclusions -- Exclude listed binaries from rpath patching
"""
use_installed = False
if not kw.get('static_libs', False):
Expand Down Expand Up @@ -994,7 +996,7 @@ def get_config(self, section, name):
return self._configs.get(section, name)


class _Component():
class _Component(): # pylint: disable=too-many-instance-attributes
"""A class to define attributes of an external component

Args:
Expand All @@ -1015,10 +1017,16 @@ class _Component():
extra_lib_path -- Subdirectories to add to dependent component path
extra_include_path -- Subdirectories to add to dependent component path
out_of_src_build -- Build from a different directory if set to True
patch_rpath -- Add appropriate relative rpaths to binaries
patch_rpath -- Patch the rpath in specified directories
patch_rpath_exclusions -- Exclude listed binaries from rpath patching
build_env -- Environment variable(s) to add to build environment
skip_arch -- not required on this platform
static_libs -- Static libraries only, no public install

Note:
This class has 31 instance attributes which exceeds the pylint default
of 30. This is justified as it manages complex external component
configuration with many inter-related settings.
"""

def __init__(self,
Expand All @@ -1045,6 +1053,7 @@ def __init__(self,
self.required_progs = kw.get("required_progs", [])
if kw.get("patch_rpath", []):
self.required_progs.append("patchelf")
self.patch_rpath_exclusions = kw.get("patch_rpath_exclusions", [])
self.defines = kw.get("defines", [])
self.headers = kw.get("headers", [])
self.requires = kw.get("requires", [])
Expand Down Expand Up @@ -1486,7 +1495,7 @@ def _patch_rpaths(self):
cmd = ['patchelf', '--set-rpath', ':'.join(rpath), full_lib]
res = RUNNER.run_commands([cmd])
if not res:
if lib in ('libspdk.so', 'spdk_cli', 'spdk_rpc', 'spdk-mcp', 'spdk-sma'):
if lib in self.patch_rpath_exclusions:
print(f'Skipped patching {full_lib}')
else:
raise BuildFailure(f'Error running patchelf on {full_lib}')
Expand Down
4 changes: 4 additions & 0 deletions utils/rpms/daos-spdk.changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
* Fri May 22 2026 Signed-off-by: Jeff Olivier <jeffolivier@google.com> - 26.01-2
- Fix daos_spdk_nvme_perf binary in rpm
- Adjust how we exclude packages to make it generic and not hardcoded

* Thu May 12 2026 Signed-off-by: Tom Nabarro <thomas.nabarro@hpe.com> - 26.01-1
- Upgrade to SPDK v26.01, update version number to match SPDK release version
- Update external ISA-L patch for v26.01 compatibility
Expand Down
4 changes: 2 additions & 2 deletions utils/rpms/daos-spdk.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# (C) Copyright 2025 Google LLC
# (C) Copyright 2025-2026 Google LLC
set -eEuo pipefail
root="$(realpath "$(dirname "${BASH_SOURCE[0]}")")"
. "${root}/fpm_common.sh"
Expand All @@ -22,7 +22,7 @@ RPM_CHANGELOG="daos-spdk.changelog"
files=()
TARGET_PATH="${bindir}"
list_files files "${SL_SPDK_PREFIX}/bin/daos_spdk*"
clean_bin "${files[@]}"
NO_STRIP=y clean_bin "${files[@]}"
append_install_list "${files[@]}"

BASE_PATH="${tmp}/${datadir}/daos/spdk"
Expand Down
6 changes: 4 additions & 2 deletions utils/rpms/fpm_common.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# (C) Copyright 2025 Google LLC
# (C) Copyright 2025-2026 Google LLC
root="$(realpath "$(dirname "$(dirname "$(dirname "${BASH_SOURCE[0]}")")")")"
. "${root}/utils/sl/setup_local.sh" > /dev/null
unset tmp
Expand Down Expand Up @@ -126,7 +126,9 @@ clean_bin() {
dbgpath="${dbgroot}/${dname}"
cp "${file}" "${dbgpath}"
strip --only-keep-debug "${dbgpath}" > /dev/null 2>&1
strip "${file}" > /dev/null 2>&1 || true
if [[ -z "${NO_STRIP:-}" ]]; then
strip "${file}" > /dev/null 2>&1 || true
fi
dbg_list+=("${dbgpath}")
done
}
Expand Down
4 changes: 2 additions & 2 deletions utils/rpms/package_info.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash
#
# (C) Copyright 2025 Google LLC
# (C) Copyright 2025-2026 Google LLC
# Copyright 2025-2026 Hewlett Packard Enterprise Development LP
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
Expand Down Expand Up @@ -61,7 +61,7 @@ export isal_crypto_release="1${distro_name}"
export isal_crypto_full="${isal_crypto_version}-${isal_crypto_release}"
export spdk_major_version="26.01"
export daos_spdk_version=${spdk_major_version}
export daos_spdk_release="1${distro_name}"
export daos_spdk_release="2${distro_name}"
export daos_spdk_full="${daos_spdk_version}-${daos_spdk_release}"
export fused_version="1.0.0"
export fused_release="3${distro_name}"
Expand Down
Loading