All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Paul Mackerras <paulus@samba.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Gleb Natapov <gleb@redhat.com>,
	Michael Ellerman <michael@ellerman.id.au>,
	linux-kernel@vger.kernel.org, agraf@suse.de, mpm@selenic.com,
	herbert@gondor.hengli.com.au, linuxppc-dev@ozlabs.org,
	kvm@vger.kernel.org, kvm-ppc@vger.kernel.org, tytso@mit.edu
Subject: Re: [PATCH 3/3] KVM: PPC: Book3S: Add support for hwrng found on some powernv systems
Date: Wed, 02 Oct 2013 08:46:43 +0000	[thread overview]
Message-ID: <524BDD73.3020106@redhat.com> (raw)
In-Reply-To: <20131002050940.GA25363@drongo>

Il 02/10/2013 07:09, Paul Mackerras ha scritto:
> On Tue, Oct 01, 2013 at 01:19:06PM +0200, Paolo Bonzini wrote:
> 
>> 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.

>> 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.

>> 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

WARNING: multiple messages have this Message-ID (diff)
From: Paolo Bonzini <pbonzini@redhat.com>
To: Paul Mackerras <paulus@samba.org>
Cc: tytso@mit.edu, kvm@vger.kernel.org,
	Gleb Natapov <gleb@redhat.com>,
	linuxppc-dev@ozlabs.org, linux-kernel@vger.kernel.org,
	kvm-ppc@vger.kernel.org, agraf@suse.de,
	herbert@gondor.hengli.com.au, mpm@selenic.com
Subject: Re: [PATCH 3/3] KVM: PPC: Book3S: Add support for hwrng found on some powernv systems
Date: Wed, 02 Oct 2013 10:46:43 +0200	[thread overview]
Message-ID: <524BDD73.3020106@redhat.com> (raw)
In-Reply-To: <20131002050940.GA25363@drongo>

Il 02/10/2013 07:09, Paul Mackerras ha scritto:
> On Tue, Oct 01, 2013 at 01:19:06PM +0200, Paolo Bonzini wrote:
> 
>> 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.

>> 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.

>> 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

WARNING: multiple messages have this Message-ID (diff)
From: Paolo Bonzini <pbonzini@redhat.com>
To: Paul Mackerras <paulus@samba.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Gleb Natapov <gleb@redhat.com>,
	Michael Ellerman <michael@ellerman.id.au>,
	linux-kernel@vger.kernel.org, agraf@suse.de, mpm@selenic.com,
	herbert@gondor.hengli.com.au, linuxppc-dev@ozlabs.org,
	kvm@vger.kernel.org, kvm-ppc@vger.kernel.org, tytso@mit.edu
Subject: Re: [PATCH 3/3] KVM: PPC: Book3S: Add support for hwrng found on some powernv systems
Date: Wed, 02 Oct 2013 10:46:43 +0200	[thread overview]
Message-ID: <524BDD73.3020106@redhat.com> (raw)
In-Reply-To: <20131002050940.GA25363@drongo>

Il 02/10/2013 07:09, Paul Mackerras ha scritto:
> On Tue, Oct 01, 2013 at 01:19:06PM +0200, Paolo Bonzini wrote:
> 
>> 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.

>> 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.

>> 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

  reply	other threads:[~2013-10-02  8:46 UTC|newest]

