xref: /linux/arch/arm64/kvm/Kconfig (revision f9aad622006bd64c28fdf73c03a1c5139fcbf049)
1b2441318SGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0
2c3eb5b14SMarc Zyngier#
3c3eb5b14SMarc Zyngier# KVM configuration
4c3eb5b14SMarc Zyngier#
5c3eb5b14SMarc Zyngier
6c8f1e967SSean Christophersonsource "virt/kvm/Kconfig"
7c3eb5b14SMarc Zyngier
8c3eb5b14SMarc Zyngiermenuconfig VIRTUALIZATION
9c3eb5b14SMarc Zyngier	bool "Virtualization"
10a7f7f624SMasahiro Yamada	help
11c3eb5b14SMarc Zyngier	  Say Y here to get to see options for using your Linux host to run
12c3eb5b14SMarc Zyngier	  other operating systems inside virtual machines (guests).
13c3eb5b14SMarc Zyngier	  This option alone does not add any kernel code.
14c3eb5b14SMarc Zyngier
15c3eb5b14SMarc Zyngier	  If you say N, all options in this submenu will be skipped and
16c3eb5b14SMarc Zyngier	  disabled.
17c3eb5b14SMarc Zyngier
18c3eb5b14SMarc Zyngierif VIRTUALIZATION
19c3eb5b14SMarc Zyngier
20f2613362SWill Deaconmenuconfig KVM
21c3eb5b14SMarc Zyngier	bool "Kernel-based Virtual Machine (KVM) support"
2210f2ad03SMarc Zyngier	depends on AS_HAS_ARMV8_4
23caadf876SPaolo Bonzini	select KVM_COMMON
24441f7bfaSSean Christopherson	select KVM_GENERIC_HARDWARE_ENABLING
25f128cf8cSSean Christopherson	select KVM_GENERIC_MMU_NOTIFIER
26d241aac7SMarc Zyngier	select HAVE_KVM_CPU_RELAX_INTERCEPT
27c3eb5b14SMarc Zyngier	select KVM_MMIO
287276030aSMario Smarduch	select KVM_GENERIC_DIRTYLOG_READ_PROTECT
296caa5812SOliver Upton	select KVM_XFER_TO_GUEST_WORK
308889583cSKim Phillips	select KVM_VFIO
319cb1096fSGavin Shan	select HAVE_KVM_DIRTY_RING_ACQ_REL
329cb1096fSGavin Shan	select NEED_KVM_DIRTY_RING_WITH_BITMAP
330e4e82f1SAndre Przywara	select HAVE_KVM_MSI
34180ae7b1SEric Auger	select HAVE_KVM_IRQCHIP
35180ae7b1SEric Auger	select HAVE_KVM_IRQ_ROUTING
362412405bSEric Auger	select HAVE_KVM_IRQ_BYPASS
378886640dSPaolo Bonzini	select HAVE_KVM_READONLY_MEM
38e6b673b7SDave Martin	select HAVE_KVM_VCPU_RUN_PID_CHANGE
3963b3f96eSPeter Zijlstra	select SCHED_INFO
402aef6f30SSean Christopherson	select GUEST_PERF_EVENTS if PERF_EVENTS
41a7f7f624SMasahiro Yamada	help
42c3eb5b14SMarc Zyngier	  Support hosting virtualized guest machines.
43c3eb5b14SMarc Zyngier
44c3eb5b14SMarc Zyngier	  If unsure, say N.
45c3eb5b14SMarc Zyngier
468e049e0dSQuentin Perretconfig NVHE_EL2_DEBUG
478e049e0dSQuentin Perret	bool "Debug mode for non-VHE EL2 object"
48c8f1e967SSean Christopherson	depends on KVM
498e049e0dSQuentin Perret	help
508e049e0dSQuentin Perret	  Say Y here to enable the debug mode for the non-VHE KVM EL2 object.
518e049e0dSQuentin Perret	  Failure reports will BUG() in the hypervisor. This is intended for
528e049e0dSQuentin Perret	  local EL2 hypervisor development.
538e049e0dSQuentin Perret
548e049e0dSQuentin Perret	  If unsure, say N.
558e049e0dSQuentin Perret
5603fe9cd0SMarc Zyngierconfig PROTECTED_NVHE_STACKTRACE
5703fe9cd0SMarc Zyngier	bool "Protected KVM hypervisor stacktraces"
5803fe9cd0SMarc Zyngier	depends on NVHE_EL2_DEBUG
5903fe9cd0SMarc Zyngier	default n
6003fe9cd0SMarc Zyngier	help
6103fe9cd0SMarc Zyngier	  Say Y here to enable pKVM hypervisor stacktraces on hyp_panic()
6203fe9cd0SMarc Zyngier
6303fe9cd0SMarc Zyngier	  If using protected nVHE mode, but cannot afford the associated
6403fe9cd0SMarc Zyngier	  memory cost (less than 0.75 page per CPU) of pKVM stacktraces,
6503fe9cd0SMarc Zyngier	  say N.
6603fe9cd0SMarc Zyngier
6703fe9cd0SMarc Zyngier	  If unsure, or not using protected nVHE (pKVM), say N.
6803fe9cd0SMarc Zyngier
697c4f7354SSebastian Eneconfig PTDUMP_STAGE2_DEBUGFS
707c4f7354SSebastian Ene	bool "Present the stage-2 pagetables to debugfs"
717c4f7354SSebastian Ene	depends on KVM
727c4f7354SSebastian Ene	depends on DEBUG_KERNEL
737c4f7354SSebastian Ene	depends on DEBUG_FS
74*f9aad622SAnshuman Khandual	depends on ARCH_HAS_PTDUMP
75*f9aad622SAnshuman Khandual	select PTDUMP
767c4f7354SSebastian Ene	default n
777c4f7354SSebastian Ene	help
787c4f7354SSebastian Ene	  Say Y here if you want to show the stage-2 kernel pagetables
797c4f7354SSebastian Ene	  layout in a debugfs file. This information is only useful for kernel developers
807c4f7354SSebastian Ene	  who are working in architecture specific areas of the kernel.
817c4f7354SSebastian Ene	  It is probably not a good idea to enable this feature in a production
827c4f7354SSebastian Ene	  kernel.
837c4f7354SSebastian Ene
847c4f7354SSebastian Ene	  If in doubt, say N.
857c4f7354SSebastian Ene
86c3eb5b14SMarc Zyngierendif # VIRTUALIZATION
87