Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 2 Nov 2014 21:20:57 +0200
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Adrian Chadd <adrian@freebsd.org>
Cc:        "svn-src-head@freebsd.org" <svn-src-head@freebsd.org>, "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>, "src-committers@freebsd.org" <src-committers@freebsd.org>, Ian Lepore <ian@freebsd.org>, Mark R V Murray <mark@grondar.org>
Subject:   Re: svn commit: r273958 - head/sys/dev/random
Message-ID:  <20141102192057.GB53947@kib.kiev.ua>
In-Reply-To: <CAJ-VmomeOwE3LOpehhJ__G=FCoBDRXrrn%2BSfjwPFODts6YYHNQ@mail.gmail.com>
References:  <201411020201.sA221unt091493@svn.freebsd.org> <720EB74E-094A-43F3-8B1C-47BC7F6FECC3@grondar.org> <1414934579.17308.248.camel@revolution.hippie.lan> <6FB65828-6A79-4BDE-A9F7-BC472BA538CE@grondar.org> <CAJ-VmomeOwE3LOpehhJ__G=FCoBDRXrrn%2BSfjwPFODts6YYHNQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20141102192057.GB53947>