From patchwork Fri Apr 12 16:21:41 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aaron Conole X-Patchwork-Id: 52730 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 039691B3A3; Fri, 12 Apr 2019 18:22:04 +0200 (CEST) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id B99C51B293 for ; Fri, 12 Apr 2019 18:21:52 +0200 (CEST) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id EE0C88666D; Fri, 12 Apr 2019 16:21:51 +0000 (UTC) Received: from dhcp-25.97.bos.redhat.com (ovpn-122-94.rdu2.redhat.com [10.10.122.94]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3C1AD5D6A9; Fri, 12 Apr 2019 16:21:51 +0000 (UTC) From: Aaron Conole To: dev@dpdk.org Cc: Bruce Richardson , Luca Boccassi , Reshma Pattan , Agalya Babu RadhaKrishnan , David Marchand Date: Fri, 12 Apr 2019 12:21:41 -0400 Message-Id: <20190412162141.23327-4-aconole@redhat.com> In-Reply-To: <20190412162141.23327-1-aconole@redhat.com> References: <20190411195229.7841-1-aconole@redhat.com> <20190412162141.23327-1-aconole@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Fri, 12 Apr 2019 16:21:52 +0000 (UTC) Subject: [dpdk-dev] [PATCH v2 3/3] app/test/meson: auto detect number of cores X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 Reviewed-by: David Marchand Acked-by: Luca Boccassi Acked-by: Bruce Richardson --- v2: * Fix a spelling mistake * Add support for FreeBSD * Include a default fallback * Use a more robust core-mask argument source (rather than lscpu) Conflicts with http://patches.dpdk.org/patch/50850/ app/test/meson.build | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/app/test/meson.build b/app/test/meson.build index 867cc5863..5e056eb59 100644 --- a/app/test/meson.build +++ b/app/test/meson.build @@ -344,17 +344,43 @@ if get_option('tests') timeout_seconds = 600 timeout_seconds_fast = 10 + # Retrieve the number of CPU cores, defaulting to 4. + num_cores = '0-3' + if host_machine.system() == 'linux' + num_cores = run_command('cat', + '/sys/devices/system/cpu/present' + ).stdout().strip() + elif host_machine.system() == 'freebsd' + snum_cores = run_command('/sbin/sysctl', '-n', + 'hw.ncpu').stdout().strip() + inum_cores = snum_cores.to_int() - 1 + num_cores = '0-@0@'.format(inum_cores) + endif + + num_cores_arg = '-l ' + num_cores + + test_args = [num_cores_arg, '-n 4'] foreach arg : fast_parallel_test_names - test(arg, dpdk_test, - env : ['DPDK_TEST=' + arg], - args : ['-c f','-n 4', '--file-prefix=@0@'.format(arg)], + if host_machine.system() == 'linux' + test(arg, dpdk_test, + env : ['DPDK_TEST=' + arg], + args : test_args + + ['--file-prefix=@0@'.format(arg)], + timeout : timeout_seconds_fast, + suite : 'fast-tests') + else + test(arg, dpdk_test, + env : ['DPDK_TEST=' + arg], + args : test_args, timeout : timeout_seconds_fast, suite : 'fast-tests') + endif endforeach foreach arg : fast_non_parallel_test_names test(arg, dpdk_test, env : ['DPDK_TEST=' + arg], + args : test_args, timeout : timeout_seconds_fast, is_parallel : false, suite : 'fast-tests') @@ -363,6 +389,7 @@ if get_option('tests') foreach arg : perf_test_names test(arg, dpdk_test, env : ['DPDK_TEST=' + arg], + args : test_args, timeout : timeout_seconds, is_parallel : false, suite : 'perf-tests') @@ -371,6 +398,7 @@ if get_option('tests') foreach arg : driver_test_names test(arg, dpdk_test, env : ['DPDK_TEST=' + arg], + args : test_args, timeout : timeout_seconds, is_parallel : false, suite : 'driver-tests') @@ -379,6 +407,7 @@ if get_option('tests') foreach arg : dump_test_names test(arg, dpdk_test, env : ['DPDK_TEST=' + arg], + args : test_args, timeout : timeout_seconds, is_parallel : false, suite : 'debug-tests')