Skip to content
Merged
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
6 changes: 6 additions & 0 deletions manifest-lock.aarch64.json
Original file line number Diff line number Diff line change
Expand Up @@ -987,9 +987,15 @@
"nss-altfiles": {
"evra": "2.23.0-7.fc43.aarch64"
},
"numactl": {
"evra": "2.0.19-3.fc43.aarch64"
},
"numactl-libs": {
"evra": "2.0.19-3.fc43.aarch64"
},
"numad": {
"evra": "0.5-47.20150602git.fc43.aarch64"
},
"nvidia-gpu-firmware": {
"evra": "20260221-1.fc43.noarch"
},
Expand Down
6 changes: 6 additions & 0 deletions manifest-lock.ppc64le.json
Original file line number Diff line number Diff line change
Expand Up @@ -969,9 +969,15 @@
"nss-altfiles": {
"evra": "2.23.0-7.fc43.ppc64le"
},
"numactl": {
"evra": "2.0.19-3.fc43.ppc64le"
},
"numactl-libs": {
"evra": "2.0.19-3.fc43.ppc64le"
},
"numad": {
"evra": "0.5-47.20150602git.fc43.ppc64le"
},
"nvidia-gpu-firmware": {
"evra": "20260221-1.fc43.noarch"
},
Expand Down
6 changes: 6 additions & 0 deletions manifest-lock.x86_64.json
Original file line number Diff line number Diff line change
Expand Up @@ -996,9 +996,15 @@
"nss-altfiles": {
"evra": "2.23.0-7.fc43.x86_64"
},
"numactl": {
"evra": "2.0.19-3.fc43.x86_64"
},
"numactl-libs": {
"evra": "2.0.19-3.fc43.x86_64"
},
"numad": {
"evra": "0.5-47.20150602git.fc43.x86_64"
},
"nvidia-gpu-firmware": {
"evra": "20260221-1.fc43.noarch"
},
Expand Down
11 changes: 11 additions & 0 deletions manifests/system-configuration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,17 @@ packages:
# https://github.com/coreos/fedora-coreos-tracker/issues/753
- stalld

conditional-include:
# numad is not available for s390x
- if: basearch != "s390x"
include:
packages:
# https://github.com/coreos/fedora-coreos-tracker/issues/2096
# numad: Daemon that provides placement advice for efficient use of CPUs and memory on systems with NUMA topology.
# numactl: Control NUMA policy for processes or shared memory
- numad
- numactl

postprocess:
# Mask systemd-repart. Ignition is responsible for partition setup on first
# boot and does not use systemd-repart currently. See also
Expand Down
6 changes: 6 additions & 0 deletions tests/kola/numad/config.bu
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
variant: fcos
version: 1.6.0
systemd:
units:
- name: numad.service
Comment thread
angelcerveraroldan marked this conversation as resolved.
enabled: true
1 change: 1 addition & 0 deletions tests/kola/numad/data/commonlib.sh
52 changes: 52 additions & 0 deletions tests/kola/numad/test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
#!/bin/bash
## kola:
## platforms: qemu
## numaNodes: true
## minMemory: 2048
## architectures: "!s390x"
## description: Verify that numad detects nodes and tracks set -euo pipefail
## bindMountHostRO: ["/,/var/cosaroot"]
## creationDate: 2026-04-09

set -euo pipefail

# shellcheck disable=SC1091
. "$KOLA_EXT_DATA/commonlib.sh"

if [[ $(systemctl show numad -p ActiveState) != "ActiveState=active" ]]; then
fatal "numad did not activate"
fi

# Call numad to change the already running daemon's settings for -l and -i
# `-l 7` adds extra information to the logs
# `-i 5` changes interval from every 15s to every 5s
numad -l7 -i5

if ! lscpu | grep -Eq "NUMA node\(s\):\s*2"; then
fatal "expected to find exactly 2 numa nodes"
fi

# As part of the test we want to run a somewhat intensive process, so that
# we can verify that numad is successfully tracking processes. Here we
# use the same pattern of using a mounted in COSA as the container root as:
# https://github.com/coreos/coreos-assembler/blob/8dbfe3ea8b8f571e732e8cc0ab307e983a0be1f3/mantle/cmd/kola/resources/iscsi_butane_setup.yaml#L102-L113
podman run --privileged --name stress-ng --pid=host \
--volume=root:/root/:nocopy --volume=vartmp:/var/tmp/:nocopy \
--workdir /root --rootfs /var/cosaroot \
stress-ng --temp-path /var/tmp --vm 1 --vm-bytes 1024M --timeout 25s

logfile="/var/log/numad.log"
for node in 0 1; do
# Different versions of numad have a slightly different format for the log file,
# e.g. MBs_total vs MBs_tot. This pattern should match both versions.
if ! grep -Eq "Node.${node}.*MBs_tot(al)?.*CPUs_tot(al)?" "$logfile"; then
fatal "Numad didn't detect Node ${node}"
fi
done

# Check that the stress test was being monitored by numad
if ! grep -q "stress-ng-vm" "$logfile"; then
fatal "Numad is not monitoring the stress test"
fi

ok "Numad working as expected"