[rtems-tools] tester: Update jobs configuration

Ryan Long ryan.long at oarcorp.com
Wed Dec 22 12:04:06 UTC 2021


ping

-----Original Message-----
From: Ryan Long <ral051 at oarcorp.com> 
Sent: Wednesday, December 8, 2021 9:29 AM
To: devel at rtems.org
Subject: Re: [rtems-tools] tester: Update jobs configuration

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