qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Vitaly Kuznetsov <vkuznets@redhat.com>, qemu-devel@nongnu.org
Cc: Igor Mammedov <imammedo@redhat.com>,
	Vadim Rozenfeld <vrozenfe@redhat.com>,
	Marcelo Tosatti <mtosatti@redhat.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	Maxim Levitsky <mlevitsk@redhat.com>
Subject: Re: [PATCH v2 2/8] i386: docs: Briefly describe KVM PV features
Date: Wed, 29 Sep 2021 17:26:09 +0200	[thread overview]
Message-ID: <aa10fb46-3c65-71c2-abb0-c726078f2f16@redhat.com> (raw)
In-Reply-To: <20210902093530.345756-3-vkuznets@redhat.com>

On 02/09/21 11:35, Vitaly Kuznetsov wrote:
> KVM PV features don't seem to be documented anywhere, in particular, the
> fact that some of the features are enabled by default and some are not can
> only be figured out from the code.
> 
> Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
> ---
>   docs/kvm-pv.txt | 92 +++++++++++++++++++++++++++++++++++++++++++++++++
>   1 file changed, 92 insertions(+)
>   create mode 100644 docs/kvm-pv.txt



Please place this in docs/system/i386 (linked from 
docs/system/target-i386.rst).

> diff --git a/docs/kvm-pv.txt b/docs/kvm-pv.txt
> new file mode 100644
> index 000000000000..84ad7fa60f8d
> --- /dev/null
> +++ b/docs/kvm-pv.txt
> @@ -0,0 +1,92 @@
> +KVM paravirtualized features
> +============================
> +
> +
> +1. Description
> +===============

In addition to other conversions to rst, please:

a) use --- for headings at the second level

> +In some cases when implementing a hardware interface in software is slow, KVM
> +implements its own paravirtualized interfaces.
> +
> +2. Setup
> +=========
> +KVM PV features are represented as CPU flags. The following features are enabled
> +by default for any CPU model when KVM is enabled:
> +  kvmclock
> +  kvm-nopiodelay
> +  kvm-asyncpf
> +  kvm-steal-time
> +  kvm-pv-eoi
> +  kvmclock-stable-bit
> +
> +'kvm-msi-ext-dest-id' feature is enabled by default in x2apic mode with split
> +irqchip (e.g. "-machine ...,kernel-irqchip=split -cpu ...,x2apic").
> +
> +Note: when cpu model 'host' is used, QEMU passes through all KVM PV features
> +exposed by KVM to the guest.
> +
> +3. Existing features
> +====================
> +3.1. kvmclock
> +================
> +This feature exposes KVM specific PV clocksource to the guest.

b) use a definition list like

kvmclock
   Expose a KVM-specific paravirtualized clocksource to the guest.

kvm-nopiodelay
   ...

You may also want to highlight the version of Linux that introduced the 
feature.

Paolo

> +3.2. kvm-nopiodelay
> +===================
> +The guest doesn't need to perform delays on PIO operations.
> +
> +3.3. kvm-mmu
> +============
> +This feature is deprecated.
> +
> +3.4. kvm-asyncpf
> +================
> +Enables asynchronous page fault mechanism. Note: since Linux-5.10 the feature is
> +deprecated and not enabled by KVM. Use "kvm-asyncpf-int" instead.
> +
> +3.5. kvm-steal-time
> +===================
> +Enables stolen (when guest vCPU is not running) time accounting.
> +
> +3.6. kvm-pv-eoi
> +===============
> +Enables paravirtualized end-of-interrupt signaling.
> +
> +3.7. kvm-pv-unhalt
> +==================
> +Enables paravirtualized spinlocks support.
> +
> +3.8. kvm-pv-tlb-flush
> +=====================
> +Enables paravirtualized TLB flush mechanism.
> +
> +3.9. kvm-pv-ipi
> +===============
> +Enables paravirtualized IPI mechanism.
> +
> +3.10. kvm-poll-control
> +======================
> +Enables host-side polling on HLT control from the guest.
> +
> +3.11. kvm-pv-sched-yield
> +========================
> +Enables paravirtualized sched yield feature.
> +
> +3.12. kvm-asyncpf-int
> +=====================
> +Enables interrupt based asynchronous page fault mechanism.
> +
> +3.13. kvm-msi-ext-dest-id
> +=========================
> +Support 'Extended Destination ID' for external interrupts. The feature allows
> +to use up to 32768 CPUs without IRQ remapping (but other limits may apply making
> +the number of supported vCPUs for a given configuration lower).
> +
> +3.14. kvmclock-stable-bit
> +=========================
> +Tells the guest that guest visible TSC value can be fully trusted for kvmclock
> +computations and no warps are expected.
> +
> +4. Useful links
> +================
> +Please refer to Documentation/virt/kvm in Linux for additional detail.
> 



  reply	other threads:[~2021-09-29 15:27 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-02  9:35 [PATCH v2 0/8] i386: Assorted KVM PV and Hyper-V feature improvements Vitaly Kuznetsov
2021-09-02  9:35 ` [PATCH v2 1/8] i386: Add 6.2 machine types Vitaly Kuznetsov
2021-09-02  9:35 ` [PATCH v2 2/8] i386: docs: Briefly describe KVM PV features Vitaly Kuznetsov
2021-09-29 15:26   ` Paolo Bonzini [this message]
2021-09-02  9:35 ` [PATCH v2 3/8] i386: Support KVM_CAP_ENFORCE_PV_FEATURE_CPUID Vitaly Kuznetsov
2021-09-02  9:35 ` [PATCH v2 4/8] i386: Support KVM_CAP_HYPERV_ENFORCE_CPUID Vitaly Kuznetsov
2021-09-02  9:35 ` [PATCH v2 5/8] i386: Move HV_APIC_ACCESS_RECOMMENDED bit setting to hyperv_fill_cpuids() Vitaly Kuznetsov
2021-09-02  9:35 ` [PATCH v2 6/8] i386: Implement pseudo 'hv-avic' ('hv-apicv') enlightenment Vitaly Kuznetsov
2021-09-02  9:35 ` [PATCH v2 7/8] i386: Make Hyper-V version id configurable Vitaly Kuznetsov
2021-09-02  9:35 ` [PATCH v2 8/8] i386: Change the default Hyper-V version to match WS2016 Vitaly Kuznetsov
2021-09-17  8:17 ` [PATCH v2 0/8] i386: Assorted KVM PV and Hyper-V feature improvements Vitaly Kuznetsov
2021-09-29 15:29 ` Paolo Bonzini
2021-09-30  8:09   ` Vitaly Kuznetsov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aa10fb46-3c65-71c2-abb0-c726078f2f16@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=mlevitsk@redhat.com \
    --cc=mtosatti@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=vkuznets@redhat.com \
    --cc=vrozenfe@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).