1 2menu "Common Features" 3 4config COMPAT 5 bool 6 help 7 32-bit interface support on 64-bit Xen which is used for both 8 HVM and PV guests. HVMLoader makes 32-bit hypercalls irrespective 9 of the destination runmode of the guest. 10 11config CORE_PARKING 12 bool 13 14config HAS_ALTERNATIVE 15 bool 16 17config HAS_DEVICE_TREE 18 bool 19 20config HAS_EX_TABLE 21 bool 22 23config HAS_MEM_ACCESS 24 bool 25 26config HAS_MEM_PAGING 27 bool 28 29config HAS_MEM_SHARING 30 bool 31 32config HAS_PDX 33 bool 34 35config HAS_UBSAN 36 bool 37 38config HAS_KEXEC 39 bool 40 41config HAS_GDBSX 42 bool 43 44config HAS_IOPORTS 45 bool 46 47config HAS_BUILD_ID 48 string 49 option env="XEN_HAS_BUILD_ID" 50 51config HAS_CHECKPOLICY 52 string 53 option env="XEN_HAS_CHECKPOLICY" 54 55config KEXEC 56 bool "kexec support" 57 default y 58 depends on HAS_KEXEC 59 ---help--- 60 Allows a running Xen hypervisor to be replaced with another OS 61 without rebooting. This is primarily used to execute a crash 62 environment to collect information on a Xen hypervisor or dom0 crash. 63 64 If unsure, say Y. 65 66config TMEM 67 def_bool y 68 prompt "Transcendent Memory Support" if EXPERT = "y" 69 ---help--- 70 Transcendent memory allows PV-aware guests to collaborate on memory 71 usage. Guests can 'swap' their memory to the hypervisor or have an 72 collective pool of memory shared across guests. The end result is 73 less memory usage by guests allowing higher guest density. 74 75 You also have to enable it on the Xen commandline by using tmem=1 76 77 If unsure, say Y. 78 79config XENOPROF 80 def_bool y 81 prompt "Xen Oprofile Support" if EXPERT = "y" 82 depends on X86 83 ---help--- 84 Xen OProfile (Xenoprof) is a system-wide profiler for Xen virtual 85 machine environments, capable of profiling the Xen virtual machine 86 monitor, multiple Linux guest operating systems, and applications 87 running on them. 88 89 If unsure, say Y. 90 91config XSM 92 bool "Xen Security Modules support" 93 default n 94 ---help--- 95 Enables the security framework known as Xen Security Modules which 96 allows administrators fine-grained control over a Xen domain and 97 its capabilities by defining permissible interactions between domains, 98 the hypervisor itself, and related resources such as memory and 99 devices. 100 101 If unsure, say N. 102 103config FLASK 104 def_bool y 105 prompt "FLux Advanced Security Kernel support" if EXPERT = "y" 106 depends on XSM 107 ---help--- 108 Enables FLASK (FLux Advanced Security Kernel) as the access control 109 mechanism used by the XSM framework. This provides a mandatory access 110 control framework by which security enforcement, isolation, and 111 auditing can be achieved with fine granular control via a security 112 policy. 113 114 If unsure, say Y. 115 116config FLASK_AVC_STATS 117 def_bool y 118 prompt "Maintain statistics on the FLASK access vector cache" if EXPERT = "y" 119 depends on FLASK 120 ---help--- 121 Maintain counters on the access vector cache that can be viewed using 122 the FLASK_AVC_CACHESTATS sub-op of the xsm_op hypercall. Disabling 123 this will save a tiny amount of memory and time to update the stats. 124 125 If unsure, say Y. 126 127config XSM_POLICY 128 bool "Compile Xen with a built-in security policy" 129 default y if HAS_CHECKPOLICY = "y" 130 depends on XSM 131 ---help--- 132 This includes a default XSM policy in the hypervisor so that the 133 bootloader does not need to load a policy to get sane behavior from an 134 XSM-enabled hypervisor. If this is disabled, a policy must be 135 provided by the bootloader or by Domain 0. Even if this is enabled, a 136 policy provided by the bootloader will override it. 137 138 This requires that the SELinux policy compiler (checkpolicy) be 139 available when compiling the hypervisor. 140 141 If unsure, say Y. 142 143config LATE_HWDOM 144 bool "Dedicated hardware domain" 145 default n 146 depends on XSM && X86 147 ---help--- 148 Allows the creation of a dedicated hardware domain distinct from 149 domain 0 that manages devices without needing access to other 150 privileged functionality such as the ability to manage domains. 151 This requires that the actual domain 0 be a stub domain that 152 constructs the actual hardware domain instead of initializing the 153 hardware itself. Because the hardware domain needs access to 154 hypercalls not available to unprivileged guests, an XSM policy 155 is required to properly define the privilege of these domains. 156 157 This feature does nothing if the "hardware_dom" boot parameter is 158 not present. If this feature is being used for security, it should 159 be combined with an IOMMU in strict mode. 160 161 If unsure, say N. 162 163menu "Schedulers" 164 visible if EXPERT = "y" 165 166config SCHED_CREDIT 167 def_bool y 168 ---help--- 169 The traditional credit scheduler is a general purpose scheduler. 170 171config SCHED_CREDIT2 172 bool "Credit2 scheduler support" 173 default y 174 ---help--- 175 The credit2 scheduler is a general purpose scheduler that is 176 optimized for lower latency and higher VM density. 177 178config SCHED_RTDS 179 bool "RTDS scheduler support (EXPERIMENTAL)" 180 default y 181 ---help--- 182 The RTDS scheduler is a soft and firm real-time scheduler for 183 multicore, targeted for embedded, automotive, graphics and gaming 184 in the cloud, and general low-latency workloads. 185 186config SCHED_ARINC653 187 bool "ARINC653 scheduler support (EXPERIMENTAL)" 188 default y 189 ---help--- 190 The ARINC653 scheduler is a hard real-time scheduler for single 191 cores, targeted for avionics, drones, and medical devices. 192 193config SCHED_NULL 194 bool "Null scheduler support (EXPERIMENTAL)" 195 default y 196 ---help--- 197 The null scheduler is a static, zero overhead scheduler, 198 for when there always are less vCPUs than pCPUs, typically 199 in embedded or HPC scenarios. 200 201choice 202 prompt "Default Scheduler?" 203 default SCHED_CREDIT_DEFAULT 204 205 config SCHED_CREDIT_DEFAULT 206 bool "Credit Scheduler" if SCHED_CREDIT 207 config SCHED_CREDIT2_DEFAULT 208 bool "Credit2 Scheduler" if SCHED_CREDIT2 209 config SCHED_RTDS_DEFAULT 210 bool "RT Scheduler" if SCHED_RTDS 211 config SCHED_ARINC653_DEFAULT 212 bool "ARINC653 Scheduler" if SCHED_ARINC653 213 config SCHED_NULL_DEFAULT 214 bool "Null Scheduler" if SCHED_NULL 215endchoice 216 217config SCHED_DEFAULT 218 string 219 default "credit" if SCHED_CREDIT_DEFAULT 220 default "credit2" if SCHED_CREDIT2_DEFAULT 221 default "rtds" if SCHED_RTDS_DEFAULT 222 default "arinc653" if SCHED_ARINC653_DEFAULT 223 default "null" if SCHED_NULL_DEFAULT 224 default "credit" 225 226endmenu 227 228config CRYPTO 229 bool 230 231config LIVEPATCH 232 bool "Live patching support" 233 default X86 234 depends on HAS_BUILD_ID = "y" 235 ---help--- 236 Allows a running Xen hypervisor to be dynamically patched using 237 binary patches without rebooting. This is primarily used to binarily 238 patch in the field an hypervisor with XSA fixes. 239 240 If unsure, say Y. 241 242config FAST_SYMBOL_LOOKUP 243 bool "Fast symbol lookup (bigger binary)" 244 default y 245 depends on LIVEPATCH 246 ---help--- 247 When searching for symbol addresses we can use the built-in system 248 that is optimized for searching symbols using addresses as the key. 249 However using it for the inverse (find address using the symbol name) 250 it is slow. This extra data and code (~55kB) speeds up the search. 251 The only user of this is Live patching. 252 253 If unsure, say Y. 254 255config SUPPRESS_DUPLICATE_SYMBOL_WARNINGS 256 bool "Suppress duplicate symbol warnings" if !LIVEPATCH 257 default y if !LIVEPATCH 258 ---help--- 259 Multiple symbols with the same name aren't generally a problem 260 unless Live patching is to be used, so these warnings can be 261 suppressed by enabling this option. Certain other options (known 262 to produce many duplicate names) may select this to avoid the 263 build becoming overly verbose. 264 265config CMDLINE 266 string "Built-in hypervisor command string" if EXPERT = "y" 267 default "" 268 ---help--- 269 Enter arguments here that should be compiled into the hypervisor 270 image and used at boot time. When the system boots, this string 271 will be parsed prior to the bootloader command line. So if a 272 non-cumulative option is set both in this string and in the 273 bootloader command line, only the latter one will take effect. 274 275config CMDLINE_OVERRIDE 276 bool "Built-in command line overrides bootloader arguments" 277 default n 278 depends on CMDLINE != "" 279 ---help--- 280 Set this option to 'Y' to have the hypervisor ignore the bootloader 281 command line, and use ONLY the built-in command line. 282 283 This is used to work around broken bootloaders. This should 284 be set to 'N' under normal conditions. 285endmenu 286