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>
Mon, 13 Feb 2023 21:16:39 +0000 (16:16 -0500)
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 ea354cf62fc4236f4201e834e0353d0317eb1210..78bee0c63d16f1ea14433c5b5e61724f5db45c4a 100644 (file)
@@ -214,6 +214,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.026309 seconds and 4 git commands to generate.