mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2026-05-04 20:46:11 +02:00
MINOR: cpu-topo: add detection of online CPUs on FreeBSD
On FreeBSD we can detect online CPUs at least by doing the bitwise-OR of the CPUs of all domains, so we're using this and adding this detection to ha_cpuset_detect_online(). If we find simpler later, we can always rework it, but it's reasonably inexpensive since we only check existing domains.
This commit is contained in:
parent
8f72ce335a
commit
44881e5abf
@ -35,7 +35,30 @@ int ha_cpuset_detect_online(struct hap_cpuset *set)
|
||||
ha_cpuset_zero(set);
|
||||
}
|
||||
|
||||
#else // !__linux__
|
||||
#elif defined(__FreeBSD__)
|
||||
|
||||
struct hap_cpuset node_cpu_set;
|
||||
int ndomains, domain;
|
||||
size_t len = sizeof(ndomains);
|
||||
|
||||
ha_cpuset_zero(set);
|
||||
|
||||
/* retrieve the union of NUMA nodes as online CPUs */
|
||||
if (sysctlbyname("vm.ndomains", &ndomains, &len, NULL, 0) == 0) {
|
||||
BUG_ON(ndomains > MAXMEMDOM);
|
||||
|
||||
for (domain = 0; domain < ndomains; domain++) {
|
||||
ha_cpuset_zero(&node_cpu_set);
|
||||
|
||||
if (cpuset_getaffinity(CPU_LEVEL_WHICH, CPU_WHICH_DOMAIN, domain,
|
||||
sizeof(node_cpu_set.cpuset), &node_cpu_set.cpuset) == -1)
|
||||
continue;
|
||||
|
||||
ha_cpuset_or(set, &node_cpu_set);
|
||||
}
|
||||
}
|
||||
|
||||
#else // !__linux__, !__FreeBSD__
|
||||
|
||||
ha_cpuset_zero(set);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user