14a12ea92b7fa2d067d6a9b63b20f9db068026ff
[linux-3.10.git] / Documentation / kvm / cpuid.txt
1 KVM CPUID bits
2 Glauber Costa <glommer@redhat.com>, Red Hat Inc, 2010
3 =====================================================
4
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.
9
10 KVM cpuid functions are:
11
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.
19
20
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:
24
25
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_CLOCKSOURCE_STABLE_BIT ||    24 || host will warn if no guest-side
40                                    ||       || per-cpu warps are expected in
41                                    ||       || kvmclock.
42 ------------------------------------------------------------------------------