eal/bsd: query the cpu count only once

Rather than querying the number of CPUs on the system multiple times, and
printing out the number each time, just query the value from sysctl once
and store it for future reuse.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
This commit is contained in:
Bruce Richardson 2017-03-23 15:09:58 +00:00 committed by Thomas Monjalon
parent a3e34aa85d
commit 6f6d2a66f8

View File

@ -53,12 +53,14 @@ eal_cpu_core_id(__rte_unused unsigned lcore_id)
static int
eal_get_ncpus(void)
{
static int ncpu = -1;
int mib[2] = {CTL_HW, HW_NCPU};
int ncpu;
size_t len = sizeof(ncpu);
sysctl(mib, 2, &ncpu, &len, NULL, 0);
RTE_LOG(INFO, EAL, "Sysctl reports %d cpus\n", ncpu);
if (ncpu < 0) {
sysctl(mib, 2, &ncpu, &len, NULL, 0);
RTE_LOG(INFO, EAL, "Sysctl reports %d cpus\n", ncpu);
}
return ncpu;
}