svn commit: r273958 - head/sys/dev/random
Konstantin Belousov
kostikbel at gmail.com
Sun Nov 2 19:21:03 UTC 2014
On Sun, Nov 02, 2014 at 11:05:27AM -0800, Adrian Chadd wrote:
> [snip all the conversation]
>
> Ok. There's still a problem that I can trigger by trying to Ctrl-C a
> process that's blocked reading for randomness. I'll try to chase up
> more details about and file a PR about it.
>
> The unfortunate part is that the kernel side stack trace of the
> offending / hung process isn't currently helpful. :(
>
>From what I see, signals are essentially ignored in the read code.
See random_adaptors.c:random_adaptor_read():
/* Sleep instead of going into a spin-frenzy */
tsleep(&random_adaptor, PUSER | PCATCH, "block", hz/10);
The error which would indicate the signal catch, is dropped. Also,
unbound sleep does not drop random_adaptor_lock, which means that
you cannot module which could provide some more randomness for you,
while any thread is stuck in read loop.
More information about the svn-src-all
mailing list