Thread overview: 146+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-26  6:31 [PATCH 1/3] powerpc: Implement arch_get_random_long/int() for powernv Michael Ellerman
2013-09-26  6:31 ` Michael Ellerman
2013-09-26  6:31 ` Michael Ellerman
2013-09-26  6:31 ` Michael Ellerman
2013-09-26  6:31 ` [PATCH 2/3] hwrng: Add a driver for the hwrng found in power7+ systems Michael Ellerman
2013-09-26  6:31   ` Michael Ellerman
2013-09-26  6:31   ` Michael Ellerman
2013-09-26  6:31   ` Michael Ellerman
2013-09-26  8:01   ` Benjamin Herrenschmidt
2013-09-26  8:01     ` Benjamin Herrenschmidt
2013-09-26  8:01     ` Benjamin Herrenschmidt
2013-10-01  8:25     ` Michael Ellerman
2013-10-01  8:25       ` Michael Ellerman
2013-10-01  8:25       ` Michael Ellerman
2013-09-26  6:31 ` [PATCH 3/3] KVM: PPC: Book3S: Add support for hwrng found on some powernv systems Michael Ellerman
2013-09-26  6:31   ` Michael Ellerman
2013-09-26  6:31   ` Michael Ellerman
2013-09-26  6:31   ` Michael Ellerman
2013-09-26  9:06   ` Paolo Bonzini
2013-09-26  9:06     ` Paolo Bonzini
2013-09-26  9:06     ` Paolo Bonzini
2013-09-26  9:06     ` Paolo Bonzini
2013-10-01  8:34     ` Michael Ellerman
2013-10-01  8:34       ` Michael Ellerman
2013-10-01  8:34       ` Michael Ellerman
2013-10-01  8:34       ` Michael Ellerman
2013-10-01  8:39       ` Gleb Natapov
2013-10-01  8:39         ` Gleb Natapov
2013-10-01  8:39         ` Gleb Natapov
2013-10-01  9:23         ` Paul Mackerras
2013-10-01  9:23           ` Paul Mackerras
2013-10-01  9:23           ` Paul Mackerras
2013-10-01  9:57           ` Gleb Natapov
2013-10-01  9:57             ` Gleb Natapov
2013-10-01  9:57             ` Gleb Natapov
2013-10-01 10:00           ` Alexander Graf
2013-10-01 10:00             ` Alexander Graf
2013-10-01 10:00             ` Alexander Graf
2013-10-01  9:38         ` Benjamin Herrenschmidt
2013-10-01  9:38           ` Benjamin Herrenschmidt
2013-10-01  9:38           ` Benjamin Herrenschmidt
2013-10-01 11:19           ` Paolo Bonzini
2013-10-01 11:19             ` Paolo Bonzini
2013-10-01 11:19             ` Paolo Bonzini
2013-10-01 21:44             ` Benjamin Herrenschmidt
2013-10-01 21:44               ` Benjamin Herrenschmidt
2013-10-01 21:44               ` Benjamin Herrenschmidt
2013-10-02  8:38               ` Paolo Bonzini
2013-10-02  8:38                 ` Paolo Bonzini
2013-10-02  8:38                 ` Paolo Bonzini
2013-10-02  5:09             ` Paul Mackerras
2013-10-02  5:09               ` Paul Mackerras
2013-10-02  5:09               ` Paul Mackerras
2013-10-02  8:46               ` Paolo Bonzini [this message]
2013-10-02  8:46                 ` Paolo Bonzini
2013-10-02  8:46                 ` Paolo Bonzini
2013-10-02  9:06                 ` Benjamin Herrenschmidt
2013-10-02  9:06                   ` Benjamin Herrenschmidt
2013-10-02  9:06                   ` Benjamin Herrenschmidt
2013-10-02  9:11                   ` Alexander Graf
2013-10-02  9:11                     ` Alexander Graf
2013-10-02  9:11                     ` Alexander Graf
2013-10-02  9:50                     ` Alexander Graf
2013-10-02  9:50                       ` Alexander Graf
2013-10-02  9:50                       ` Alexander Graf
2013-10-02 10:02                       ` Gleb Natapov
2013-10-02 10:02                         ` Gleb Natapov
2013-10-02 10:02                         ` Gleb Natapov
2013-10-02 13:57                         ` Michael Ellerman
2013-10-02 13:57                           ` Michael Ellerman
2013-10-02 13:57                           ` Michael Ellerman
2013-10-02 14:08                           ` Alexander Graf
2013-10-02 14:08                             ` Alexander Graf
2013-10-02 14:08                             ` Alexander Graf
2013-10-02 14:33                             ` Paolo Bonzini
2013-10-02 14:33                               ` Paolo Bonzini
2013-10-02 14:33                               ` Paolo Bonzini
2013-10-02 14:36                               ` Alexander Graf
2013-10-02 14:36                                 ` Alexander Graf
2013-10-02 14:36                                 ` Alexander Graf
2013-10-02 14:38                                 ` Paolo Bonzini
2013-10-02 14:38                                   ` Paolo Bonzini
2013-10-02 14:38                                   ` Paolo Bonzini
2013-10-02 22:45                                 ` Paul Mackerras
2013-10-02 22:45                                   ` Paul Mackerras
2013-10-02 22:45                                   ` Paul Mackerras
2013-10-03  5:48                                   ` Gleb Natapov
2013-10-03  5:48                                     ` Gleb Natapov
2013-10-03  5:48                                     ` Gleb Natapov
2013-10-03 10:06                                     ` Paul Mackerras
2013-10-03 10:06                                       ` Paul Mackerras
2013-10-03 10:06                                       ` Paul Mackerras
2013-10-03 12:08                                       ` Gleb Natapov
2013-10-03 12:08                                         ` Gleb Natapov
2013-10-03 12:08                                         ` Gleb Natapov
2013-10-02 14:37                               ` Gleb Natapov
2013-10-02 14:37                                 ` Gleb Natapov
2013-10-02 14:37                                 ` Gleb Natapov
2013-10-02 22:21                                 ` Benjamin Herrenschmidt
2013-10-02 22:21                                   ` Benjamin Herrenschmidt
2013-10-02 22:21                                   ` Benjamin Herrenschmidt
2013-10-03  6:08                                   ` Gleb Natapov
2013-10-03  6:08                                     ` Gleb Natapov
2013-10-03  6:08                                     ` Gleb Natapov
2013-10-02 22:13                             ` Benjamin Herrenschmidt
2013-10-02 22:13                               ` Benjamin Herrenschmidt
2013-10-02 22:13                               ` Benjamin Herrenschmidt
2013-10-02 14:10                           ` Gleb Natapov
2013-10-02 14:10                             ` Gleb Natapov
2013-10-02 14:10                             ` Gleb Natapov
2013-10-02 22:15                             ` Benjamin Herrenschmidt
2013-10-02 22:15                               ` Benjamin Herrenschmidt
2013-10-02 22:15                               ` Benjamin Herrenschmidt
2013-10-02 22:02                         ` Benjamin Herrenschmidt
2013-10-02 22:02                           ` Benjamin Herrenschmidt
2013-10-02 22:02                           ` Benjamin Herrenschmidt
2013-10-03  5:43                           ` Gleb Natapov
2013-10-03  5:43                             ` Gleb Natapov
2013-10-03  5:43                             ` Gleb Natapov
2013-10-03  7:22                             ` Benjamin Herrenschmidt
2013-10-03  7:22                               ` Benjamin Herrenschmidt
2013-10-03  7:22                               ` Benjamin Herrenschmidt
2013-10-02 22:07                         ` Benjamin Herrenschmidt
2013-10-02 22:07                           ` Benjamin Herrenschmidt
2013-10-02 22:07                           ` Benjamin Herrenschmidt
2013-10-03  6:28                           ` Gleb Natapov
2013-10-03  6:28                             ` Gleb Natapov
2013-10-03  6:28                             ` Gleb Natapov
2013-10-02 21:58                     ` Benjamin Herrenschmidt
2013-10-02 21:58                       ` Benjamin Herrenschmidt
2013-10-02 21:58                       ` Benjamin Herrenschmidt
2013-10-01  9:58       ` Paolo Bonzini
2013-10-01  9:58         ` Paolo Bonzini
2013-10-01  9:58         ` Paolo Bonzini
2013-10-01  9:58         ` Paolo Bonzini
2013-09-27 14:15   ` Anshuman Khandual
2013-09-27 14:27     ` Anshuman Khandual
2013-09-27 14:15     ` Anshuman Khandual
2013-09-27 14:15     ` Anshuman Khandual
2013-10-01  8:36     ` Michael Ellerman
2013-10-01  8:36       ` Michael Ellerman
2013-10-01  8:36       ` Michael Ellerman
2013-10-01  8:36       ` Michael Ellerman
2013-09-26  7:58 ` [PATCH 1/3] powerpc: Implement arch_get_random_long/int() for powernv Benjamin Herrenschmidt
2013-09-26  7:58   ` Benjamin Herrenschmidt
2013-09-26  7:58   ` Benjamin Herrenschmidt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=524BDD73.3020106@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=agraf@suse.de \
    --cc=benh@kernel.crashing.org \
    --cc=gleb@redhat.com \
    --cc=herbert@gondor.hengli.com.au \
    --cc=kvm-ppc@vger.kernel.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=michael@ellerman.id.au \
    --cc=mpm@selenic.com \
    --cc=paulus@samba.org \
    --cc=tytso@mit.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.