Re: [PATCH 3/3] KVM: PPC: Book3S: Add support for hwrng found on some powernv systems
From: Paolo Bonzini <pbonzini@redhat.com>
Date: 2013-10-02 08:46:33
Also in:
kvm, lkml
Il 02/10/2013 07:09, Paul Mackerras ha scritto:
On Tue, Oct 01, 2013 at 01:19:06PM +0200, Paolo Bonzini wrote:quoted
Anyhow, I would like to know more about this hwrng and hypercall. Does the hwrng return random numbers (like rdrand) or real entropy (like rdseed that Intel will add in Broadwell)? What about the hypercall?Well, firstly, your terminology is inaccurate. Real entropy will give you random numbers. I think when you say "random numbers" you actually mean "pseudo-random numbers".
Yes---I meant pseudo-random numbers where the generator is periodically seeded by a random number.
Secondly, the RNG produces real entropy.
Good to know, thanks.
Not sure why they are particularly "precious"; we get 64 bits per microsecond whether we use them or not. What are you suggesting arch_get_random_long() should do instead?
If you are running rngd, there is no need to have arch_get_random_long() at all.
quoted
3) If the hypercall returns random numbers, then it is a pretty braindead interface since returning 8 bytes at a time limits the throughput to a handful of MB/s (compare to 200 MB/sec for x86 rdrand). But more important: in this case drivers/char/hw_random/pseries-rng.c is completely broken and insecure, just like patch 2 in case (1) above.Assuming that by "random numbers" you actually mean "pseudo-random numbers", then this doesn't apply.
Indeed.
quoted
4) If the hypercall returns entropy (same as virtio-rng), the same considerations on speed apply. If you can only produce entropy at say 1 MB/s (so reading 8 bytes take 8 microseconds---which is actually very fast), it doesn't matter that much to spend 7 microseconds on a userspace roundtrip. It's going to be only half the speed of bare metal, not 100 times slower.8 bytes takes at most 1 microsecond, so the round-trip to userspace is definitely noticeable.
Thanks. Any chance you can give some numbers of a kernel hypercall and a userspace hypercall on Power, so we have actual data? For example a hypercall that returns H_PARAMETER as soon as possible. Paolo