linux/arch/powerpc/kvm/Kconfig
<<
>>
Prefs
   1# SPDX-License-Identifier: GPL-2.0
   2#
   3# KVM configuration
   4#
   5
   6source "virt/kvm/Kconfig"
   7
   8menuconfig VIRTUALIZATION
   9        bool "Virtualization"
  10        ---help---
  11          Say Y here to get to see options for using your Linux host to run
  12          other operating systems inside virtual machines (guests).
  13          This option alone does not add any kernel code.
  14
  15          If you say N, all options in this submenu will be skipped and
  16          disabled.
  17
  18if VIRTUALIZATION
  19
  20config KVM
  21        bool
  22        select PREEMPT_NOTIFIERS
  23        select ANON_INODES
  24        select HAVE_KVM_EVENTFD
  25        select SRCU
  26        select KVM_VFIO
  27        select IRQ_BYPASS_MANAGER
  28        select HAVE_KVM_IRQ_BYPASS
  29
  30config KVM_BOOK3S_HANDLER
  31        bool
  32
  33config KVM_BOOK3S_32_HANDLER
  34        bool
  35        select KVM_BOOK3S_HANDLER
  36        select KVM_MMIO
  37
  38config KVM_BOOK3S_64_HANDLER
  39        bool
  40        select KVM_BOOK3S_HANDLER
  41
  42config KVM_BOOK3S_PR_POSSIBLE
  43        bool
  44        select KVM_MMIO
  45        select MMU_NOTIFIER
  46
  47config KVM_BOOK3S_HV_POSSIBLE
  48        bool
  49
  50config KVM_BOOK3S_32
  51        tristate "KVM support for PowerPC book3s_32 processors"
  52        depends on PPC_BOOK3S_32 && !SMP && !PTE_64BIT
  53        select KVM
  54        select KVM_BOOK3S_32_HANDLER
  55        select KVM_BOOK3S_PR_POSSIBLE
  56        ---help---
  57          Support running unmodified book3s_32 guest kernels
  58          in virtual machines on book3s_32 host processors.
  59
  60          This module provides access to the hardware capabilities through
  61          a character device node named /dev/kvm.
  62
  63          If unsure, say N.
  64
  65config KVM_BOOK3S_64
  66        tristate "KVM support for PowerPC book3s_64 processors"
  67        depends on PPC_BOOK3S_64
  68        select KVM_BOOK3S_64_HANDLER
  69        select KVM
  70        select KVM_BOOK3S_PR_POSSIBLE if !KVM_BOOK3S_HV_POSSIBLE
  71        select SPAPR_TCE_IOMMU if IOMMU_SUPPORT && (PPC_SERIES || PPC_POWERNV)
  72        ---help---
  73          Support running unmodified book3s_64 and book3s_32 guest kernels
  74          in virtual machines on book3s_64 host processors.
  75
  76          This module provides access to the hardware capabilities through
  77          a character device node named /dev/kvm.
  78
  79          If unsure, say N.
  80
  81config KVM_BOOK3S_64_HV
  82        tristate "KVM for POWER7 and later using hypervisor mode in host"
  83        depends on KVM_BOOK3S_64 && PPC_POWERNV
  84        select KVM_BOOK3S_HV_POSSIBLE
  85        select MMU_NOTIFIER
  86        select CMA
  87        ---help---
  88          Support running unmodified book3s_64 guest kernels in
  89          virtual machines on POWER7 and newer processors that have
  90          hypervisor mode available to the host.
  91
  92          If you say Y here, KVM will use the hardware virtualization
  93          facilities of POWER7 (and later) processors, meaning that
  94          guest operating systems will run at full hardware speed
  95          using supervisor and user modes.  However, this also means
  96          that KVM is not usable under PowerVM (pHyp), is only usable
  97          on POWER7 or later processors, and cannot emulate a
  98          different processor from the host processor.
  99
 100          If unsure, say N.
 101
 102config KVM_BOOK3S_64_PR
 103        tristate "KVM support without using hypervisor mode in host"
 104        depends on KVM_BOOK3S_64
 105        select KVM_BOOK3S_PR_POSSIBLE
 106        ---help---
 107          Support running guest kernels in virtual machines on processors
 108          without using hypervisor mode in the host, by running the
 109          guest in user mode (problem state) and emulating all
 110          privileged instructions and registers.
 111
 112          This is not as fast as using hypervisor mode, but works on
 113          machines where hypervisor mode is not available or not usable,
 114          and can emulate processors that are different from the host
 115          processor, including emulating 32-bit processors on a 64-bit
 116          host.
 117
 118config KVM_BOOK3S_HV_EXIT_TIMING
 119        bool "Detailed timing for hypervisor real-mode code"
 120        depends on KVM_BOOK3S_HV_POSSIBLE && DEBUG_FS
 121        ---help---
 122          Calculate time taken for each vcpu in the real-mode guest entry,
 123          exit, and interrupt handling code, plus time spent in the guest
 124          and in nap mode due to idle (cede) while other threads are still
 125          in the guest.  The total, minimum and maximum times in nanoseconds
 126          together with the number of executions are reported in debugfs in
 127          kvm/vm#/vcpu#/timings.  The overhead is of the order of 30 - 40
 128          ns per exit on POWER8.
 129
 130          If unsure, say N.
 131
 132config KVM_BOOKE_HV
 133        bool
 134
 135config KVM_EXIT_TIMING
 136        bool "Detailed exit timing"
 137        depends on KVM_E500V2 || KVM_E500MC
 138        ---help---
 139          Calculate elapsed time for every exit/enter cycle. A per-vcpu
 140          report is available in debugfs kvm/vm#_vcpu#_timing.
 141          The overhead is relatively small, however it is not recommended for
 142          production environments.
 143
 144          If unsure, say N.
 145
 146config KVM_E500V2
 147        bool "KVM support for PowerPC E500v2 processors"
 148        depends on E500 && !PPC_E500MC
 149        select KVM
 150        select KVM_MMIO
 151        select MMU_NOTIFIER
 152        ---help---
 153          Support running unmodified E500 guest kernels in virtual machines on
 154          E500v2 host processors.
 155
 156          This module provides access to the hardware capabilities through
 157          a character device node named /dev/kvm.
 158
 159          If unsure, say N.
 160
 161config KVM_E500MC
 162        bool "KVM support for PowerPC E500MC/E5500/E6500 processors"
 163        depends on PPC_E500MC
 164        select KVM
 165        select KVM_MMIO
 166        select KVM_BOOKE_HV
 167        select MMU_NOTIFIER
 168        ---help---
 169          Support running unmodified E500MC/E5500/E6500 guest kernels in
 170          virtual machines on E500MC/E5500/E6500 host processors.
 171
 172          This module provides access to the hardware capabilities through
 173          a character device node named /dev/kvm.
 174
 175          If unsure, say N.
 176
 177config KVM_MPIC
 178        bool "KVM in-kernel MPIC emulation"
 179        depends on KVM && E500
 180        select HAVE_KVM_IRQCHIP
 181        select HAVE_KVM_IRQFD
 182        select HAVE_KVM_IRQ_ROUTING
 183        select HAVE_KVM_MSI
 184        help
 185          Enable support for emulating MPIC devices inside the
 186          host kernel, rather than relying on userspace to emulate.
 187          Currently, support is limited to certain versions of
 188          Freescale's MPIC implementation.
 189
 190config KVM_XICS
 191        bool "KVM in-kernel XICS emulation"
 192        depends on KVM_BOOK3S_64 && !KVM_MPIC
 193        select HAVE_KVM_IRQCHIP
 194        select HAVE_KVM_IRQFD
 195        default y
 196        ---help---
 197          Include support for the XICS (eXternal Interrupt Controller
 198          Specification) interrupt controller architecture used on
 199          IBM POWER (pSeries) servers.
 200
 201config KVM_XIVE
 202        bool
 203        default y
 204        depends on KVM_XICS && PPC_XIVE_NATIVE && KVM_BOOK3S_HV_POSSIBLE
 205
 206source drivers/vhost/Kconfig
 207
 208endif # VIRTUALIZATION
 209