| Glauber Costa | 09c9e81 | 2010-05-11 12:17:47 -0400 | [diff] [blame] | 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 | ------------------------------------------------------------------------------ | 
| Gleb Natapov | 344d958 | 2010-10-14 11:22:50 +0200 | [diff] [blame] | 39 | KVM_FEATURE_ASYNC_PF               ||     4 || async pf can be enabled by | 
 | 40 |                                    ||       || writing to msr 0x4b564d02 | 
 | 41 | ------------------------------------------------------------------------------ | 
| Glauber Costa | 09c9e81 | 2010-05-11 12:17:47 -0400 | [diff] [blame] | 42 | KVM_FEATURE_CLOCKSOURCE_STABLE_BIT ||    24 || host will warn if no guest-side | 
 | 43 |                                    ||       || per-cpu warps are expected in | 
 | 44 |                                    ||       || kvmclock. | 
 | 45 | ------------------------------------------------------------------------------ |