Standardizing an MSR or other hypercall to get an RNG seed?

Nakajima, Jun
2014-09-18T17:42:09Z

On Thu, Sep 18, 2014 at 10:20 AM, KY Srinivasan <kys at microsoft.com>
wrote:
>
>
>> -----Original Message-----
>> From: Paolo Bonzini [mailto:paolo.bonzini at gmail.com] On Behalf Of
Paolo
>> Bonzini
>> Sent: Thursday, September 18, 2014 10:18 AM
>> To: Nakajima, Jun; KY Srinivasan
>> Cc: Mathew John; Theodore Ts'o; John Starks; kvm list; Gleb
Natapov; Niels
>> Ferguson; Andy Lutomirski; David Hepkin; H. Peter Anvin; Jake Oshins;
Linux
>> Virtualization
>> Subject: Re: Standardizing an MSR or other hypercall to get an RNG
seed?
>>
>> Il 18/09/2014 19:13, Nakajima, Jun ha scritto:
>> > In terms of the address for the MSR, I suggest that you choose one
>> > from the range between 40000000H - 400000FFH. The SDM (35.1
>> > ARCHITECTURAL MSRS) says "All existing and future processors
will not
>> > implement any features using any MSR in this range." Hyper-V
already
>> > defines many synthetic MSRs in this range, and I think it would be
>> > reasonable for you to pick one for this to avoid a conflict?
>>
>> KVM is not using any MSR in that range.
>>
>> However, I think it would be better to have the MSR (and perhaps CPUID)
>> outside the hypervisor-reserved ranges, so that it becomes
architecturally
>> defined.  In some sense it is similar to the HYPERVISOR CPUID feature.
>
> Yes, given that we want this to be hypervisor agnostic.
>

Actually, that MSR address range has been reserved for that purpose, along with:
- CPUID.EAX=1 -> ECX bit 31 (always returns 0 on bare metal)
- CPUID.EAX=4000_00xxH leaves (i.e. HYPERVISOR CPUID)


--
Jun
Intel Open Source Technology Center