forked from Minki/linux
d30f6e4800
Chips such as e500mc that implement category E.HV in Power ISA 2.06 provide hardware virtualization features, including a new MSR mode for guest state. The guest OS can perform many operations without trapping into the hypervisor, including transitions to and from guest userspace. Since we can use SRR1[GS] to reliably tell whether an exception came from guest state, instead of messing around with IVPR, we use DO_KVM similarly to book3s. Current issues include: - Machine checks from guest state are not routed to the host handler. - The guest can cause a host oops by executing an emulated instruction in a page that lacks read permission. Existing e500/4xx support has the same problem. Includes work by Ashish Kalra <Ashish.Kalra@freescale.com>, Varun Sethi <Varun.Sethi@freescale.com>, and Liu Yu <yu.liu@freescale.com>. Signed-off-by: Scott Wood <scottwood@freescale.com> [agraf: remove pt_regs usage] Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Avi Kivity <avi@redhat.com>
138 lines
3.5 KiB
Plaintext
138 lines
3.5 KiB
Plaintext
#
|
|
# KVM configuration
|
|
#
|
|
|
|
source "virt/kvm/Kconfig"
|
|
|
|
menuconfig VIRTUALIZATION
|
|
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 VIRTUALIZATION
|
|
|
|
config KVM
|
|
bool
|
|
select PREEMPT_NOTIFIERS
|
|
select ANON_INODES
|
|
|
|
config KVM_BOOK3S_HANDLER
|
|
bool
|
|
|
|
config KVM_BOOK3S_32_HANDLER
|
|
bool
|
|
select KVM_BOOK3S_HANDLER
|
|
select KVM_MMIO
|
|
|
|
config KVM_BOOK3S_64_HANDLER
|
|
bool
|
|
select KVM_BOOK3S_HANDLER
|
|
|
|
config KVM_BOOK3S_PR
|
|
bool
|
|
select KVM_MMIO
|
|
|
|
config KVM_BOOK3S_32
|
|
tristate "KVM support for PowerPC book3s_32 processors"
|
|
depends on EXPERIMENTAL && PPC_BOOK3S_32 && !SMP && !PTE_64BIT
|
|
select KVM
|
|
select KVM_BOOK3S_32_HANDLER
|
|
select KVM_BOOK3S_PR
|
|
---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 KVM_BOOK3S_64
|
|
tristate "KVM support for PowerPC book3s_64 processors"
|
|
depends on EXPERIMENTAL && PPC_BOOK3S_64
|
|
select KVM_BOOK3S_64_HANDLER
|
|
select KVM
|
|
---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 KVM_BOOK3S_64_HV
|
|
bool "KVM support for POWER7 and PPC970 using hypervisor mode in host"
|
|
depends on KVM_BOOK3S_64
|
|
select MMU_NOTIFIER
|
|
---help---
|
|
Support running unmodified book3s_64 guest kernels in
|
|
virtual machines on POWER7 and PPC970 processors that have
|
|
hypervisor mode available to the host.
|
|
|
|
If you say Y here, KVM 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 KVM is not usable under PowerVM (pHyp), is only usable
|
|
on POWER7 (or later) processors and PPC970-family processors,
|
|
and cannot emulate a different processor from the host processor.
|
|
|
|
If unsure, say N.
|
|
|
|
config KVM_BOOK3S_64_PR
|
|
def_bool y
|
|
depends on KVM_BOOK3S_64 && !KVM_BOOK3S_64_HV
|
|
select KVM_BOOK3S_PR
|
|
|
|
config KVM_BOOKE_HV
|
|
bool
|
|
|
|
config KVM_440
|
|
bool "KVM support for PowerPC 440 processors"
|
|
depends on EXPERIMENTAL && 44x
|
|
select KVM
|
|
select KVM_MMIO
|
|
---help---
|
|
Support running unmodified 440 guest kernels in virtual machines on
|
|
440 host processors.
|
|
|
|
This module provides access to the hardware capabilities through
|
|
a character device node named /dev/kvm.
|
|
|
|
If unsure, say N.
|
|
|
|
config KVM_EXIT_TIMING
|
|
bool "Detailed exit timing"
|
|
depends on KVM_440 || KVM_E500
|
|
---help---
|
|
Calculate elapsed time for every exit/enter cycle. A 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 KVM_E500
|
|
bool "KVM support for PowerPC E500 processors"
|
|
depends on EXPERIMENTAL && E500
|
|
select KVM
|
|
select KVM_MMIO
|
|
---help---
|
|
Support running unmodified E500 guest kernels in virtual machines on
|
|
E500 host processors.
|
|
|
|
This module provides access to the hardware capabilities through
|
|
a character device node named /dev/kvm.
|
|
|
|
If unsure, say N.
|
|
|
|
source drivers/vhost/Kconfig
|
|
|
|
endif # VIRTUALIZATION
|