[dpdk-dev] [PATCH 3/3] app/test/meson: auto detect number of cores
Bruce Richardson
bruce.richardson at intel.com
Fri Apr 12 11:06:01 CEST 2019
On Fri, Apr 12, 2019 at 09:46:17AM +0200, David Marchand wrote:
> On Thu, Apr 11, 2019 at 9:52 PM Aaron Conole <[1]aconole at redhat.com>
> wrote:
>
> The arguments being passed will cause failures on laptops that have,
> for instance, 2 cores only. Most of the tests don't require more
> than a single core. Some require multiple cores (but those tests
> should be modified to 'SKIP' when the correct number of cores
> aren't available).
> The unit test results shouldn't be impacted by this change, but it
> allows for a future enhancement to pass flags such as '--no-huge'.
> Also include a fix to a reported issue with running on FreeBSD.
> Signed-off-by: Aaron Conole <[2]aconole at redhat.com>
> ---
> Conflicts with [3]http://patches.dpdk.org/patch/50850/
> app/test/meson.build | 24 +++++++++++++++++++++---
> 1 file changed, 21 insertions(+), 3 deletions(-)
> diff --git a/app/test/meson.build b/app/test/meson.build
> index 867cc5863..1010bfbc8 100644
> --- a/app/test/meson.build
> +++ b/app/test/meson.build
> @@ -344,17 +344,32 @@ if get_option('tests')
> timeout_seconds = 600
> timeout_seconds_fast = 10
> + # Retreive the number of CPU cores
>
> nit: Retrieve
> Little concern here on the approach of getting the max available cpu
> index.
> If we have non contiguous cpus (let's say hyper threading is disabled),
> this won't work.
> But we can just assume this won't happen for non regression setups
> (vms).
>
> + num_cores = run_command('lscpu',
> '-p=cpu').stdout().strip().split('\n')[-1]
>
> lscpu is a linux command afaik.
> Maybe for FreeBSD:
> root at freebsd-10:~ # sysctl dev.cpu |cut -d . -f 3 |sort |tail -1
> 3
> Not sure if FreeBSD ensures that the keys names/objects won't change
> accross the versions.
>
Very similar thoughs/concerns here. I think doing this per OS is probably
safer in the long term - even though lscpu is available for FreeBSD as an
extra package.
My suggestion: for FreeBSD, get the number of CPUs using
"/sbin/sysctl -n hw.ncpu"
For Linux, rather than using a "0-N" range, use output from
"cat /sys/devices/system/cpu/present", which will ensure that it works
even in the non-contiguous CPU numbering case. [Though I suspect we get
non-contiguous numbers only in the case a core or two has been hotplugged
out, I think - disabling hyperthreading won't leave gaps, just fewer cores]
/Bruce
More information about the dev
mailing list