In the code I don't understand on what the wakeup operate nor on what the
blocking operate.

randomdev_unblock(void)
{
        if (!random_context.seeded) {
#ifndef __OSV__
                selwakeuppri(&random_context.rsel, PUSER);
#endif
                wakeup(&random_context);


random_context does not look like a wait condition it look strange.


On Fri, Oct 14, 2016 at 3:57 PM, Tomasz Grabiec <tgrab...@scylladb.com>
wrote:

>
>
> On Fri, Oct 14, 2016 at 3:39 PM, Benoît Canet <ben...@cloudius-systems.com
> > wrote:
>
>>
>> Hello list,
>>
>> In the process of porting go to OSv I noticed that the Go runtime
>> initialization stall half the time waiting in a read for /dev/urandom.
>>
>> The message OSv output is "random: blocking on read.".
>>
>> It then sometime proceeed to unblock itself a couple dozen of seconds
>> later.
>>
>> Does it ring a bell ? Is it expected behavior from /dev/urandom ?
>>
>
> It looks like entropy pool was depleted. Maybe no hardware entropy sources
> were detected and we were using only slow interrupt entropy harvesting.
>
> Another option is that you are using virtio-rng and entropy was depleted
> on your host. Check with `cat /proc/sys/kernel/random/entropy_avail`
>
> Which hypervisor are you running on?
>
> Can you show your debug console output?
>

-- 
You received this message because you are subscribed to the Google Groups "OSv 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to osv-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to