From: Lennart Poettering Date: Tue, 9 Jun 2020 13:39:51 +0000 (+0200) Subject: udevd: use cpus_in_affinity_mask() X-Git-Tag: v246-rc1~176^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fe56acd8e0ef83f8b69aa21cbf74fd25215997be;p=thirdparty%2Fsystemd.git udevd: use cpus_in_affinity_mask() Let's make use of our own helpers. This has the benefit that we can deal with arbitrarily sized affinity masks. --- diff --git a/src/udev/udevd.c b/src/udev/udevd.c index 6e0ce725534..b3fa83993e4 100644 --- a/src/udev/udevd.c +++ b/src/udev/udevd.c @@ -1841,12 +1841,13 @@ int run_udevd(int argc, char *argv[]) { return r; if (arg_children_max == 0) { - unsigned long cpu_limit, mem_limit; - unsigned long cpu_count = 1; - cpu_set_t cpu_set; + unsigned long cpu_limit, mem_limit, cpu_count = 1; - if (sched_getaffinity(0, sizeof(cpu_set), &cpu_set) == 0) - cpu_count = CPU_COUNT(&cpu_set); + r = cpus_in_affinity_mask(); + if (r < 0) + log_warning_errno(r, "Failed to determine number of local CPUs, ignoring: %m"); + else + cpu_count = r; cpu_limit = cpu_count * 2 + 16; mem_limit = MAX(physical_memory() / (128UL*1024*1024), 10U);