Merge remote-tracking branch 'tmem/linux-next'
[linux-2.6/next.git] / Documentation / virtual / kvm / cpuid.txt
blob882068538c9c95fc08fd5dec62ac008a5bda1cc3
1 KVM CPUID bits
2 Glauber Costa <glommer@redhat.com>, Red Hat Inc, 2010
3 =====================================================
5 A guest running on a kvm host, can check some of its features using
6 cpuid. This is not always guaranteed to work, since userspace can
7 mask-out some, or even all KVM-related cpuid features before launching
8 a guest.
10 KVM cpuid functions are:
12 function: KVM_CPUID_SIGNATURE (0x40000000)
13 returns : eax = 0,
14           ebx = 0x4b4d564b,
15           ecx = 0x564b4d56,
16           edx = 0x4d.
17 Note that this value in ebx, ecx and edx corresponds to the string "KVMKVMKVM".
18 This function queries the presence of KVM cpuid leafs.
21 function: define KVM_CPUID_FEATURES (0x40000001)
22 returns : ebx, ecx, edx = 0
23           eax = and OR'ed group of (1 << flag), where each flags is:
26 flag                               || value || meaning
27 =============================================================================
28 KVM_FEATURE_CLOCKSOURCE            ||     0 || kvmclock available at msrs
29                                    ||       || 0x11 and 0x12.
30 ------------------------------------------------------------------------------
31 KVM_FEATURE_NOP_IO_DELAY           ||     1 || not necessary to perform delays
32                                    ||       || on PIO operations.
33 ------------------------------------------------------------------------------
34 KVM_FEATURE_MMU_OP                 ||     2 || deprecated.
35 ------------------------------------------------------------------------------
36 KVM_FEATURE_CLOCKSOURCE2           ||     3 || kvmclock available at msrs
37                                    ||       || 0x4b564d00 and 0x4b564d01
38 ------------------------------------------------------------------------------
39 KVM_FEATURE_ASYNC_PF               ||     4 || async pf can be enabled by
40                                    ||       || writing to msr 0x4b564d02
41 ------------------------------------------------------------------------------
42 KVM_FEATURE_CLOCKSOURCE_STABLE_BIT ||    24 || host will warn if no guest-side
43                                    ||       || per-cpu warps are expected in
44                                    ||       || kvmclock.
45 ------------------------------------------------------------------------------