From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Michael Tokarev <mjt@tls.msk.ru>
Cc: qemu-devel@nongnu.org, Thomas Huth <thuth@redhat.com>,
"Richard W.M. Jones" <rjones@redhat.com>,
qemu-stable <qemu-stable@nongnu.org>
Subject: Re: [PATCH] crypto: fix bogus error benchmarking pbkdf on fast machines
Date: Wed, 22 Jan 2025 20:16:07 +0000 [thread overview]
Message-ID: <Z5FSBzXWMv-r8Ir-@redhat.com> (raw)
In-Reply-To: <dc801052-432f-45eb-9fee-a2850401cffd@tls.msk.ru>
On Wed, Jan 22, 2025 at 10:19:41PM +0300, Michael Tokarev wrote:
> 08.01.2025 21:43, Daniel P. Berrangé пишет:
> > We're seeing periodic reports of errors like:
> >
> > $ qemu-img create -f luks --object secret,data=123456,id=sec0 \
> > -o key-secret=sec0 luks-info.img 1M
> > Formatting 'luks-info.img', fmt=luks size=1048576 key-secret=sec0
> > qemu-img: luks-info.img: Unable to get accurate CPU usage
> >
> > This error message comes from a recent attempt to workaround a
> > kernel bug with measuring rusage in long running processes:
> >
> > commit c72cab5ad9f849bbcfcf4be7952b8b8946cc626e
> > Author: Tiago Pasqualini <tiago.pasqualini@canonical.com>
> > Date: Wed Sep 4 20:52:30 2024 -0300
> >
> > crypto: run qcrypto_pbkdf2_count_iters in a new thread
> >
> > Unfortunately this has a subtle bug on machines which are very fast.
> >
> > On the first time around the loop, the 'iterations' value is quite
> > small (1 << 15), and so will run quite fast. Testing has shown that
> > some machines can complete this benchmarking task in as little as
> > 7 milliseconds.
> >
> > Unfortunately the 'getrusage' data is not updated at the time of
> > the 'getrusage' call, it is done asynchronously by the schedular.
> > The 7 millisecond completion time for the benchmark is short
> > enough that 'getrusage' sometimes reports 0 accumulated execution
> > time.
> >
> > As a result the 'delay_ms == 0' sanity check in the above commit
> > is triggering non-deterministically on such machines.
> >
> > The benchmarking loop intended to run multiple times, increasing
> > the 'iterations' value until the benchmark ran for > 500 ms, but
> > the sanity check doesn't allow this to happen.
> >
> > To fix it, we keep a loop counter and only run the sanity check
> > after we've been around the loop more than 5 times. At that point
> > the 'iterations' value is high enough that even with infrequent
> > updates of 'getrusage' accounting data on fast machines, we should
> > see a non-zero value.
> >
> > Reported-by: Thomas Huth <thuth@redhat.com>
> > Reported-by: Richard W.M. Jones <rjones@redhat.com>
> > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
>
> Is this a qemu-stable material (9.2)?
Yes, please include it.
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
prev parent reply other threads:[~2025-01-22 20:17 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-08 18:43 [PATCH] crypto: fix bogus error benchmarking pbkdf on fast machines Daniel P. Berrangé
2025-01-08 18:59 ` Richard W.M. Jones
2025-01-08 19:41 ` Thomas Huth
2025-01-22 19:19 ` Michael Tokarev
2025-01-22 20:16 ` Daniel P. Berrangé [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Z5FSBzXWMv-r8Ir-@redhat.com \
--to=berrange@redhat.com \
--cc=mjt@tls.msk.ru \
--cc=qemu-devel@nongnu.org \
--cc=qemu-stable@nongnu.org \
--cc=rjones@redhat.com \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.