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>
Wed, 31 May 2023 20:22:36 +0000 (16:22 -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 e236263096e933d704549c2b7d1248965d060aaa..30770e58905d4c977af2aa07394f11328e39495a 100644 (file)
@@ -209,6 +209,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.026185 seconds and 4 git commands to generate.