svn commit: r273958 - head/sys/dev/random

Mark R V Murray mark at grondar.org
Sun Nov 2 19:24:16 UTC 2014


> On 2 Nov 2014, at 19:20, Konstantin Belousov <kostikbel at gmail.com> wrote:
> 
> 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.

Hi

I don’t quite follow what you mean, but it sounds like you understand
the problem. Could you please explain with a bit more detail?

Thanks,

M
-- 
Mark R V Murray



More information about the svn-src-all mailing list