Re: [PATCH v6] ath9k: sleep for less time when unregistering hwrng

From: Jason A. Donenfeld
Date: Tue Jun 28 2022 - 06:49:18 EST


On Tue, Jun 28, 2022 at 12:46 PM Jason A. Donenfeld <Jason@xxxxxxxxx> wrote:
>
> Hi Gregory,
>
> On Tue, Jun 28, 2022 at 3:39 AM Gregory Erwin <gregerwin256@xxxxxxxxx> wrote:
> >
> > On Mon, Jun 27, 2022 at 5:18 AM Toke Høiland-Jørgensen <toke@xxxxxxxxxx> wrote:
> > >
> > > "Jason A. Donenfeld" <Jason@xxxxxxxxx> writes:
> > >
> > > > Even though hwrng provides a `wait` parameter, it doesn't work very well
> > > > when waiting for a long time. There are numerous deadlocks that emerge
> > > > related to shutdown. Work around this API limitation by waiting for a
> > > > shorter amount of time and erroring more frequently. This commit also
> > > > prevents hwrng from splatting messages to dmesg when there's a timeout
> > > > and switches to using schedule_timeout_interruptible(), so that the
> > > > kthread can be stopped.
> > > >
> > > > Reported-by: Gregory Erwin <gregerwin256@xxxxxxxxx>
> > > > Tested-by: Gregory Erwin <gregerwin256@xxxxxxxxx>
> > > > Cc: Toke Høiland-Jørgensen <toke@xxxxxxxxxx>
> > > > Cc: Kalle Valo <kvalo@xxxxxxxxxx>
> > > > Cc: Rui Salvaterra <rsalvaterra@xxxxxxxxx>
> > > > Cc: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
> > > > Cc: stable@xxxxxxxxxxxxxxx
> > > > Fixes: fcd09c90c3c5 ("ath9k: use hw_random API instead of directly dumping into random.c")
> > > > Link: https://lore.kernel.org/all/CAO+Okf6ZJC5-nTE_EJUGQtd8JiCkiEHytGgDsFGTEjs0c00giw@xxxxxxxxxxxxxx/
> > > > Link: https://lore.kernel.org/lkml/CAO+Okf5k+C+SE6pMVfPf-d8MfVPVq4PO7EY8Hys_DVXtent3HA@xxxxxxxxxxxxxx/
> > > > Link: https://bugs.archlinux.org/task/75138
> > > > Signed-off-by: Jason A. Donenfeld <Jason@xxxxxxxxx>
> > >
> > > Gregory, care to take this version for a spin as well to double-check
> > > that it still resolves the issue? :)
> > >
> > > -Toke
> > >
> >
> > With patch v6, reads from /dev/hwrng block for 5-6s, during which 'ip link set
> > wlan0 down' will also block. Otherwise, 'ip link set wlan0 down' returns
> > immediately. Similarly, wiphy_suspend() consistently returns in under 10ms.
> >
> > Tested-by: Gregory Erwin <gregerwin256@xxxxxxxxx>
>
> Oh 5-6s... so it's actually worse. Yikes. Sounds like v4 might have
> been the better patch, then?

$ curl https://lore.kernel.org/lkml/20220627104955.534013-1-Jason@xxxxxxxxx/raw
| git am

That one, if you want to give it a spin and see if that 5-6s is back
to ~1s or less.

Jason