[PATCH v4 00/11] rerandomize RNG seeds on reboot and handle record&replay

Jason A. Donenfeld posted 11 patches 1 year, 6 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20221025004327.568476-1-Jason@zx2c4.com
Maintainers: "Cédric Le Goater" <clg@kaod.org>, Peter Maydell <peter.maydell@linaro.org>, Andrew Jeffery <andrew@aj.id.au>, Joel Stanley <joel@jms.id.au>, Richard Henderson <richard.henderson@linaro.org>, Helge Deller <deller@gmx.de>, Sergio Lopez <slp@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, Eduardo Habkost <eduardo@habkost.net>, "Michael S. Tsirkin" <mst@redhat.com>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Laurent Vivier <laurent@vivier.eu>, Paul Burton <paulburton@kernel.org>, Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Aurelien Jarno <aurelien@aurel32.net>, Stafford Horne <shorne@gmail.com>, BALATON Zoltan <balaton@eik.bme.hu>, Daniel Henrique Barboza <danielhb413@gmail.com>, David Gibson <david@gibson.dropbear.id.au>, Greg Kurz <groug@kaod.org>, Palmer Dabbelt <palmer@dabbelt.com>, Alistair Francis <alistair.francis@wdc.com>, Bin Meng <bin.meng@windriver.com>, Yoshinori Sato <ysato@users.sourceforge.jp>, David Hildenbrand <david@redhat.com>, Halil Pasic <pasic@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>, Eric Farman <farman@linux.ibm.com>, Cornelia Huck <cohuck@redhat.com>, Thomas Huth <thuth@redhat.com>, Yanan Wang <wangyanan55@huawei.com>, Juan Quintela <quintela@redhat.com>, "Dr. David Alan Gilbert" <dgilbert@redhat.com>, Eric Blake <eblake@redhat.com>, Markus Armbruster <armbru@redhat.com>
hw/arm/aspeed.c              |  4 ++--
hw/arm/boot.c                |  2 ++
hw/arm/mps2-tz.c             |  4 ++--
hw/core/reset.c              | 15 ++++++++++++++-
hw/hppa/machine.c            |  4 ++--
hw/i386/microvm.c            |  4 ++--
hw/i386/pc.c                 |  6 +++---
hw/i386/x86.c                |  2 +-
hw/m68k/q800.c               | 33 +++++++++++++--------------------
hw/m68k/virt.c               | 20 +++++++++++---------
hw/mips/boston.c             |  3 +++
hw/mips/malta.c              | 25 +++++++++++++++++++++++++
hw/openrisc/boot.c           |  3 +++
hw/ppc/pegasos2.c            |  4 ++--
hw/ppc/pnv.c                 |  4 ++--
hw/ppc/spapr.c               |  4 ++--
hw/riscv/boot.c              |  3 +++
hw/rx/rx-gdbsim.c            |  3 +++
hw/s390x/s390-virtio-ccw.c   |  4 ++--
include/hw/boards.h          |  2 +-
include/sysemu/device_tree.h |  9 +++++++++
include/sysemu/reset.h       |  5 ++++-
migration/savevm.c           |  2 +-
qapi/run-state.json          |  5 ++++-
softmmu/device_tree.c        | 21 +++++++++++++++++++++
softmmu/runstate.c           | 11 ++++++++---
26 files changed, 145 insertions(+), 57 deletions(-)
[PATCH v4 00/11] rerandomize RNG seeds on reboot and handle record&replay
Posted by Jason A. Donenfeld 1 year, 6 months ago
When the system reboots, the rng seed that QEMU passes should be
re-randomized, so that the new boot gets a new seed. This series wires
that up for FDT.

Then, since the record&replay subsystem makes use of reset as well, we
add a new reset cause for record&replay, so that we can avoid
re-randomizing in these cases.

Version 4 prevents the new reset type from leaking over QAPI, documents
this alongside which version it was introduced, and adds mips and m68k
machine types to the queue.

