[PATCH 2/3] Documentation: kvm: Convert cpuid.txt to .rst

From: Luke Nowakowski-Krijger
Date: Sat Jul 06 2019 - 17:39:00 EST


From: Luke Nowakowski-Krijger <lnowakow@xxxxxxxxxxxx>

Convert cpuid.txt to .rst format to be parsable by sphinx.

Change format and spacing to make function definitions and return values
much more clear. Also added a table that is parsable by sphinx and makes
the information much more clean.

Signed-off-by: Luke Nowakowski-Krijger <lnowakow@xxxxxxxxxxxx>
---
Documentation/virtual/kvm/cpuid.rst | 99 +++++++++++++++++++++++++++++
Documentation/virtual/kvm/cpuid.txt | 83 ------------------------
2 files changed, 99 insertions(+), 83 deletions(-)
create mode 100644 Documentation/virtual/kvm/cpuid.rst
delete mode 100644 Documentation/virtual/kvm/cpuid.txt

diff --git a/Documentation/virtual/kvm/cpuid.rst b/Documentation/virtual/kvm/cpuid.rst
new file mode 100644
index 000000000000..1a03336a500e
--- /dev/null
+++ b/Documentation/virtual/kvm/cpuid.rst
@@ -0,0 +1,99 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+==============
+KVM CPUID bits
+==============
+
+:Author: Glauber Costa <glommer@xxxxxxxxxx>, Red Hat Inc, 2010
+
+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_CLOCSOURCE_STABLE | 24 | host will warn if no guest-side |
+| _BIT | | 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 |
++--------------------------------+------------+---------------------------------+
diff --git a/Documentation/virtual/kvm/cpuid.txt b/Documentation/virtual/kvm/cpuid.txt
deleted file mode 100644
index 97ca1940a0dc..000000000000
--- a/Documentation/virtual/kvm/cpuid.txt
+++ /dev/null
@@ -1,83 +0,0 @@
-KVM CPUID bits
-Glauber Costa <glommer@xxxxxxxxxx>, Red Hat Inc, 2010
-=====================================================
-
-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 each flags is:
-
-
-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_UNHALT || 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 using paravirtualized
- || || send IPIs.
-------------------------------------------------------------------------------
-KVM_FEATURE_CLOCKSOURCE_STABLE_BIT || 24 || host will warn if no guest-side
- || || per-cpu warps are expected in
- || || kvmclock.
-------------------------------------------------------------------------------
-
- edx = an OR'ed group of (1 << flag), where each flags is:
-
-
-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
-----------------------------------------------------------------------------------
--
2.20.1