Re: [kvm-unit-tests PATCH v1 3/3] arm64: efi: Make running tests on EFI can be parallel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Nov 29, 2023 at 06:14:20PM +0800, Shaoqin Huang wrote:
> Hi drew,
> 
> On 11/29/23 17:27, Andrew Jones wrote:
> > On Tue, Nov 28, 2023 at 10:21:23PM -0500, Shaoqin Huang wrote:
> > > Currently running tests on EFI in parallel can cause part of tests to
> > > fail, this is because arm/efi/run script use the EFI_CASE to create the
> > > subdir under the efi-tests, and the EFI_CASE is the filename of the
> > > test, when running tests in parallel, the multiple tests exist in the
> > > same filename will execute at the same time, which will use the same
> > > directory and write the test specific things into it, this cause
> > > chaotic and make some tests fail.
> > 
> > How do they fail? iiuc, we're switching from having one of each unique
> > binary on the efi partition to multiple redundant binaries, since we
> > copy the binary for each test, even when it's the same as for other
> > tests. It seems like we should be able to keep single unique binaries
> > and resolve the parallel execution failure by just checking for existence
> > of the binaries or only creating test-specific data directories or
> > something.
> > 
> 
> The problem comes from the arm/efi/run script, as you can see. If we
> parallel running multiple tests on efi, for example, running the pmu-sw-incr
> and pmu-chained-counters and other pmu tests at the same time, the EFI_CASE
> will be pmu. So they will write their $cmd_args to the
> $EFI/TEST/pmu/startup.nsh at the same time, which will corrupt the
> startup.nsh file.
> 
> cp "$EFI_SRC/$EFI_CASE.efi" "$EFI_TEST/$EFI_CASE/"
> echo "@echo -off" > "$EFI_TEST/$EFI_CASE/startup.nsh"
> ...
> echo "$EFI_CASE.efi" "${cmd_args[@]}" >> "$EFI_TEST/$EFI_CASE/startup.nsh"
> 
> And I can get the log which outputs:
> 
> * pmu-sw-incr.log:
>   - ABORT: pmu: Unknown sub-test 'pmu-mem-acce'
> * pmu-chained-counters.log
>   - ABORT: pmu: Unknown sub-test 'pmu-mem-access-reliab'
> 
> And the efi-tests/pmu/startup.nsh:
> 
> @echo -off
> setvar fdtfile -guid 97ef3e03-7329-4a6a-b9ba-6c1fdcc5f823 -rt =L"dtb"
> pmu.efi pmu-mem-access-reliability
> setvar fdtfile -guid 97ef3e03-7329-4a6a-b9ba-6c1fdcc5f823 -rt =L"dtb"
> pmu.efi pmu-chained-sw-incr
> 
> 
> Thus when running parallel, some of them will fail. So I create different
> sub-dir in the efi-tests for each small test.

Ok, I was guessing it was something like that. Maybe we should create a
"bin" type of named directory for all the binaries and then create a
separate subdir for each test and its startup.nsh, rather than copying
the binaries multiple times.

> > >   : "${EFI_CASE:=$(basename $1 .efi)}"
> > >   : "${EFI_VAR_GUID:=97ef3e03-7329-4a6a-b9ba-6c1fdcc5f823}"
> > > @@ -56,20 +58,20 @@ if [ "$EFI_CASE" = "_NO_FILE_4Uhere_" ]; then
> > >   	EFI_CASE=dummy
> > >   fi
> > > -: "${EFI_CASE_DIR:="$EFI_TEST/$EFI_CASE"}"
> > > +: "${EFI_CASE_DIR:="$EFI_TEST/$EFI_TESTNAME"}"
> > >   mkdir -p "$EFI_CASE_DIR"
> > > -cp "$EFI_SRC/$EFI_CASE.efi" "$EFI_TEST/$EFI_CASE/"
> > > -echo "@echo -off" > "$EFI_TEST/$EFI_CASE/startup.nsh"
> > > +cp "$EFI_SRC/$EFI_CASE.efi" "$EFI_CASE_DIR/"
> > > +echo "@echo -off" > "$EFI_CASE_DIR/startup.nsh"
> > 
> > Unrelated change, should be a separate patch.
> > 
> 
> Ok, Will separate it.

Actually, disregard my comment. I was too hasty here and thought the
'@echo -off' was getting added, but now I see only the path was getting
updated. It's correct to make this change here in this patch.

Thanks,
drew




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux