[rtems-tools] tester: Update jobs configuration
Ryan Long
ral051 at oarcorp.com
Mon Nov 15 22:39:14 UTC 2021
ping
On 11/1/2021 5:31 PM, Ryan Long wrote:
> ping
>
> -----Original Message-----
> From: Ryan Long <ryan.long at oarcorp.com>
> Sent: Wednesday, October 20, 2021 3:06 PM
> To: devel at rtems.org
> Cc: Ryan Long <ryan.long at oarcorp.com>
> Subject: [rtems-tools] tester: Update jobs configuration
>
> Allow for default_jobs and max_jobs to be specified in the BSP's configuration file.
> ---
> rtemstoolkit/options.py | 45 +++++++++++++---------
> tester/rtems/testing/bsps/beagleboardxm.ini | 2 +-
> tester/rtems/testing/bsps/beagleboneblack.ini | 2 +-
> tester/rtems/testing/bsps/imx7.ini | 2 +-
> tester/rtems/testing/bsps/mcf5235.ini | 2 +-
> tester/rtems/testing/bsps/mvme2307.ini | 2 +-
> tester/rtems/testing/bsps/pc.ini | 2 +-
> tester/rtems/testing/bsps/qoriq_e500.ini | 2 +-
> tester/rtems/testing/bsps/qoriq_e6500_32.ini | 2 +-
> tester/rtems/testing/bsps/qoriq_e6500_64.ini | 2 +-
> tester/rtems/testing/bsps/raspberrypi2.ini | 2 +-
> tester/rtems/testing/bsps/xilinx_versal_vck190.ini | 2 +- .../rtems/testing/bsps/xilinx_zynq_a9_qemu_smp.ini | 2 +-
> tester/rtems/testing/bsps/xilinx_zynq_zc706.ini | 2 +-
> tester/rtems/testing/bsps/xilinx_zynq_zedboard.ini | 2 +-
> .../testing/bsps/xilinx_zynqmp_ilp32_zu3eg.ini | 2 +-
> .../testing/bsps/xilinx_zynqmp_lp64_zu3eg.ini | 2 +-
> tester/rtems/testing/defaults.mc | 2 +
> 18 files changed, 45 insertions(+), 34 deletions(-)
>
> diff --git a/rtemstoolkit/options.py b/rtemstoolkit/options.py index 5ebe3bc..4b7a93a 100644
> --- a/rtemstoolkit/options.py
> +++ b/rtemstoolkit/options.py
> @@ -102,7 +102,7 @@ class command_line(object):
> '--no-clean': 'Do not clean up the build tree',
> '--always-clean': 'Always clean the build tree, even with an error',
> '--keep-going': 'Do not stop on an error.',
> - '--jobs=[0..n,none,half,full]': 'Run with specified number of jobs, default: num CPUs.',
> + '--jobs=[0..n,none,half,full]': 'Run with specified number
> + of jobs (default: defined in configuration file)',
> '--macros file[,file]': 'Macro format files to load after the defaults',
> '--log file': 'Log file where all build output is written to',
> }
> @@ -327,6 +327,11 @@ class command_line(object):
> # Handle the jobs for make
> if '_ncpus' not in self.defaults:
> raise error.general('host number of CPUs not set')
> + if self.defaults['default_jobs'] != '0':
> + print(
> + 'default_jobs is %d and the default is %d' %
> + (self.defaults['default_jobs'], 0)
> + )
> ncpus = self.jobs(self.defaults['_ncpus'])
> if ncpus > 1:
> self.defaults['_smp_mflags'] = '-j %d' % (ncpus) @@ -427,28 +432,25 @@ class command_line(object):
> um += [m]
> return um if len(um) else None
>
> - def jobs(self, cpus):
> + def jobs(self, num_cpus):
> try:
> - cpus = int(cpus)
> + cpus = int(num_cpus)
> except:
> raise error.general('invalid host cpu value')
> opt_jobs = self.opts['jobs']
> if opt_jobs == 'default':
> - _jobs = self.defaults.get_value('jobs')
> - if _jobs is not None:
> - if _jobs == 'none':
> - cpus = 0
> - elif _jobs == 'max':
> - pass
> - elif _jobs == 'half':
> - cpus = cpus / 2
> - else:
> - try:
> - cpus = int(_jobs)
> - except:
> - raise error.general('invalid %%{jobs} value: %s' % (_jobs))
> + _jobs = self.defaults.get_value('default_jobs')
> + if _jobs == 'none':
> + cpus = 0
> + elif _jobs == 'max':
> + pass
> + elif _jobs == 'half':
> + cpus = cpus / 2
> else:
> - opt_jobs = 'max'
> + try:
> + cpus = int(_jobs)
> + except:
> + raise error.general('invalid %%{jobs} value: %s' %
> + (_jobs))
> if opt_jobs != 'default':
> if opt_jobs == 'none':
> cpus = 0
> @@ -474,7 +476,14 @@ class command_line(object):
> if not ok:
> raise error.internal('bad jobs option: %s' % (opt_jobs))
> if cpus <= 0:
> - cpu = 1
> + cpus = 1
> + max_jobs = int(self.defaults.get_value('max_jobs'))
> + if max_jobs == 0:
> + max_jobs = cpus
> + if cpus > max_jobs:
> + raise error.internal(
> + 'exceeded maximum number of jobs: %d > %d' % (cpus, max_jobs)
> + )
> return cpus
>
> def params(self):
> diff --git a/tester/rtems/testing/bsps/beagleboardxm.ini b/tester/rtems/testing/bsps/beagleboardxm.ini
> index e8a79a6..72e6e8f 100644
> --- a/tester/rtems/testing/bsps/beagleboardxm.ini
> +++ b/tester/rtems/testing/bsps/beagleboardxm.ini
> @@ -36,7 +36,7 @@
> [beagleboardxm]
> bsp = beagleboardxm
> arch = arm
> -jobs = 1
> +max_jobs = 1
> tester = %{_rtscripts}/gdb.cfg
> gdb_script = bsp_gdb_script
> requires = bsp_tty_dev, bsp_gdb_script
> diff --git a/tester/rtems/testing/bsps/beagleboneblack.ini b/tester/rtems/testing/bsps/beagleboneblack.ini
> index 4bf850f..346d859 100644
> --- a/tester/rtems/testing/bsps/beagleboneblack.ini
> +++ b/tester/rtems/testing/bsps/beagleboneblack.ini
> @@ -35,7 +35,7 @@
> [beagleboneblack]
> bsp = beagleboneblack
> arch = arm
> -jobs = 1
> +max_jobs = 1
> tester = %{_rtscripts}/tftp.cfg
> test_restarts = 3
> target_reset_regex = ^No ethernet found.*|BOOTP broadcast 6.*|^ERROR: can.t get kernel image diff --git a/tester/rtems/testing/bsps/imx7.ini b/tester/rtems/testing/bsps/imx7.ini
> index 0a56ba8..28dd77f 100644
> --- a/tester/rtems/testing/bsps/imx7.ini
> +++ b/tester/rtems/testing/bsps/imx7.ini
> @@ -35,7 +35,7 @@
> [imx7]
> bsp = imx7
> arch = arm
> -jobs = 1
> +max_jobs = 1
> tester = %{_rtscripts}/tftp.cfg
> test_restarts = 3
> target_start_regex = Hit any key to stop autoboot:
> diff --git a/tester/rtems/testing/bsps/mcf5235.ini b/tester/rtems/testing/bsps/mcf5235.ini
> index 00f6a26..5023275 100644
> --- a/tester/rtems/testing/bsps/mcf5235.ini
> +++ b/tester/rtems/testing/bsps/mcf5235.ini
> @@ -34,6 +34,6 @@
> [mcf5235]
> bsp = mcf5235
> arch = m68k
> -jobs = 1
> +max_jobs = 1
> tester = %{_rtscripts}/gdb.cfg
> requires = bsp_tty_dev, gdb_script
> diff --git a/tester/rtems/testing/bsps/mvme2307.ini b/tester/rtems/testing/bsps/mvme2307.ini
> index b142aa9..bb7e15f 100644
> --- a/tester/rtems/testing/bsps/mvme2307.ini
> +++ b/tester/rtems/testing/bsps/mvme2307.ini
> @@ -52,7 +52,7 @@
> [mvme2307]
> bsp = mvme2307
> arch = powerpc
> -jobs = 1
> +max_jobs = 1
> test_restarts = 3
> tester = %{_rtscripts}/wait.cfg
> target_start_regex = ^Copyright Motorola Inc.*, All Rights Reserved diff --git a/tester/rtems/testing/bsps/pc.ini b/tester/rtems/testing/bsps/pc.ini
> index 93a5dae..5f81336 100644
> --- a/tester/rtems/testing/bsps/pc.ini
> +++ b/tester/rtems/testing/bsps/pc.ini
> @@ -31,7 +31,7 @@
> [pc]
> bsp = pc686
> arch = i386
> -jobs = 1
> +max_jobs = 1
> tester = %{_rtscripts}/tftp.cfg
> test_restarts = 3
> requires = bsp_tty_dev, target_on_command, target_off_command, target_reset_command
> diff --git a/tester/rtems/testing/bsps/qoriq_e500.ini b/tester/rtems/testing/bsps/qoriq_e500.ini
> index 322069b..1756bcd 100644
> --- a/tester/rtems/testing/bsps/qoriq_e500.ini
> +++ b/tester/rtems/testing/bsps/qoriq_e500.ini
> @@ -35,7 +35,7 @@
> [qoriq_e500]
> bsp = qoriq_e500
> arch = powerpc
> -jobs = 1
> +max_jobs = 1
> tester = %{_rtscripts}/tftp.cfg
> test_restarts = 3
> target_start_regex = U-Boot
> diff --git a/tester/rtems/testing/bsps/qoriq_e6500_32.ini b/tester/rtems/testing/bsps/qoriq_e6500_32.ini
> index 26ee3ae..daf564e 100644
> --- a/tester/rtems/testing/bsps/qoriq_e6500_32.ini
> +++ b/tester/rtems/testing/bsps/qoriq_e6500_32.ini
> @@ -36,7 +36,7 @@
> [qoriq_e6500_32]
> bsp = qoriq_e6500_32
> arch = powerpc
> -jobs = 1
> +max_jobs = 1
> tester = %{_rtscripts}/tftp.cfg
> test_restarts = 3
> target_start_regex = U-Boot
> diff --git a/tester/rtems/testing/bsps/qoriq_e6500_64.ini b/tester/rtems/testing/bsps/qoriq_e6500_64.ini
> index c9b6ab7..e507032 100644
> --- a/tester/rtems/testing/bsps/qoriq_e6500_64.ini
> +++ b/tester/rtems/testing/bsps/qoriq_e6500_64.ini
> @@ -36,7 +36,7 @@
> [qoriq_e6500_64]
> bsp = qoriq_e6500_64
> arch = powerpc
> -jobs = 1
> +max_jobs = 1
> tester = %{_rtscripts}/tftp.cfg
> test_restarts = 3
> target_start_regex = U-Boot
> diff --git a/tester/rtems/testing/bsps/raspberrypi2.ini b/tester/rtems/testing/bsps/raspberrypi2.ini
> index e8043ac..f7f3c8c 100644
> --- a/tester/rtems/testing/bsps/raspberrypi2.ini
> +++ b/tester/rtems/testing/bsps/raspberrypi2.ini
> @@ -35,7 +35,7 @@
> [raspberrypi2]
> bsp = raspberrypi2
> arch = arm
> -jobs = 1
> +max_jobs = 1
> tester = %{_rtscripts}/tftp.cfg
> test_restarts = 3
> target_reset_regex = BOOTP broadcast 6.*|^ERROR: can.t get kernel image diff --git a/tester/rtems/testing/bsps/xilinx_versal_vck190.ini b/tester/rtems/testing/bsps/xilinx_versal_vck190.ini
> index 3bdd6be..a7695a7 100644
> --- a/tester/rtems/testing/bsps/xilinx_versal_vck190.ini
> +++ b/tester/rtems/testing/bsps/xilinx_versal_vck190.ini
> @@ -36,7 +36,7 @@
> bsp = xilinx_versal_vck190
> arch = aarch64
> tester = %{_rtscripts}/tftp.cfg
> -jobs = 1
> +max_jobs = 1
> test_restarts = 3
> target_reset_regex = ^No ethernet found.*|^BOOTP broadcast 6.*|^.+complete\.+ TIMEOUT.* target_start_regex = .* PSCI Power Domain Map:$|^U-Boot .* diff --git a/tester/rtems/testing/bsps/xilinx_zynq_a9_qemu_smp.ini b/tester/rtems/testing/bsps/xilinx_zynq_a9_qemu_smp.ini
> index 4366ffc..b6b39b6 100644
> --- a/tester/rtems/testing/bsps/xilinx_zynq_a9_qemu_smp.ini
> +++ b/tester/rtems/testing/bsps/xilinx_zynq_a9_qemu_smp.ini
> @@ -34,6 +34,6 @@
> [xilinx_zynq_a9_qemu_smp]
> bsp = xilinx_zynq_a9_qemu
> arch = arm
> -jobs = half
> +default_jobs = half
> tester = %{_rtscripts}/qemu.cfg
> bsp_qemu_opts = %{qemu_opts_base} %{qemu_opts_no_net} %{qemu_opts_serial} -M xilinx-zynq-a9 -m 256M -smp cpus=2 diff --git a/tester/rtems/testing/bsps/xilinx_zynq_zc706.ini b/tester/rtems/testing/bsps/xilinx_zynq_zc706.ini
> index e543022..844776d 100644
> --- a/tester/rtems/testing/bsps/xilinx_zynq_zc706.ini
> +++ b/tester/rtems/testing/bsps/xilinx_zynq_zc706.ini
> @@ -35,7 +35,7 @@
> [xilinx_zynq_zc706]
> bsp = xilinx_zynq_zc706
> arch = arm
> -jobs = 1
> +max_jobs = 1
> tester = %{_rtscripts}/gdb.cfg
> gdb_script = bsp_gdb_script
> requires = bsp_tty_dev, bsp_gdb_script
> diff --git a/tester/rtems/testing/bsps/xilinx_zynq_zedboard.ini b/tester/rtems/testing/bsps/xilinx_zynq_zedboard.ini
> index 14b4d94..5c2451b 100644
> --- a/tester/rtems/testing/bsps/xilinx_zynq_zedboard.ini
> +++ b/tester/rtems/testing/bsps/xilinx_zynq_zedboard.ini
> @@ -36,7 +36,7 @@
> bsp = xilinx_zynq_zedboard
> arch = arm
> tester = %{_rtscripts}/tftp.cfg
> -jobs = 1
> +max_jobs = 1
> test_restarts = 3
> target_reset_regex = ^No ethernet found.*|^BOOTP broadcast 6.*|^.+complete\.+ TIMEOUT.* target_start_regex = ^U-Boot SPL .* diff --git a/tester/rtems/testing/bsps/xilinx_zynqmp_ilp32_zu3eg.ini b/tester/rtems/testing/bsps/xilinx_zynqmp_ilp32_zu3eg.ini
> index 8c1c839..eefe173 100644
> --- a/tester/rtems/testing/bsps/xilinx_zynqmp_ilp32_zu3eg.ini
> +++ b/tester/rtems/testing/bsps/xilinx_zynqmp_ilp32_zu3eg.ini
> @@ -35,7 +35,7 @@
> bsp = xilinx_zynqmp_ilp32_zu3eg
> arch = aarch64
> tester = %{_rtscripts}/tftp.cfg
> -jobs = 1
> +max_jobs = 1
> test_restarts = 3
> target_reset_regex = ^No ethernet found.*|^.*: No link\..* target_start_regex = ^.*Xilinx Zynq MP First Stage Boot Loader.* diff --git a/tester/rtems/testing/bsps/xilinx_zynqmp_lp64_zu3eg.ini b/tester/rtems/testing/bsps/xilinx_zynqmp_lp64_zu3eg.ini
> index 663e5de..1fa35e5 100644
> --- a/tester/rtems/testing/bsps/xilinx_zynqmp_lp64_zu3eg.ini
> +++ b/tester/rtems/testing/bsps/xilinx_zynqmp_lp64_zu3eg.ini
> @@ -35,7 +35,7 @@
> bsp = xilinx_zynqmp_lp64_zu3eg
> arch = aarch64
> tester = %{_rtscripts}/tftp.cfg
> -jobs = 1
> +max_jobs = 1
> test_restarts = 3
> target_reset_regex = ^No ethernet found.*|^.*: No link\..* target_start_regex = ^.*Xilinx Zynq MP First Stage Boot Loader.* diff --git a/tester/rtems/testing/defaults.mc b/tester/rtems/testing/defaults.mc
> index d3e16a9..830b377 100644
> --- a/tester/rtems/testing/defaults.mc
> +++ b/tester/rtems/testing/defaults.mc
> @@ -116,6 +116,8 @@ __xz: exe, required, '/usr/bin/xz'
>
> # Default settings
> _target: none, none, '%{nil}'
> +max_jobs: none, none, '0'
> +default_jobs: none, none, '0'
>
> # Paths
> _rtbase: none, none, '%{_rtdir}'
> --
> 1.8.3.1
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
More information about the devel
mailing list