Jason A. Donenfeld (11):
  reset: allow registering handlers that aren't called by snapshot
    loading
  device-tree: add re-randomization helper function
  x86: do not re-randomize RNG seed on snapshot load
  arm: re-randomize rng-seed on reboot
  riscv: re-randomize rng-seed on reboot
  m68k/virt: do not re-randomize RNG seed on snapshot load
  m68k/q800: do not re-randomize RNG seed on snapshot load
  mips/boston: re-randomize rng-seed on reboot
  mips/malta: pass RNG seed via env var and re-randomize on reboot
  openrisc: re-randomize rng-seed on reboot
  rx: re-randomize rng-seed on reboot

 hw/arm/aspeed.c              |  4 ++--
 hw/arm/boot.c                |  2 ++
 hw/arm/mps2-tz.c             |  4 ++--
 hw/core/reset.c              | 15 ++++++++++++++-
 hw/hppa/machine.c            |  4 ++--
 hw/i386/microvm.c            |  4 ++--
 hw/i386/pc.c                 |  6 +++---
 hw/i386/x86.c                |  2 +-
 hw/m68k/q800.c               | 33 +++++++++++++--------------------
 hw/m68k/virt.c               | 20 +++++++++++---------
 hw/mips/boston.c             |  3 +++
 hw/mips/malta.c              | 25 +++++++++++++++++++++++++
 hw/openrisc/boot.c           |  3 +++
 hw/ppc/pegasos2.c            |  4 ++--
 hw/ppc/pnv.c                 |  4 ++--
 hw/ppc/spapr.c               |  4 ++--
 hw/riscv/boot.c              |  3 +++
 hw/rx/rx-gdbsim.c            |  3 +++
 hw/s390x/s390-virtio-ccw.c   |  4 ++--
 include/hw/boards.h          |  2 +-
 include/sysemu/device_tree.h |  9 +++++++++
 include/sysemu/reset.h       |  5 ++++-
 migration/savevm.c           |  2 +-
 qapi/run-state.json          |  5 ++++-
 softmmu/device_tree.c        | 21 +++++++++++++++++++++
 softmmu/runstate.c           | 11 ++++++++---
 26 files changed, 145 insertions(+), 57 deletions(-)

-- 
2.38.1
Re: [PATCH v4 00/11] rerandomize RNG seeds on reboot and handle record&replay
Posted by Peter Maydell 1 year, 6 months ago
On Tue, 25 Oct 2022 at 01:43, Jason A. Donenfeld <Jason@zx2c4.com> wrote:
>
> When the system reboots, the rng seed that QEMU passes should be
> re-randomized, so that the new boot gets a new seed. This series wires
> that up for FDT.
>
> Then, since the record&replay subsystem makes use of reset as well, we
> add a new reset cause for record&replay, so that we can avoid
> re-randomizing in these cases.
>
> Version 4 prevents the new reset type from leaking over QAPI, documents
> this alongside which version it was introduced, and adds mips and m68k
> machine types to the queue.
>
> Jason A. Donenfeld (11):
>   reset: allow registering handlers that aren't called by snapshot
>     loading
>   device-tree: add re-randomization helper function
>   x86: do not re-randomize RNG seed on snapshot load
>   arm: re-randomize rng-seed on reboot
>   riscv: re-randomize rng-seed on reboot
>   m68k/virt: do not re-randomize RNG seed on snapshot load
>   m68k/q800: do not re-randomize RNG seed on snapshot load
>   mips/boston: re-randomize rng-seed on reboot
>   mips/malta: pass RNG seed via env var and re-randomize on reboot
>   openrisc: re-randomize rng-seed on reboot
>   rx: re-randomize rng-seed on reboot

Hi; I've taken all of these except the mips/malta patch into
target-arm.next. I have some comments on that one but I
don't see any reason to hold up the rest of these while we
sort those out.

thanks
-- PMM
Re: [PATCH v4 00/11] rerandomize RNG seeds on reboot and handle record&replay
Posted by Jason A. Donenfeld 1 year, 6 months ago
On Tue, Oct 25, 2022 at 05:39:27PM +0100, Peter Maydell wrote:
> On Tue, 25 Oct 2022 at 01:43, Jason A. Donenfeld <Jason@zx2c4.com> wrote:
> >
> > When the system reboots, the rng seed that QEMU passes should be
> > re-randomized, so that the new boot gets a new seed. This series wires
> > that up for FDT.
> >
> > Then, since the record&replay subsystem makes use of reset as well, we
> > add a new reset cause for record&replay, so that we can avoid
> > re-randomizing in these cases.
> >
> > Version 4 prevents the new reset type from leaking over QAPI, documents
> > this alongside which version it was introduced, and adds mips and m68k
> > machine types to the queue.
> >
> > Jason A. Donenfeld (11):
> >   reset: allow registering handlers that aren't called by snapshot
> >     loading
> >   device-tree: add re-randomization helper function
> >   x86: do not re-randomize RNG seed on snapshot load
> >   arm: re-randomize rng-seed on reboot
> >   riscv: re-randomize rng-seed on reboot
> >   m68k/virt: do not re-randomize RNG seed on snapshot load
> >   m68k/q800: do not re-randomize RNG seed on snapshot load
> >   mips/boston: re-randomize rng-seed on reboot
> >   mips/malta: pass RNG seed via env var and re-randomize on reboot
> >   openrisc: re-randomize rng-seed on reboot
> >   rx: re-randomize rng-seed on reboot
> 
> Hi; I've taken all of these except the mips/malta patch into
> target-arm.next. I have some comments on that one but I
> don't see any reason to hold up the rest of these while we
> sort those out.

Too bad. Philippe does not respond to my emails, so no discussion has
been possible. If you or someone more responsive would like to take over
in that discussion, that'd be great. Let's talk.

Jason