Re: [PATCH v5 0/5] random,x86,kvm: Rework arch RNG seeds and get some from kvm

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Jul 23, 2014 at 9:57 PM, Andy Lutomirski <luto@xxxxxxxxxxxxxx> wrote:
> This introduces and uses a very simple synchronous mechanism to get
> /dev/urandom-style bits appropriate for initial KVM PV guest RNG
> seeding.
>
> It also re-works the way that architectural random data is fed into
> random.c's pools.  I added a new arch hook called arch_get_rng_seed.
> The default implementation is more or less the same as the current
> code, except that random_get_entropy is now called unconditionally.
>
> x86 gets a custom arch_get_rng_seed.  It will use KVM_GET_RNG_SEED
> if available, and, if it does anything, it will log the number of
> bits collected from each available architectural source.  If more
> paravirt seed sources show up, it will be a natural place to add
> them.
>
> I sent the corresponding kvm-unit-tests and qemu changes separately.

What's the status of this series?  I assume that it's too late for at
least patches 2-5 to make it into 3.17.

--Andy

>
> Changes from v4:
>  - Got rid of the RDRAND behavior change.  If this series is accepted,
>    I may resend it separately, but I think it's an unrelated issue.
>  - Fix up the changelog entries -- I misunderstood how the old code
>    worked.
>  - Avoid lots of failed attempts to use KVM_GET_RNG_SEED if it's not
>    available.
>
> Changes from v3:
>  - Other than KASLR, the guest pieces are completely rewritten.
>    Patches 2-4 have essentially nothing in common with v2.
>
> Changes from v2:
>  - Bisection fix (patch 2 had a misplaced brace).  The final states is
>    identical to that of v2.
>  - Improve the 0/5 description a little bit.
>
> Changes from v1:
>  - Split patches 2 and 3
>  - Log all arch sources in init_std_data
>  - Fix the 32-bit kaslr build
>
> Andy Lutomirski (5):
>   x86,kvm: Add MSR_KVM_GET_RNG_SEED and a matching feature bit
>   random: Add and use arch_get_rng_seed
>   x86,random: Add an x86 implementation of arch_get_rng_seed
>   x86,random,kvm: Use KVM_GET_RNG_SEED in arch_get_rng_seed
>   x86,kaslr: Use MSR_KVM_GET_RNG_SEED for KASLR if available
>
>  Documentation/virtual/kvm/cpuid.txt  |  3 ++
>  arch/x86/Kconfig                     |  4 ++
>  arch/x86/boot/compressed/aslr.c      | 27 +++++++++++++
>  arch/x86/include/asm/archrandom.h    |  6 +++
>  arch/x86/include/asm/kvm_guest.h     |  9 +++++
>  arch/x86/include/asm/processor.h     | 21 ++++++++--
>  arch/x86/include/uapi/asm/kvm_para.h |  2 +
>  arch/x86/kernel/Makefile             |  2 +
>  arch/x86/kernel/archrandom.c         | 74 ++++++++++++++++++++++++++++++++++++
>  arch/x86/kernel/kvm.c                | 10 +++++
>  arch/x86/kvm/cpuid.c                 |  3 +-
>  arch/x86/kvm/x86.c                   |  4 ++
>  drivers/char/random.c                | 14 +++++--
>  include/linux/random.h               | 40 +++++++++++++++++++
>  14 files changed, 212 insertions(+), 7 deletions(-)
>  create mode 100644 arch/x86/kernel/archrandom.c
>
> --
> 1.9.3
>



-- 
Andy Lutomirski
AMA Capital Management, LLC
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux