Tests: Add get_possible_cpus_count utility
authorOlivier Dion <odion@efficios.com>
Wed, 1 Feb 2023 21:04:14 +0000 (16:04 -0500)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Tue, 6 Jun 2023 18:38:57 +0000 (14:38 -0400)
lttng-ust uses the possible number of CPUs to allocate its ring buffers.
Certain tests have to take that into consideration in their calculation
instead of relying on online processors.

Thus, add the same logic for calculating the possible CPUs on the
system.

Change-Id: I9f14afba3e4adad9547cbd9386f8e1b1b55a3253
Signed-off-by: Olivier Dion <odion@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
tests/utils/utils.sh

index 69672f3933ffc04bfe581b14b8439fcf0c9a7321..c9907fd6d37fe8e3cf0401791cc0c6cf90d83682 100644 (file)
@@ -130,6 +130,38 @@ function randstring()
        echo
 }
 
+# Helpers for get_possible_cpus.
+function get_possible_cpus_count_from_sysfs_possible_mask()
+{
+       local max_possible_cpu_id=$(cut -d '-' -f 2 < /sys/devices/system/cpu/possible)
+       echo $((max_possible_cpu_id+1))
+}
+
+function get_max_cpus_count_from_sysfs_cpu_directories()
+{
+       local max_possible_cpu_id= \
+               $(find /sys/devices/system/cpu/ -mindepth 1 -maxdepth 1 -regex ".+cpu[0-9]+" | \
+                 sed -e 's/cpu//g' | \
+                 awk -F '/' '{ if ($NF > N) N = $NF } END { print N }')
+       echo $((max_possible_cpu_id+1))
+}
+
+# Return the number of possible CPUs.
+function get_possible_cpus_count()
+{
+       local possible_cpus_count=$(get_possible_cpus_count_from_sysfs_possible_mask)
+
+       if [ $? -ne 0 ]; then
+               possible_cpus_count=$(get_max_cpus_count_from_sysfs_cpu_directories)
+               local configured_cpus_count=$(getconf _NPROCESSORS_CONF)
+               possible_cpus_count=$(($configured_cpus_count > $possible_cpus_count \
+                                                             ? $configured_cpus_count \
+                                                             : $possible_cpus_count))
+       fi
+
+       echo $possible_cpus_count
+}
+
 # Return the number of _configured_ CPUs.
 function conf_proc_count()
 {
This page took 0.03001 seconds and 4 git commands to generate.