.. SPDX-License-Identifier: GPL-2.0

==============
KVM CPUID bits
==============

:Author: Glauber Costa <glommer@gmail.com>

A guest running on a kvm host, can check some of its features using
cpuid. This is not always guaranteed to work, since userspace can
mask-out some, or even all KVM-related cpuid features before launching
a guest.

KVM cpuid functions are:

function: KVM_CPUID_SIGNATURE (0x40000000)

returns::

   eax = 0x40000001
   ebx = 0x4b4d564b
   ecx = 0x564b4d56
   edx = 0x4d

Note that this value in ebx, ecx and edx corresponds to the string "KVMKVMKVM".
The value in eax corresponds to the maximum cpuid function present in this leaf,
and will be updated if more functions are added in the future.
Note also that old hosts set eax value to 0x0. This should
be interpreted as if the value was 0x40000001.
This function queries the presence of KVM cpuid leafs.

function: define KVM_CPUID_FEATURES (0x40000001)

returns::

          ebx, ecx
          eax = an OR'ed group of (1 << flag)

where ``flag`` is defined as below:

================================= =========== ================================
flag                              value       meaning
================================= =========== ================================
KVM_FEATURE_CLOCKSOURCE           0           kvmclock available at msrs
                                              0x11 and 0x12

KVM_FEATURE_NOP_IO_DELAY          1           not necessary to perform delays
                                              on PIO operations

KVM_FEATURE_MMU_OP                2           deprecated

KVM_FEATURE_CLOCKSOURCE2          3           kvmclock available at msrs
                                              0x4b564d00 and 0x4b564d01

KVM_FEATURE_ASYNC_PF              4           async pf can be enabled by
                                              writing to msr 0x4b564d02

KVM_FEATURE_STEAL_TIME            5           steal time can be enabled by
                                              writing to msr 0x4b564d03

KVM_FEATURE_PV_EOI                6           paravirtualized end of interrupt
                                              handler can be enabled by
                                              writing to msr 0x4b564d04

KVM_FEATURE_PV_UNHAULT            7           guest checks this feature bit
                                              before enabling paravirtualized
                                              spinlock support

KVM_FEATURE_PV_TLB_FLUSH          9           guest checks this feature bit
                                              before enabling paravirtualized
                                              tlb flush

KVM_FEATURE_ASYNC_PF_VMEXIT       10          paravirtualized async PF VM EXIT
                                              can be enabled by setting bit 2
                                              when writing to msr 0x4b564d02

KVM_FEATURE_PV_SEND_IPI           11          guest checks this feature bit
                                              before enabling paravirtualized
                                              sebd IPIs

KVM_FEATURE_PV_POLL_CONTROL       12          host-side polling on HLT can
                                              be disabled by writing
                                              to msr 0x4b564d05.

KVM_FEATURE_PV_SCHED_YIELD        13          guest checks this feature bit
                                              before using paravirtualized
                                              sched yield.

KVM_FEATURE_ASYNC_PF_INT          14          guest checks this feature bit
                                              before using the second async
                                              pf control msr 0x4b564d06 and
                                              async pf acknowledgment msr
                                              0x4b564d07.

KVM_FEATURE_CLOCSOURCE_STABLE_BIT 24          host will warn if no guest-side
                                              per-cpu warps are expeced in
                                              kvmclock
================================= =========== ================================

::

      edx = an OR'ed group of (1 << flag)

Where ``flag`` here is defined as below:

================== ============ =================================
flag               value        meaning
================== ============ =================================
KVM_HINTS_REALTIME 0            guest checks this feature bit to
                                determine that vCPUs are never
                                preempted for an unlimited time
                                allowing optimizations
================== ============ =================================
