search for: kvmkvmkvm

Displaying 20 results from an estimated 43 matches for "kvmkvmkvm".

2014 Sep 19
4
Standardizing an MSR or other hypercall to get an RNG seed?
...eter Anvin wrote: > On 09/19/2014 09:37 AM, Gleb Natapov wrote: > > > > Linux detects what hypervior it runs on very early > > Not anywhere close to early enough. We're talking for uses like kASLR. > Still to early to do: h = cpuid(HYPERVIOR_SIGNATURE) if (h == KVMKVMKVM) { if (cpuid(kvm_features) & kvm_rnd) rdmsr(kvm_rnd) else (h == HyperV) { if (cpuid(hv_features) & hv_rnd) rdmsr(hv_rnd) else (h == XenXenXen) { if (cpuid(xen_features) & xen_rnd) rdmsr(xen_rnd) } ? -- Gleb.
2014 Sep 19
4
Standardizing an MSR or other hypercall to get an RNG seed?
...eter Anvin wrote: > On 09/19/2014 09:37 AM, Gleb Natapov wrote: > > > > Linux detects what hypervior it runs on very early > > Not anywhere close to early enough. We're talking for uses like kASLR. > Still to early to do: h = cpuid(HYPERVIOR_SIGNATURE) if (h == KVMKVMKVM) { if (cpuid(kvm_features) & kvm_rnd) rdmsr(kvm_rnd) else (h == HyperV) { if (cpuid(hv_features) & hv_rnd) rdmsr(hv_rnd) else (h == XenXenXen) { if (cpuid(xen_features) & xen_rnd) rdmsr(xen_rnd) } ? -- Gleb.
2014 Sep 19
3
Standardizing an MSR or other hypercall to get an RNG seed?
...gt; > >>> Linux detects what hypervior it runs on very early > >> > >> Not anywhere close to early enough. We're talking for uses like kASLR. > >> > > Still to early to do: > > > > h = cpuid(HYPERVIOR_SIGNATURE) > > if (h == KVMKVMKVM) { > > if (cpuid(kvm_features) & kvm_rnd) > > rdmsr(kvm_rnd) > > else (h == HyperV) { > > if (cpuid(hv_features) & hv_rnd) > > rdmsr(hv_rnd) > > else (h == XenXenXen) { > > if (cpuid(xen_features) & xen_...
2014 Sep 19
3
Standardizing an MSR or other hypercall to get an RNG seed?
...gt; > >>> Linux detects what hypervior it runs on very early > >> > >> Not anywhere close to early enough. We're talking for uses like kASLR. > >> > > Still to early to do: > > > > h = cpuid(HYPERVIOR_SIGNATURE) > > if (h == KVMKVMKVM) { > > if (cpuid(kvm_features) & kvm_rnd) > > rdmsr(kvm_rnd) > > else (h == HyperV) { > > if (cpuid(hv_features) & hv_rnd) > > rdmsr(hv_rnd) > > else (h == XenXenXen) { > > if (cpuid(xen_features) & xen_...
2014 Sep 18
4
Standardizing an MSR or other hypercall to get an RNG seed?
...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) I don't know whether this is documented anywhere, but Linux tries to detect a hypervisor by searching CPUID leaves 0x400xyz00 for "KVMKVMKVM\0\0\0", so at least Linux can handle the KVM leaves being in a somewhat variable location. Do we consider this mechanism to work across all hypervisors and guests? That is, could we put something like "CrossHVPara\0" somewhere in that range, where each hypervisor would be free to d...
2014 Sep 18
4
Standardizing an MSR or other hypercall to get an RNG seed?
...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) I don't know whether this is documented anywhere, but Linux tries to detect a hypervisor by searching CPUID leaves 0x400xyz00 for "KVMKVMKVM\0\0\0", so at least Linux can handle the KVM leaves being in a somewhat variable location. Do we consider this mechanism to work across all hypervisors and guests? That is, could we put something like "CrossHVPara\0" somewhere in that range, where each hypervisor would be free to d...
2017 Jun 06
1
vendor_id state='off' not working as expected
...ish as a benchmark tool. https://github.com/a0rtega/pafish I have <hyperv><vendor_id state='off'/></hyperv> defined in a Windows 7 domain on Ubuntu 17.10, but for some reason this just changes the hypervisor vendor to "Microsoft Hv" instead of the default "KVMKVMKVM" vendor. How can I remove the hypervisor vendor completely?
2014 Sep 19
2
Standardizing an MSR or other hypercall to get an RNG seed?
...uns on very early > >>>> > >>>> Not anywhere close to early enough. We're talking for uses like kASLR. > >>>> > >>> Still to early to do: > >>> > >>> h = cpuid(HYPERVIOR_SIGNATURE) > >>> if (h == KVMKVMKVM) { > >>> if (cpuid(kvm_features) & kvm_rnd) > >>> rdmsr(kvm_rnd) > >>> else (h == HyperV) { > >>> if (cpuid(hv_features) & hv_rnd) > >>> rdmsr(hv_rnd) > >>> else (h == XenXenXen) { &g...
2014 Sep 19
2
Standardizing an MSR or other hypercall to get an RNG seed?
...uns on very early > >>>> > >>>> Not anywhere close to early enough. We're talking for uses like kASLR. > >>>> > >>> Still to early to do: > >>> > >>> h = cpuid(HYPERVIOR_SIGNATURE) > >>> if (h == KVMKVMKVM) { > >>> if (cpuid(kvm_features) & kvm_rnd) > >>> rdmsr(kvm_rnd) > >>> else (h == HyperV) { > >>> if (cpuid(hv_features) & hv_rnd) > >>> rdmsr(hv_rnd) > >>> else (h == XenXenXen) { &g...
2014 Sep 19
3
Standardizing an MSR or other hypercall to get an RNG seed?
...>>>> Not anywhere close to early enough. We're talking for uses like kASLR. > >> >>>> > >> >>> Still to early to do: > >> >>> > >> >>> h = cpuid(HYPERVIOR_SIGNATURE) > >> >>> if (h == KVMKVMKVM) { > >> >>> if (cpuid(kvm_features) & kvm_rnd) > >> >>> rdmsr(kvm_rnd) > >> >>> else (h == HyperV) { > >> >>> if (cpuid(hv_features) & hv_rnd) > >> >>> rdmsr(hv_rnd) &gt...
2014 Sep 19
3
Standardizing an MSR or other hypercall to get an RNG seed?
...>>>> Not anywhere close to early enough. We're talking for uses like kASLR. > >> >>>> > >> >>> Still to early to do: > >> >>> > >> >>> h = cpuid(HYPERVIOR_SIGNATURE) > >> >>> if (h == KVMKVMKVM) { > >> >>> if (cpuid(kvm_features) & kvm_rnd) > >> >>> rdmsr(kvm_rnd) > >> >>> else (h == HyperV) { > >> >>> if (cpuid(hv_features) & hv_rnd) > >> >>> rdmsr(hv_rnd) &gt...
2010 Jun 29
1
[PATCH] virt-what.in: Added VMware virt detection using cpuid in wrapper script
...-# Check for QEMU/KVM. + if [ ! "$is_xen" ]; then + # Disable this test if we know this is Xen already, because Xen + # uses QEMU for its device model. + + if grep -q 'QEMU' /proc/cpuinfo; then + if [ "$cpuid" = "KVMKVMKVM" ]; then + echo kvm + exit 0 + else + echo qemu + exit 0 + fi + fi + fi -if [ ! "$is_xen" ]; then - # Disable this test if we know this is Xen already, bec...
2010 Jun 29
1
[PATCH] virt-what.in: Added VMware virt detection using cpuid in wrapper script
...-# Check for QEMU/KVM. + if [ ! "$is_xen" ]; then + # Disable this test if we know this is Xen already, because Xen + # uses QEMU for its device model. + + if grep -q 'QEMU' /proc/cpuinfo; then + if [ "$cpuid" = "KVMKVMKVM" ]; then + echo kvm + exit 0 + else + echo qemu + exit 0 + fi + fi + fi -if [ ! "$is_xen" ]; then - # Disable this test if we know this is Xen already, bec...
2016 Mar 29
1
[PATCH 02/10] x86/cpufeature: Kill cpu_has_hypervisor
...rch/x86/kernel/kvm.c @@ -522,7 +522,7 @@ static noinline uint32_t __kvm_cpuid_base(void) if (boot_cpu_data.cpuid_level < 0) return 0; /* So we don't blow up on old processors */ - if (cpu_has_hypervisor) + if (boot_cpu_has(X86_FEATURE_HYPERVISOR)) return hypervisor_cpuid_base("KVMKVMKVM\0\0\0", 0); return 0; diff --git a/drivers/staging/unisys/visorbus/visorchipset.c b/drivers/staging/unisys/visorbus/visorchipset.c index 5fbda7b218c7..9cf4f8463c4e 100644 --- a/drivers/staging/unisys/visorbus/visorchipset.c +++ b/drivers/staging/unisys/visorbus/visorchipset.c @@ -2425,7 +2...
2016 Mar 29
1
[PATCH 02/10] x86/cpufeature: Kill cpu_has_hypervisor
...rch/x86/kernel/kvm.c @@ -522,7 +522,7 @@ static noinline uint32_t __kvm_cpuid_base(void) if (boot_cpu_data.cpuid_level < 0) return 0; /* So we don't blow up on old processors */ - if (cpu_has_hypervisor) + if (boot_cpu_has(X86_FEATURE_HYPERVISOR)) return hypervisor_cpuid_base("KVMKVMKVM\0\0\0", 0); return 0; diff --git a/drivers/staging/unisys/visorbus/visorchipset.c b/drivers/staging/unisys/visorbus/visorchipset.c index 5fbda7b218c7..9cf4f8463c4e 100644 --- a/drivers/staging/unisys/visorbus/visorchipset.c +++ b/drivers/staging/unisys/visorbus/visorchipset.c @@ -2425,7 +2...
2014 Oct 29
11
[RFC] Hypervisor RNG and enumeration
...01H.i.EDX are the signature. * CPUID.4F000001H.i.EAX is the location. CPUID with EAX = 0x4F000001 and ECX >= N MUST return all zeros. To the extent that the hypervisor prefers a given interface, it should specify that interface earlier in the list. For example, KVM might place its "KVMKVMKVM" signature first in the list to indicate that it should be used by guests in preference to other supported interfaces. Other hypervisors would likely use a different order. The exact semantics of the ordering of the list is beyond the scope of this specification. CPUID leaf 4F000002H: misce...
2014 Oct 29
11
[RFC] Hypervisor RNG and enumeration
...01H.i.EDX are the signature. * CPUID.4F000001H.i.EAX is the location. CPUID with EAX = 0x4F000001 and ECX >= N MUST return all zeros. To the extent that the hypervisor prefers a given interface, it should specify that interface earlier in the list. For example, KVM might place its "KVMKVMKVM" signature first in the list to indicate that it should be used by guests in preference to other supported interfaces. Other hypervisors would likely use a different order. The exact semantics of the ordering of the list is beyond the scope of this specification. CPUID leaf 4F000002H: misce...
2014 Sep 18
5
Standardizing an MSR or other hypercall to get an RNG seed?
...EAX=1 -> ECX bit 31 (always returns 0 on bare metal) >> > - CPUID.EAX=4000_00xxH leaves (i.e. HYPERVISOR CPUID) >> >> I don't know whether this is documented anywhere, but Linux tries to >> detect a hypervisor by searching CPUID leaves 0x400xyz00 for >> "KVMKVMKVM\0\0\0", so at least Linux can handle the KVM leaves being >> in a somewhat variable location. >> >> Do we consider this mechanism to work across all hypervisors and >> guests? That is, could we put something like "CrossHVPara\0" >> somewhere in that ran...
2014 Sep 18
5
Standardizing an MSR or other hypercall to get an RNG seed?
...EAX=1 -> ECX bit 31 (always returns 0 on bare metal) >> > - CPUID.EAX=4000_00xxH leaves (i.e. HYPERVISOR CPUID) >> >> I don't know whether this is documented anywhere, but Linux tries to >> detect a hypervisor by searching CPUID leaves 0x400xyz00 for >> "KVMKVMKVM\0\0\0", so at least Linux can handle the KVM leaves being >> in a somewhat variable location. >> >> Do we consider this mechanism to work across all hypervisors and >> guests? That is, could we put something like "CrossHVPara\0" >> somewhere in that ran...
2014 Aug 27
0
GET_RNG_SEED hypercall ABI? (Re: [PATCH v5 0/5] random,x86,kvm: Rework arch RNG seeds and get some from kvm)
...t seem to allow > QEMU to turn any of its MSRs off; it just allows QEMU to ask it to > stop advertising support. Note that QEMU is not involved in the implementation of your feature, only in advertising it. You could look at CPUID at runtime, but that would mean teaching KVM to look for the KVMKVMKVM\0\0\0 signature in the CPUID data supplied by userspace. I don't think this is particularly useful. > 3. QEMU people, can you please fix your RDMSR emulation to send #GP on > failure? I can work around it for this MSR in the Linux code, but for > Pete's sake... :( Sure, I will...