On 06/08/2015 14:05, Thomas Huth wrote:
> On 06/08/15 13:26, Laurent Vivier wrote:
>> Hi,
>>
>> As "/dev/random" can be blocking perhaps it is possible/better to use
>> the QEMU rng backend instead ?
> 
> Actually, I tried to use the rng backends first ... but they turned out
> to be horrible for being used in a synchronous call like I need here:
> You've got to install a callback function which is called at a "random"
> point in time when some data becomes available - and it is even called
> with less bytes than you requested! (i.e. I requested 8 bytes, but the
> callback got only called with 6 bytes). So to use it, I'd have to
> introduce a ring buffer or something similar to query enough random data
> in advance - and when it runs empty, the H_RANDOM hypercall would need
> to block again anyway.
> 
> So instead of introducing a hard-to-understand-and-maintain "monster
> wrapper" around the rng backend functions, I think the short and easy
> understandable qemu_random() implementation in this patch here is the
> better choice.
> 
> And looking at https://patchwork.ozlabs.org/patch/497062/ I think it
> also should not hurt too much that qemu_random() might be slow here
> since the real hardware number generator is apparently also not very fast.

It seems a good choice...

Why do you use buffered file descriptor, fopen/fread/fclose instead of
open/read/close ?

Laurent

Reply via email to