[Qemu-devel] [PATCH v3 0/3] rng-builtin: add an RNG backend that uses qemu_guest_getrandom()

Laurent Vivier posted 3 patches 4 years, 11 months ago
Test docker-mingw@fedora passed
Test docker-clang@ubuntu passed
Test checkpatch passed
Test asan passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20190510134203.24012-1-lvivier@redhat.com
Maintainers: Amit Shah <amit@kernel.org>, "Michael S. Tsirkin" <mst@redhat.com>
There is a newer version of this series
backends/Makefile.objs         |  2 +-
backends/rng-builtin.c         | 54 ++++++++++++++++++++++++++++++++++
backends/rng-random.c          |  2 +-
hw/virtio/virtio-rng.c         |  2 +-
include/hw/virtio/virtio-rng.h |  4 +--
include/sysemu/rng-builtin.h   | 17 +++++++++++
qemu-options.hx                |  9 +++++-
7 files changed, 84 insertions(+), 6 deletions(-)
create mode 100644 backends/rng-builtin.c
create mode 100644 include/sysemu/rng-builtin.h
[Qemu-devel] [PATCH v3 0/3] rng-builtin: add an RNG backend that uses qemu_guest_getrandom()
Posted by Laurent Vivier 4 years, 11 months ago
Add a new RNG backend using QEMU builtin getrandom function.

This patch applies on top of
    "[PATCH v5 00/24] Add qemu_getrandom and ARMv8.5-RNG etc"
Based-on: 20190510012458.22706-1-richard.henderson@linaro.org

v3: Include Kashyap's patch in the series
    Add a patch to change virtio-rng default backend to rng-builtin

v2: Update qemu-options.hx
    describe the new backend and specify virtio-rng uses the
    rng-random by default

Kashyap Chamarthy (1):
  VirtIO-RNG: Update default entropy source to `/dev/urandom`

Laurent Vivier (2):
  rng-builtin: add an RNG backend that uses qemu_guest_getrandom()
  virtio-rng: change default backend to rng-builtin

 backends/Makefile.objs         |  2 +-
 backends/rng-builtin.c         | 54 ++++++++++++++++++++++++++++++++++
 backends/rng-random.c          |  2 +-
 hw/virtio/virtio-rng.c         |  2 +-
 include/hw/virtio/virtio-rng.h |  4 +--
 include/sysemu/rng-builtin.h   | 17 +++++++++++
 qemu-options.hx                |  9 +++++-
 7 files changed, 84 insertions(+), 6 deletions(-)
 create mode 100644 backends/rng-builtin.c
 create mode 100644 include/sysemu/rng-builtin.h

-- 
2.20.1


Re: [Qemu-devel] [PATCH v3 0/3] rng-builtin: add an RNG backend that uses qemu_guest_getrandom()
Posted by Michael S. Tsirkin 4 years, 11 months ago
On Fri, May 10, 2019 at 03:42:00PM +0200, Laurent Vivier wrote:
> Add a new RNG backend using QEMU builtin getrandom function.
> 
> This patch applies on top of
>     "[PATCH v5 00/24] Add qemu_getrandom and ARMv8.5-RNG etc"
> Based-on: 20190510012458.22706-1-richard.henderson@linaro.org
> 
> v3: Include Kashyap's patch in the series
>     Add a patch to change virtio-rng default backend to rng-builtin
> 
> v2: Update qemu-options.hx
>     describe the new backend and specify virtio-rng uses the
>     rng-random by default
> 
> Kashyap Chamarthy (1):
>   VirtIO-RNG: Update default entropy source to `/dev/urandom`
> 
> Laurent Vivier (2):
>   rng-builtin: add an RNG backend that uses qemu_guest_getrandom()
>   virtio-rng: change default backend to rng-builtin


OK pls address Marku's comment on commit msg and I will merge.

>  backends/Makefile.objs         |  2 +-
>  backends/rng-builtin.c         | 54 ++++++++++++++++++++++++++++++++++
>  backends/rng-random.c          |  2 +-
>  hw/virtio/virtio-rng.c         |  2 +-
>  include/hw/virtio/virtio-rng.h |  4 +--
>  include/sysemu/rng-builtin.h   | 17 +++++++++++
>  qemu-options.hx                |  9 +++++-
>  7 files changed, 84 insertions(+), 6 deletions(-)
>  create mode 100644 backends/rng-builtin.c
>  create mode 100644 include/sysemu/rng-builtin.h
> 
> -- 
> 2.20.1

