On Wed, Aug 23, 2023 at 07:10:52PM +0100, Pedro Falcato wrote:
> On Wed, Aug 23, 2023 at 4:12 PM Ard Biesheuvel <a...@kernel.org> wrote:
> >
> > On Wed, 23 Aug 2023 at 13:08, Gerd Hoffmann <kra...@redhat.com> wrote:
> > >
> > > Hmm, QE reports back it slows down the boot alot.  No boot hangs yet
> > > with 12 test runs so far, which isn't that much for a reproduce rate
> > > below 20% ...
> > >
> > > https://bugzilla.redhat.com//show_bug.cgi?id=2211060#c28
> > >
> > > So I guess we go with the TPL version for the coming stable tag and
> > > leave any improvements for later ...
> >
> > Yeah, this was not going to make the stable tag in any case.
> >
> > The boot speed regression seems odd, though - this is effectively UP
> > code so there shouldn't be any contention, the only thing this patch
> > does is ensure that the critical section is restarted if it was
> > interrupted

QE reported back boot times without this patch are ~20-30 seconds,
with this patch it can be more than 3 minutes.

> FWIW: Given completely correct logic, straightforward logic, a lock
> cmpxchg is much slower(3-4x) than an a non-lock cmpxchg, which itself
> is around 2x as slow as a regular relaxed load + store.
> See https://gist.github.com/heatd/49c9be23ccb1f4ad8dfeac231da2647a for
> a nice fun test benchmark.

Also note that IoMmuDxe is only used in case memory encryption is
enabled (I/O uses unencrypted bounce buffers so the host can virtio
emulation can read/write stuff there).  Maybe that affects performance
too.

Cc'ing the AMD people for comments on that.

> HOWEVER, given this is likely in IO paths, I would *really* not expect
> this to make a difference, right? Even virtio drivers will themselves
> trap with a VMEXIT whenever you touch a hardware register...

It's only a single VMEXIT per I/O request (ring the doorbell after
adding a request to the ring), but still, this is heavy enough that
the cmpxchg difference should be in the noise.

> Gerd, could you folks get a perf kvm (perf-kvm(1)) recording out of
> that OVMF build? Assuming you can get that thing to work, that is,
> personally it mysteriously stopped working 6 years ago for me :)

I can try hack IoMmuDxe so it is used unconditionally and try reproduce
locally (without sev-capable hardware), but most likely not this week.

take care,
  Gerd



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#108000): https://edk2.groups.io/g/devel/message/108000
Mute This Topic: https://groups.io/mt/100256049/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to