Em Tue, 9 Jul 2019 13:07:19 -0700 Luke Nowakowski-Krijger <lnowakow@xxxxxxxxxxxx> escreveu: > 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. Updated Author email to their new > active email address. Added license identifier with the consent of the > author. > > Signed-off-by: Luke Nowakowski-Krijger <lnowakow@xxxxxxxxxxxx> > --- > Changes since v2: > + added updated Author email address > + changed table to simpler format > - removed function bolding from v1 > Changes since v1: > + Converted doc to .rst format > > 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 I strongly suggest to generate the diff with -M1, in order to show it as a diff, instead of create/delete. Btw, when applying on the top of linux-next, I got a merge conflict, probably due to this patch: commit 9824c83f92bc8351dfb5c387436cc2816616fb4a Author: Paolo Bonzini <pbonzini@xxxxxxxxxx> Date: Tue Jul 2 18:57:29 2019 +0200 Documentation: kvm: document CPUID bit for MSR_KVM_POLL_CONTROL which added a new flag (KVM_FEATURE_PV_POLL_CONTROL). There's also another patch adding KVM_FEATURE_PV_SCHED_YIELD flag. In order to check the results, I did already a rebase on the top a temp branch on my experimental tree: https://git.linuxtv.org/mchehab/experimental.git/commit/?h=convert_rst_renames_next_v3&id=90330aba498e6d9d5258322d0006b3968e9a65a9 (please notice that this is not the upstream docs branch, so you need to re-submit the patch to the ML) With the rebase, for this 3 patch series: Reviewed-by: Mauro Carvalho Chehab <mchehab+samsung@xxxxxxxxxx> > > diff --git a/Documentation/virtual/kvm/cpuid.rst b/Documentation/virtual/kvm/cpuid.rst > new file mode 100644 > index 000000000000..644c53687861 > --- /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@xxxxxxxxx> > + > +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_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 > +================== ============ ================================= > 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 > ----------------------------------------------------------------------------------- Thanks, Mauro