Re: [Qemu-devel] [PATCH v3 0/3] rng-builtin: add an RNG backend that uses qemu_guest_getrandom()
Posted by Laurent Vivier 4 years, 11 months ago
On 12/05/2019 20:21, Michael S. Tsirkin wrote:
> On Fri, May 10, 2019 at 03:42:00PM +0200, Laurent Vivier wrote:
>> Add a new RNG backend using QEMU builtin getrandom function.
>>
>> This patch applies on top of
>>      "[PATCH v5 00/24] Add qemu_getrandom and ARMv8.5-RNG etc"
>> Based-on: 20190510012458.22706-1-richard.henderson@linaro.org
>>
>> v3: Include Kashyap's patch in the series
>>      Add a patch to change virtio-rng default backend to rng-builtin
>>
>> v2: Update qemu-options.hx
>>      describe the new backend and specify virtio-rng uses the
>>      rng-random by default
>>
>> Kashyap Chamarthy (1):
>>    VirtIO-RNG: Update default entropy source to `/dev/urandom`
>>
>> Laurent Vivier (2):
>>    rng-builtin: add an RNG backend that uses qemu_guest_getrandom()
>>    virtio-rng: change default backend to rng-builtin
> 
> 
> OK pls address Marku's comment on commit msg and I will merge.

Kashyap,

as this patch is from you, do you agree?

If so, I can update the message and send a new version of the series (or 
you canr esend your patch alone if you prefer).

Thanks,
Laurent

Re: [Qemu-devel] [PATCH v3 0/3] rng-builtin: add an RNG backend that uses qemu_guest_getrandom()
Posted by Kashyap Chamarthy 4 years, 11 months ago
On Mon, May 13, 2019 at 08:36:23AM +0200, Laurent Vivier wrote:
> On 12/05/2019 20:21, Michael S. Tsirkin wrote:

[...]

> > > Kashyap Chamarthy (1):
> > >    VirtIO-RNG: Update default entropy source to `/dev/urandom`
> > > 
> > > Laurent Vivier (2):
> > >    rng-builtin: add an RNG backend that uses qemu_guest_getrandom()
> > >    virtio-rng: change default backend to rng-builtin
> > 
> > 
> > OK pls address Marku's comment on commit msg and I will merge.
> 
> Kashyap,
> 
> as this patch is from you, do you agree?

Yes.

> If so, I can update the message and send a new version of the series
> (or you canr esend your patch alone if you prefer).

Please go ahead and add it, the below is the text (from Dan/Markus):

    What about other OSes?
    ----------------------
    
    `/dev/urandom` exists and works on OS-X, FreeBSD, DragonFlyBSD, NetBSD
    and OpenBSD, which cover all the non-Linux platforms we explicitly
    support, aside from Windows.
    
    On Windows `/dev/random` doesn't work either so we don't regress.
    This is actually another argument in favour of using the newly
    proposed 'rng-builtin' backend by default, as that will work on
    Windows.

Thanks!

[...]

-- 
/kashyap

Re: [Qemu-devel] [PATCH v3 0/3] rng-builtin: add an RNG backend that uses qemu_guest_getrandom()
Posted by Markus Armbruster 4 years, 11 months ago
Kashyap Chamarthy <kchamart@redhat.com> writes:

> On Mon, May 13, 2019 at 08:36:23AM +0200, Laurent Vivier wrote:
>> On 12/05/2019 20:21, Michael S. Tsirkin wrote:
>
> [...]
>
>> > > Kashyap Chamarthy (1):
>> > >    VirtIO-RNG: Update default entropy source to `/dev/urandom`
>> > > 
>> > > Laurent Vivier (2):
>> > >    rng-builtin: add an RNG backend that uses qemu_guest_getrandom()
>> > >    virtio-rng: change default backend to rng-builtin
>> > 
>> > 
>> > OK pls address Marku's comment on commit msg and I will merge.
>> 
>> Kashyap,
>> 
>> as this patch is from you, do you agree?
>
> Yes.
>
>> If so, I can update the message and send a new version of the series
>> (or you canr esend your patch alone if you prefer).
>
> Please go ahead and add it, the below is the text (from Dan/Markus):
>
>     What about other OSes?
>     ----------------------
>     
>     `/dev/urandom` exists and works on OS-X, FreeBSD, DragonFlyBSD, NetBSD
>     and OpenBSD, which cover all the non-Linux platforms we explicitly
>     support, aside from Windows.
>     
>     On Windows `/dev/random` doesn't work either so we don't regress.
>     This is actually another argument in favour of using the newly
>     proposed 'rng-builtin' backend by default, as that will work on
>     Windows.

Additionally, please insert "on Linux" into the first paragraph, like
this:

  When QEMU exposes a VirtIO-RNG device to the guest, that device needs a
  source of entropy, and that source needs to be "non-blocking", like
  `/dev/urandom`.  However, currently QEMU defaults to the problematic
  `/dev/random`, which on Linux is "blocking" (as in, it waits until
  sufficient entropy is available).