[edk2-devel] [PATCH v1 0/4] Use Qemu 8 in CI and enable SMP in tests

Oliver Steffen osteffen at redhat.com
Fri Aug 4 13:21:14 UTC 2023


On Fri, Aug 4, 2023 at 3:17 PM Ard Biesheuvel <ardb at kernel.org> wrote:
>
> On Thu, 3 Aug 2023 at 23:25, Ard Biesheuvel <ardb at kernel.org> wrote:
> >
> > On Thu, 3 Aug 2023 at 21:21, Kinney, Michael D
> > <michael.d.kinney at intel.com> wrote:
> > >
> > > Hi Ard,
> > >
> > > This is the email with the analysis and the flag
> > > setting required for SMP to work with SMM enabled for
> > > IA32/X64 QEMU.
> > >
> > > https://edk2.groups.io/g/devel/message/102364
> > >
> > >
> > > I tried latest version of QEMU earlier in the Summer
> > > and did not see any improvements.
> > >
> >
> > Ah thanks, I had forgotten all about that rabbit hole you went down :-)
> >
> > So let's respin this with -smp 4 --accel=tcg,thread=single. It is
> > still an improvement to exercise the MP code even if it doesn't
> > strictly execute concurrently. (It will be very hard to
> > catch/reproduce true concurrency issues in TCG anyway)
> >
>
> Something like this is what I had in mind:
>
> --- a/OvmfPkg/PlatformCI/PlatformBuildLib.py
> +++ b/OvmfPkg/PlatformCI/PlatformBuildLib.py
> @@ -195,6 +195,7 @@ class PlatformBuilder( UefiBuilder, BuildSettingsManager):
>          args  = "-debugcon stdio"
>       # write messages to stdio
>          args += " -global isa-debugcon.iobase=0x402"
>       # debug messages out thru virtual io port
>          args += " -net none"
>       # turn off network
> +        args += " -smp 4"
>          args += f" -drive
> file=fat:rw:{VirtualDrive},format=raw,media=disk" # Mount disk with
> startup.nsh
>
>          if (self.env.GetValue("QEMU_HEADLESS").upper() == "TRUE"):
> @@ -202,6 +203,7 @@ class PlatformBuilder( UefiBuilder, BuildSettingsManager):
>
>          if (self.env.GetBuildValue("SMM_REQUIRE") == "1"):
>              args += " -machine q35,smm=on" #,accel=(tcg|kvm)"
> +            args += " --accel tcg,thread=single"
>              #args += " -m ..."
>              args += " -global driver=cfi.pflash01,property=secure,value=on"
>              args += " -drive if=pflash,format=raw,unit=0,file=" +
> os.path.join(OutputPath_FV, "OVMF_CODE.fd") + ",readonly=on"
>
> I can just fold that in if nobody minds. I suspect the time limit
> increase may not be needed either this way.

Yes, please do. Since you already have the changes ready.
I was just looking into it now.
If we do not need the larger timeout, even better.

-Oliver



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#107567): https://edk2.groups.io/g/devel/message/107567
Mute This Topic: https://groups.io/mt/100524063/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-




More information about the edk2-devel-archive mailing list