| Message ID | 20260327122758.1851989-6-daniel.turull@ericsson.com |
|---|---|
| State | Under Review |
| Headers | show |
| Series | [v2,1/6] python3-kirk: Add version 4.0.0 | expand |
On Fri, 2026-03-27 at 13:27 +0100, daniel.turull@ericsson.com wrote: > From: Daniel Turull <daniel.turull@ericsson.com> > > Add new configurable variable to execute multiple workers in parallel. > kirk adds the option that was not available in runltp. > > Tested in qemux86-64 with configuration: > > IMAGE_CLASSES += "testimage" > CORE_IMAGE_EXTRA_INSTALL += "ltp openssh" > TEST_SUITES = "ping ssh ltp" > QB_MEM = "32768" > QB_CPU_KVM = "-cpu host -smp 16" > QB_SMP = "-smp 16" > LTP_WORKERS = "16" > IMAGE_ROOTFS_EXTRA_SPACE = "2097152" > > bitbake core-image-minimal > bitbake core-image-minimal -c testimage > > Signed-off-by: Daniel Turull <daniel.turull@ericsson.com> > --- > meta/lib/oeqa/runtime/cases/ltp.py | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) Thanks for looking at this, it is interesting it now has the parallelism support. I'll probably hold off this initially just so that we can transition successfully but it then makes sense to tweak things. I checked yocto-autobuilder-helper's config.json for the config we use on the autobuilder and it is: "IMAGE_INSTALL:append = ' ltp'", "TEST_SUITES = 'ping ssh ltp ltp_compliance'", "IMAGE_OVERHEAD_FACTOR = '1.0'", "IMAGE_ROOTFS_EXTRA_SPACE = '1324288'", "QB_MEM:forcevariable = '-m 1024'" so we're running with a lot less memory than you configured but you also have a lot more threads! > diff --git a/meta/lib/oeqa/runtime/cases/ltp.py b/meta/lib/oeqa/runtime/cases/ltp.py > index b855e76907..ae6a275110 100644 > --- a/meta/lib/oeqa/runtime/cases/ltp.py > +++ b/meta/lib/oeqa/runtime/cases/ltp.py > @@ -68,7 +68,9 @@ class LtpTest(LtpTestBase): > # LTP appends to log files, so ensure we start with a clean log > self.target.deleteFiles("/opt/ltp/results/", "%s.json" % ltp_group) > > - cmd = 'kirk --run-suite %s --json-report /opt/ltp/results/%s.json -n -d /opt/ltp --exec-timeout 20m' % (ltp_group, ltp_group) > + # LTP_WORKERS: number of parallel test workers (default: 1) > + workers = self.td.get('LTP_WORKERS', '1') > + cmd = 'kirk --run-suite %s --json-report /opt/ltp/results/%s.json -n -d /opt/ltp --exec-timeout 20m --workers %s' % (ltp_group, ltp_group, workers) We probably need to namespace the variable a little more, such as OEQA_LTP_WORKERS so that people have a hint on where it is used. Cheers, Richard
Sure, we can keep this for later after the release. I can have another one with the ltp_groups to be configurable and not hard code in the ltp.py I'll send a new series for the patches that do not make if for this release. Daniel > -----Original Message----- > From: Richard Purdie <richard.purdie@linuxfoundation.org> > Sent: Friday, 27 March 2026 16:37 > To: Daniel Turull <daniel.turull@ericsson.com>; openembedded- > core@lists.openembedded.org > Cc: bruce.ashfield@gmail.com; alex.kanavin@gmail.com; > pratik.farkase@est.tech > Subject: Re: [PATCH v2 6/6] oeqa: ltp - add LTP_WORKERS to allow parallelization > > On Fri, 2026-03-27 at 13:27 +0100, daniel.turull@ericsson.com wrote: > > From: Daniel Turull <daniel.turull@ericsson.com> > > > > Add new configurable variable to execute multiple workers in parallel. > > kirk adds the option that was not available in runltp. > > > > Tested in qemux86-64 with configuration: > > > > IMAGE_CLASSES += "testimage" > > CORE_IMAGE_EXTRA_INSTALL += "ltp openssh" > > TEST_SUITES = "ping ssh ltp" > > QB_MEM = "32768" > > QB_CPU_KVM = "-cpu host -smp 16" > > QB_SMP = "-smp 16" > > LTP_WORKERS = "16" > > IMAGE_ROOTFS_EXTRA_SPACE = "2097152" > > > > bitbake core-image-minimal > > bitbake core-image-minimal -c testimage > > > > Signed-off-by: Daniel Turull <daniel.turull@ericsson.com> > > --- > > meta/lib/oeqa/runtime/cases/ltp.py | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > Thanks for looking at this, it is interesting it now has the parallelism support. I'll > probably hold off this initially just so that we can transition successfully but it then > makes sense to tweak things. > > I checked yocto-autobuilder-helper's config.json for the config we use on the > autobuilder and it is: > > "IMAGE_INSTALL:append = ' ltp'", > "TEST_SUITES = 'ping ssh ltp ltp_compliance'", "IMAGE_OVERHEAD_FACTOR = > '1.0'", "IMAGE_ROOTFS_EXTRA_SPACE = '1324288'", "QB_MEM:forcevariable = '- > m 1024'" > > so we're running with a lot less memory than you configured but you also have a > lot more threads! > > > diff --git a/meta/lib/oeqa/runtime/cases/ltp.py > > b/meta/lib/oeqa/runtime/cases/ltp.py > > index b855e76907..ae6a275110 100644 > > --- a/meta/lib/oeqa/runtime/cases/ltp.py > > +++ b/meta/lib/oeqa/runtime/cases/ltp.py > > @@ -68,7 +68,9 @@ class LtpTest(LtpTestBase): > > # LTP appends to log files, so ensure we start with a > > clean log > > self.target.deleteFiles("/opt/ltp/results/", "%s.json" % > > ltp_group) > > > > - cmd = 'kirk --run-suite %s --json-report > > /opt/ltp/results/%s.json -n -d /opt/ltp --exec-timeout 20m' % > > (ltp_group, ltp_group) > > + # LTP_WORKERS: number of parallel test workers (default: > > +1) > > + workers = self.td.get('LTP_WORKERS', '1') > > + cmd = 'kirk --run-suite %s --json-report > > +/opt/ltp/results/%s.json -n -d /opt/ltp --exec-timeout 20m --workers > > +%s' % (ltp_group, ltp_group, workers) > > We probably need to namespace the variable a little more, such as > OEQA_LTP_WORKERS so that people have a hint on where it is used. > > Cheers, > > Richard
diff --git a/meta/lib/oeqa/runtime/cases/ltp.py b/meta/lib/oeqa/runtime/cases/ltp.py index b855e76907..ae6a275110 100644 --- a/meta/lib/oeqa/runtime/cases/ltp.py +++ b/meta/lib/oeqa/runtime/cases/ltp.py @@ -68,7 +68,9 @@ class LtpTest(LtpTestBase): # LTP appends to log files, so ensure we start with a clean log self.target.deleteFiles("/opt/ltp/results/", "%s.json" % ltp_group) - cmd = 'kirk --run-suite %s --json-report /opt/ltp/results/%s.json -n -d /opt/ltp --exec-timeout 20m' % (ltp_group, ltp_group) + # LTP_WORKERS: number of parallel test workers (default: 1) + workers = self.td.get('LTP_WORKERS', '1') + cmd = 'kirk --run-suite %s --json-report /opt/ltp/results/%s.json -n -d /opt/ltp --exec-timeout 20m --workers %s' % (ltp_group, ltp_group, workers) starttime = time.time() (status, output) = self.target.run(cmd, timeout=1200)