From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 043151B212 for ; Fri, 12 Apr 2019 18:36:32 +0200 (CEST) X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Apr 2019 09:36:32 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,341,1549958400"; d="scan'208";a="336853183" Received: from bricha3-mobl.ger.corp.intel.com ([10.237.220.103]) by fmsmga005.fm.intel.com with SMTP; 12 Apr 2019 09:36:29 -0700 Received: by (sSMTP sendmail emulation); Fri, 12 Apr 2019 17:36:29 +0100 Date: Fri, 12 Apr 2019 17:36:28 +0100 From: Bruce Richardson To: Aaron Conole Cc: dev@dpdk.org, Luca Boccassi , Reshma Pattan , Agalya Babu RadhaKrishnan , David Marchand Message-ID: <20190412163628.GA1842@bricha3-MOBL.ger.corp.intel.com> References: <20190411195229.7841-1-aconole@redhat.com> <20190412162141.23327-1-aconole@redhat.com> <20190412162141.23327-4-aconole@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190412162141.23327-4-aconole@redhat.com> User-Agent: Mutt/1.11.4 (2019-03-13) Subject: Re: [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: , X-List-Received-Date: Fri, 12 Apr 2019 16:36:33 -0000 On Fri, Apr 12, 2019 at 12:21:41PM -0400, Aaron Conole 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 > Reviewed-by: David Marchand > Acked-by: Luca Boccassi > --- > 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'] This -n 4 parameter can be dropped. Four is the default setting IIRC. I also wonder are the parameters coming through to the app correctly, generally meson does not work well with parameters with spaces in them - I'd expect the "-l" and the num_cores values to be separated in the array. I also think num_cores_arg value could be dropped too. If it works though, I'm ok to keep as-is though. > 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 While this is needed now, I think in the medium term we should have the "file-prefix" flag being a warning rather than a hard-error on FreeBSD. [i.e. keep this, but we should fix it in 19.08 to be shorter] /Bruce From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id 6C696A0096 for ; Fri, 12 Apr 2019 18:36:35 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 2A0971B216; Fri, 12 Apr 2019 18:36:35 +0200 (CEST) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 043151B212 for ; Fri, 12 Apr 2019 18:36:32 +0200 (CEST) X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Apr 2019 09:36:32 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,341,1549958400"; d="scan'208";a="336853183" Received: from bricha3-mobl.ger.corp.intel.com ([10.237.220.103]) by fmsmga005.fm.intel.com with SMTP; 12 Apr 2019 09:36:29 -0700 Received: by (sSMTP sendmail emulation); Fri, 12 Apr 2019 17:36:29 +0100 Date: Fri, 12 Apr 2019 17:36:28 +0100 From: Bruce Richardson To: Aaron Conole Cc: dev@dpdk.org, Luca Boccassi , Reshma Pattan , Agalya Babu RadhaKrishnan , David Marchand Message-ID: <20190412163628.GA1842@bricha3-MOBL.ger.corp.intel.com> References: <20190411195229.7841-1-aconole@redhat.com> <20190412162141.23327-1-aconole@redhat.com> <20190412162141.23327-4-aconole@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Disposition: inline In-Reply-To: <20190412162141.23327-4-aconole@redhat.com> User-Agent: Mutt/1.11.4 (2019-03-13) Subject: Re: [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" Message-ID: <20190412163628.Ttwcket5a32HZOZNBoK1yXRinTbzju9DxCMEezyn1Do@z> On Fri, Apr 12, 2019 at 12:21:41PM -0400, Aaron Conole 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 > Reviewed-by: David Marchand > Acked-by: Luca Boccassi > --- > 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'] This -n 4 parameter can be dropped. Four is the default setting IIRC. I also wonder are the parameters coming through to the app correctly, generally meson does not work well with parameters with spaces in them - I'd expect the "-l" and the num_cores values to be separated in the array. I also think num_cores_arg value could be dropped too. If it works though, I'm ok to keep as-is though. > 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 While this is needed now, I think in the medium term we should have the "file-prefix" flag being a warning rather than a hard-error on FreeBSD. [i.e. keep this, but we should fix it in 19.08 to be shorter] /Bruce