[rtems-tools] tester: Update jobs configuration

Ryan Long ral051 at oarcorp.com
Tue Nov 30 20:59:25 UTC 2021


ping

On 11/15/2021 4:39 PM, Ryan Long wrote:
> 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