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