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@rtems.org http://lists.rtems.org/mailman/listinfo/devel