From 71344176135b6e140ebc7c107ffe40ff9c3f79ba Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Tue, 18 Jul 2023 17:14:10 +0200 Subject: [PATCH] MINOR: cpuset: add cpu_map_configured() to know if a cpu-map was found Since we'll soon want to adjust the "thread-groups" degree of freedom based on the presence of cpu-map, we first need to be able to detect if cpu-map was used. This function scans all cpu-map sets to detect if any is present, and returns true accordingly. --- include/haproxy/cpuset.h | 5 +++++ src/cpuset.c | 17 +++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/include/haproxy/cpuset.h b/include/haproxy/cpuset.h index 2977b38fe..4f795f264 100644 --- a/include/haproxy/cpuset.h +++ b/include/haproxy/cpuset.h @@ -41,4 +41,9 @@ void ha_cpuset_assign(struct hap_cpuset *dst, struct hap_cpuset *src); */ int ha_cpuset_size(void); +/* Returns true if at least one cpu-map directive was configured, otherwise + * false. + */ +int cpu_map_configured(void); + #endif /* _HAPROXY_CPUSET_H */ diff --git a/src/cpuset.c b/src/cpuset.c index e789b23a9..76fad1fb2 100644 --- a/src/cpuset.c +++ b/src/cpuset.c @@ -118,3 +118,20 @@ int ha_cpuset_size() #endif } + +/* Returns true if at least one cpu-map directive was configured, otherwise + * false. + */ +int cpu_map_configured(void) +{ + int grp, thr; + + for (grp = 0; grp < MAX_TGROUPS; grp++) { + if (ha_cpuset_count(&cpu_map[grp].proc)) + return 1; + for (thr = 0; thr < MAX_THREADS_PER_GROUP; thr++) + if (ha_cpuset_count(&cpu_map[grp].thread[thr])) + return 1; + } + return 0; +}