# SPDX-License-Identifier: GPL-2.0
#
# [31mCONFIG_KVM[0m configuration
#
source "virt/kvm/Kconfig"
menuconfig [31mCONFIG_VIRTUALIZATION[0m
bool "Virtualization"
---help---
Say Y here to get to see options for using your Linux host to run
other operating systems inside virtual machines (guests).
This option alone does not add any kernel code.
If you say N, all options in this submenu will be skipped and
disabled.
if [31mCONFIG_VIRTUALIZATION[0m
config [31mCONFIG_KVM[0m
bool
select [31mCONFIG_PREEMPT_NOTIFIERS[0m
select [31mCONFIG_HAVE_KVM_EVENTFD[0m
select [31mCONFIG_HAVE_KVM_VCPU_ASYNC_IOCTL[0m
select [31mCONFIG_SRCU[0m
select [31mCONFIG_KVM_VFIO[0m
select [31mCONFIG_IRQ_BYPASS_MANAGER[0m
select [31mCONFIG_HAVE_KVM_IRQ_BYPASS[0m
config [31mCONFIG_KVM_BOOK3S_HANDLER[0m
bool
config [31mCONFIG_KVM_BOOK3S_32_HANDLER[0m
bool
select [31mCONFIG_KVM_BOOK3S_HANDLER[0m
select [31mCONFIG_KVM_MMIO[0m
config [31mCONFIG_KVM_BOOK3S_64_HANDLER[0m
bool
select [31mCONFIG_KVM_BOOK3S_HANDLER[0m
select PPC_DAWR_FORCE_ENABLE
config [31mCONFIG_KVM_BOOK3S_PR_POSSIBLE[0m
bool
select [31mCONFIG_KVM_MMIO[0m
select [31mCONFIG_MMU_NOTIFIER[0m
config [31mCONFIG_KVM_BOOK3S_HV_POSSIBLE[0m
bool
config [31mCONFIG_KVM_BOOK3S_32[0m
tristate "KVM support for PowerPC book3s_32 processors"
depends on [31mCONFIG_PPC_BOOK3S_32[0m && ![31mCONFIG_SMP[0m && ![31mCONFIG_PTE_64BIT[0m
select [31mCONFIG_KVM[0m
select [31mCONFIG_KVM_BOOK3S_32_HANDLER[0m
select [31mCONFIG_KVM_BOOK3S_PR_POSSIBLE[0m
---help---
Support running unmodified book3s_32 guest kernels
in virtual machines on book3s_32 host processors.
This module provides access to the hardware capabilities through
a character device node named /dev/kvm.
If unsure, say N.
config [31mCONFIG_KVM_BOOK3S_64[0m
tristate "KVM support for PowerPC book3s_64 processors"
depends on [31mCONFIG_PPC_BOOK3S_64[0m
select [31mCONFIG_KVM_BOOK3S_64_HANDLER[0m
select [31mCONFIG_KVM[0m
select [31mCONFIG_KVM_BOOK3S_PR_POSSIBLE[0m if ![31mCONFIG_KVM_BOOK3S_HV_POSSIBLE[0m
select [31mCONFIG_SPAPR_TCE_IOMMU[0m if [31mCONFIG_IOMMU_SUPPORT[0m && ([31mCONFIG_PPC_PSERIES[0m || [31mCONFIG_PPC_POWERNV[0m)
---help---
Support running unmodified book3s_64 and book3s_32 guest kernels
in virtual machines on book3s_64 host processors.
This module provides access to the hardware capabilities through
a character device node named /dev/kvm.
If unsure, say N.
config [31mCONFIG_KVM_BOOK3S_64_HV[0m
tristate "KVM for POWER7 and later using hypervisor mode in host"
depends on [31mCONFIG_KVM_BOOK3S_64[0m && [31mCONFIG_PPC_POWERNV[0m
select [31mCONFIG_KVM_BOOK3S_HV_POSSIBLE[0m
select [31mCONFIG_MMU_NOTIFIER[0m
select [31mCONFIG_CMA[0m
---help---
Support running unmodified book3s_64 guest kernels in
virtual machines on POWER7 and newer processors that have
hypervisor mode available to the host.
If you say Y here, [31mCONFIG_KVM[0m will use the hardware virtualization
facilities of POWER7 (and later) processors, meaning that
guest operating systems will run at full hardware speed
using supervisor and user modes. However, this also means
that [31mCONFIG_KVM[0m is not usable under PowerVM (pHyp), is only usable
on POWER7 or later processors, and cannot emulate a
different processor from the host processor.
If unsure, say N.
config [31mCONFIG_KVM_BOOK3S_64_PR[0m
tristate "KVM support without using hypervisor mode in host"
depends on [31mCONFIG_KVM_BOOK3S_64[0m
select [31mCONFIG_KVM_BOOK3S_PR_POSSIBLE[0m
---help---
Support running guest kernels in virtual machines on processors
without using hypervisor mode in the host, by running the
guest in user mode (problem state) and emulating all
privileged instructions and registers.
This is not as fast as using hypervisor mode, but works on
machines where hypervisor mode is not available or not usable,
and can emulate processors that are different from the host
processor, including emulating 32-bit processors on a 64-bit
host.
config [31mCONFIG_KVM_BOOK3S_HV_EXIT_TIMING[0m
bool "Detailed timing for hypervisor real-mode code"
depends on [31mCONFIG_KVM_BOOK3S_HV_POSSIBLE[0m && [31mCONFIG_DEBUG_FS[0m
---help---
Calculate time taken for each vcpu in the real-mode guest entry,
exit, and interrupt handling code, plus time spent in the guest
and in nap mode due to idle (cede) while other threads are still
in the guest. The total, minimum and maximum times in nanoseconds
together with the number of executions are reported in debugfs in
kvm/vm#/vcpu#/timings. The overhead is of the order of 30 - 40
ns per exit on POWER8.
If unsure, say N.
config [31mCONFIG_KVM_BOOKE_HV[0m
bool
config [31mCONFIG_KVM_EXIT_TIMING[0m
bool "Detailed exit timing"
depends on [31mCONFIG_KVM_E500V2[0m || [31mCONFIG_KVM_E500MC[0m
---help---
Calculate elapsed time for every exit/enter cycle. [31mCONFIG_A[0m per-vcpu
report is available in debugfs kvm/vm#_vcpu#_timing.
The overhead is relatively small, however it is not recommended for
production environments.
If unsure, say N.
config [31mCONFIG_KVM_E500V2[0m
bool "KVM support for PowerPC E500v2 processors"
depends on [31mCONFIG_E500[0m && ![31mCONFIG_PPC_E500MC[0m
select [31mCONFIG_KVM[0m
select [31mCONFIG_KVM_MMIO[0m
select [31mCONFIG_MMU_NOTIFIER[0m
---help---
Support running unmodified [31mCONFIG_E500[0m guest kernels in virtual machines on
E500v2 host processors.
This module provides access to the hardware capabilities through
a character device node named /dev/kvm.
If unsure, say N.
config [31mCONFIG_KVM_E500MC[0m
bool "KVM support for PowerPC E500MC/E5500/E6500 processors"
depends on [31mCONFIG_PPC_E500MC[0m
select [31mCONFIG_KVM[0m
select [31mCONFIG_KVM_MMIO[0m
select [31mCONFIG_KVM_BOOKE_HV[0m
select [31mCONFIG_MMU_NOTIFIER[0m
---help---
Support running unmodified E500MC/E5500/E6500 guest kernels in
virtual machines on E500MC/E5500/E6500 host processors.
This module provides access to the hardware capabilities through
a character device node named /dev/kvm.
If unsure, say N.
config [31mCONFIG_KVM_MPIC[0m
bool "KVM in-kernel MPIC emulation"
depends on [31mCONFIG_KVM[0m && [31mCONFIG_E500[0m
select [31mCONFIG_HAVE_KVM_IRQCHIP[0m
select [31mCONFIG_HAVE_KVM_IRQFD[0m
select [31mCONFIG_HAVE_KVM_IRQ_ROUTING[0m
select [31mCONFIG_HAVE_KVM_MSI[0m
help
Enable support for emulating [31mCONFIG_MPIC[0m devices inside the
host kernel, rather than relying on userspace to emulate.
Currently, support is limited to certain versions of
Freescale's [31mCONFIG_MPIC[0m implementation.
config [31mCONFIG_KVM_XICS[0m
bool "KVM in-kernel XICS emulation"
depends on [31mCONFIG_KVM_BOOK3S_64[0m && ![31mCONFIG_KVM_MPIC[0m
select [31mCONFIG_HAVE_KVM_IRQCHIP[0m
select [31mCONFIG_HAVE_KVM_IRQFD[0m
default y
---help---
Include support for the XICS (eXternal Interrupt Controller
Specification) interrupt controller architecture used on
IBM POWER (pSeries) servers.
config [31mCONFIG_KVM_XIVE[0m
bool
default y
depends on [31mCONFIG_KVM_XICS[0m && [31mCONFIG_PPC_XIVE_NATIVE[0m && [31mCONFIG_KVM_BOOK3S_HV_POSSIBLE[0m
source "drivers/vhost/Kconfig"
endif # [31mCONFIG_VIRTUALIZATION[0m