/qemu/docs/system/i386/ |
H A D | kvm-pv.rst | 1 Paravirtualized KVM features 5 ----------- 7 In some cases when implementing hardware interfaces in software is slow, ``KVM`` 11 ----- 13 Paravirtualized ``KVM`` features are represented as CPU flags. The following 14 features are enabled by default for any CPU model when ``KVM`` acceleration is 17 - ``kvmclock`` 18 - ``kvm-nopiodelay`` 19 - ``kvm-asyncpf`` 20 - ``kvm-steal-time`` [all …]
|
H A D | hyperv.rst | 1 Hyper-V Enlightenments 6 ----------- 8 In some cases when implementing a hardware interface in software is slow, KVM 11 It may, however, be hard-to-impossible to add support for these interfaces to 14 KVM on x86 implements Hyper-V Enlightenments for Windows guests. These features 15 make Windows and Hyper-V guests think they're running on top of a Hyper-V 16 compatible hypervisor and use Hyper-V specific features. 20 ----- 22 No Hyper-V enlightenments are enabled by default by either KVM or QEMU. In 25 .. parsed-literal:: [all …]
|
H A D | xen.rst | 6 ----------- 8 KVM has support for hosting Xen guests, intercepting Xen hypercalls and event 10 run under Xen to be hosted in QEMU under Linux/KVM instead. 15 ----- 17 Xen mode is enabled by setting the ``xen-version`` property of the KVM 20 .. parsed-literal:: 22 |qemu_system| --accel kvm,xen-version=0x40011,kernel-irqchip=split 25 ``xen-vapic`` CPU flag: 27 .. parsed-literal:: 29 |qemu_system| --accel kvm,xen-version=0x40011,kernel-irqchip=split --cpu host,+xen-vapic [all …]
|
H A D | tdx.rst | 5 Virtual Machine Extensions (VMX) and Multi-Key Total Memory Encryption (MKTME) 12 ------------- 15 while KVM hypervisor has TDX support and has TDX enabled. If those requirements 25 KVM vcpu ioctl ``KVM_TDX_INIT_MEM_REGION`` can be used to populate the TDVF 29 device and it actually works as RAM. "-bios" option is chosen to load TDVF. 32 command line to specify and load TDVF is ``-bios OVMF.fd`` 35 --------------------- 37 Unlike non-TDX VM, the CPU features (enumerated by CPU or MSR) of a TD are not 43 - Attributes: 44 - PKS (bit 30) controls whether Supervisor Protection Keys is exposed to TD, [all …]
|
/qemu/docs/specs/ |
H A D | ppc-spapr-xive.rst | 13 - *Legacy Compatibility Mode* 20 - *XIVE native exploitation mode* 34 --------------- 37 property ``ibm,arch-vec-5-platform-support`` in byte 23 and the OS 38 Selection for XIVE is indicated in the ``ibm,architecture-vec-5`` 43 ``ic-mode`` which can be set on the command line. It can take the 52 KVM negotiation 53 --------------- 55 When the guest starts under KVM, the capabilities of the host kernel 57 kernel, KVM will advertise the XIVE capability to QEMU or not. [all …]
|
H A D | riscv-aia.rst | 1 .. _riscv-aia: 3 RISC-V AIA support for RISC-V machines 7 RISC-V machine for TCG and KVM accelerators. 11 - "aia=aplic": adds one or more APLIC (Advanced Platform Level Interrupt Controller) 13 - "aia=aplic-imsic": adds one or more APLIC device and an IMSIC (Incoming MSI 18 emulated in userspace versus what is being emulated by an in-kernel irqchip. 21 (m-mode) APLIC and IMSIC (when applicable). 23 When running KVM: 25 - no m-mode is provided, so there is no m-mode APLIC or IMSIC emulation regardless of 27 - with "aia=aplic", s-mode APLIC will be emulated by userspace [all …]
|
/qemu/target/arm/ |
H A D | kvm_arm.h | 2 * QEMU KVM support -- ARM specific functions. 7 * See the COPYING file in the top-level directory. 14 #include "system/kvm.h" 15 #include "target/arm/cpu-qom.h" 23 * @devid: the KVM device ID 31 * @devid should be the ID of the device as defined by the arm-vgic device 46 * This updates KVM's working data structures from TCG data or 52 * Note that we do not stop early on failure -- we will attempt 63 * copy info from KVM's working data structures into TCG or 68 * Note that we do not stop early on failure -- we will attempt [all …]
|
H A D | kvm.c | 2 * ARM implementation of KVM hooks 4 * Copyright Christoffer Dall 2009-2010 5 * Copyright Mian-M. Hamayun 2013, Virtual Open Systems 9 * See the COPYING file in the top-level directory. 16 #include <linux/kvm.h> 19 #include "qemu/error-report.h" 20 #include "qemu/main-loop.h" 25 #include "system/kvm.h" 33 #include "system/address-spaces.h" 80 init.target = cpu->kvm_target; in kvm_arm_vcpu_init() [all …]
|
/qemu/docs/system/arm/ |
H A D | cpu-features.rst | 10 Cortex-A15 and the Cortex-A57, which respectively implement Arm 11 architecture reference manuals ARMv7-A and ARMv8-A, may both optionally 12 implement PMUs. For example, if a user wants to use a Cortex-A15 without 13 a PMU, then the ``-cpu`` parameter should contain ``pmu=off`` on the QEMU 14 command line, i.e. ``-cpu cortex-a15,pmu=off``. 18 that implement the ARMv8-A architecture reference manual may optionally 20 ``aarch64`` CPU property. A CPU type such as the Cortex-A15, which does 21 not implement ARMv8-A, will not have the ``aarch64`` CPU property. 27 when using the KVM accelerator and when running on a host CPU type that 28 supports the feature. While ``aarch64`` currently only works with KVM, [all …]
|
/qemu/include/system/ |
H A D | kvm.h | 2 * QEMU KVM support 10 * See the COPYING file in the top-level directory. 14 /* header to be included in non-KVM-specific code */ 25 # include <linux/kvm.h> 51 * Returns: true if an in-kernel irqchip was created. 55 * target-independent code: use one of the following functions or 73 * Returns: true if we can deliver interrupts to KVM 92 * a KVM CPU (ie the kernel supports irqfds and we are running 95 * Always available if running with in-kernel irqchip. 103 * a KVM CPU (ie the kernel supports resamplefds and we are running [all …]
|
/qemu/docs/system/ppc/ |
H A D | pseries.rst | 5 The Power machine para-virtualized environment described by the Linux on Power 18 - POWER7, POWER7+ 19 - POWER8, POWER8NVL 20 - POWER9 21 - Power10 22 - Power11 23 - Support for POWER5+ also exists, works with correct kernel/userspace 25 - XICS (POWER8) 26 - XIVE (Supported by below:) 27 - POWER9 [all …]
|
H A D | powernv.rst | 4 PowerNV (as Non-Virtualized) is the "bare metal" platform using the 6 be used as an hypervisor OS, running KVM guests, or simply as a host 16 ----------------- 24 * Simple OCC is an on-chip micro-controller used for power management tasks. 30 --------------- 44 -------- 49 GitHub <https://github.com/open-power>`_. 52 `OpenPOWER <https://github.com/open-power/op-build/releases/>`__ site. 58 --------------------------- 60 KVM acceleration in Linux Power hosts is provided by the kvm-hv and [all …]
|
/qemu/docs/devel/ |
H A D | multi-process.rst | 1 Multi-process QEMU 6 This is the design document for multi-process QEMU. It does not 31 ------------- 34 VM control point, where VMs can be created, migrated, re-configured, and 40 A multi-process QEMU 43 A multi-process QEMU involves separating QEMU services into separate 51 A QEMU control process would remain, but in multi-process mode, will 53 provide the user interface to hot-plug devices or live migrate the VM. 55 A first step in creating a multi-process QEMU is to separate IO services 62 ---------------------- [all …]
|
/qemu/hw/intc/ |
H A D | spapr_xive_kvm.c | 4 * Copyright (c) 2017-2019, IBM Corporation. 7 * COPYING file in the top-level directory. 12 #include "qemu/error-report.h" 16 #include "system/kvm.h" 46 if (enabled_cpu->vcpu_id == vcpu_id) { in kvm_cpu_is_enabled() 59 enabled_cpu->vcpu_id = vcpu_id; in kvm_cpu_enable() 74 * XIVE Thread Interrupt Management context (KVM) 79 SpaprXive *xive = SPAPR_XIVE(tctx->xptr); in kvmppc_xive_cpu_set_state() 83 assert(xive->fd != -1); in kvmppc_xive_cpu_set_state() 86 state[0] = *((uint64_t *) &tctx->regs[TM_QW1_OS]); in kvmppc_xive_cpu_set_state() [all …]
|
H A D | xics_kvm.c | 4 * PAPR Virtualized Interrupt System, aka ICS/ICP aka xics, in-kernel emulation 31 #include "system/kvm.h" 37 #include "qemu/config-file.h" 38 #include "qemu/error-report.h" 42 static int kernel_xics_fd = -1; 63 * ICP-KVM 70 /* The KVM XICS device is not in use */ in icp_get_kvm_state() 71 if (kernel_xics_fd == -1) { in icp_get_kvm_state() 76 if (!icp->cs) { in icp_get_kvm_state() 80 ret = kvm_get_one_reg(icp->cs, KVM_REG_PPC_ICP_STATE, &state); in icp_get_kvm_state() [all …]
|
/qemu/target/i386/kvm/ |
H A D | kvm-cpu.c | 2 * x86 KVM CPU type initialization 7 * See the COPYING file in the top-level directory. 12 #include "host-cpu.h" 18 #include "accel/accel-cpu-target.h" 25 eax = kvm_arch_get_supported_cpuid(cs->kvm_state, 0x80000008, 0, R_EAX); in kvm_set_guest_phys_bits() 30 cpu->guest_phys_bits = guest_phys_bits; in kvm_set_guest_phys_bits() 31 if (cpu->guest_phys_bits > cpu->phys_bits) { in kvm_set_guest_phys_bits() 32 cpu->guest_phys_bits = cpu->phys_bits; in kvm_set_guest_phys_bits() 35 if (cpu->host_phys_bits && cpu->host_phys_bits_limit && in kvm_set_guest_phys_bits() 36 cpu->guest_phys_bits > cpu->host_phys_bits_limit) { in kvm_set_guest_phys_bits() [all …]
|
/qemu/hw/vfio/ |
H A D | helpers.c | 11 * the COPYING file in the top-level directory. 13 * Based on qemu-kvm device-assignment: 14 * Adapted for KVM by Qumranet. 19 * Copyright (C) 2008, IBM, Muli Ben-Yehuda (muli@il.ibm.com) 25 #include "system/kvm.h" 26 #include "hw/vfio/vfio-device.h" 29 #include "vfio-helpers.h" 33 vbmap->pages = REAL_HOST_PAGE_ALIGN(size) / qemu_real_host_page_size(); in vfio_bitmap_alloc() 34 vbmap->size = ROUND_UP(vbmap->pages, sizeof(__u64) * BITS_PER_BYTE) / in vfio_bitmap_alloc() 36 vbmap->bitmap = g_try_malloc0(vbmap->size); in vfio_bitmap_alloc() [all …]
|
/qemu/tests/qtest/ |
H A D | arm-cpu-features.c | 9 * See the COPYING file in the top-level directory. 18 * We expect the SVE max-vq to be 16. Also it must be <= 64 23 #define MACHINE "-machine virt,gic-version=max -accel tcg " 24 #define MACHINE_KVM "-machine virt,gic-version=max -accel kvm " 25 #define QUERY_HEAD "{ 'execute': 'query-cpu-model-expansion', " \ 191 resp = qtest_qmp(qts, "{ 'execute': 'query-cpu-model-expansion', " in assert_type_full() 207 resp = qtest_qmp(qts, "{ 'execute': 'query-cpu-model-expansion', " in assert_bad_props() 234 if (strlen(e->key) > 3 && !strncmp(e->key, "sve", 3) && in resp_get_sve_vls() 235 g_ascii_isdigit(e->key[3])) { in resp_get_sve_vls() 239 bits = g_ascii_strtoll(&e->key[3], &endptr, 10); in resp_get_sve_vls() [all …]
|
/qemu/.gitlab-ci.d/ |
H A D | crossbuilds.yml | 2 - local: '/.gitlab-ci.d/crossbuild-template.yml' 4 cross-armhf-user: 7 job: armhf-debian-cross-container 9 IMAGE: debian-armhf-cross 11 cross-arm64-system: 14 job: arm64-debian-cross-container 16 IMAGE: debian-arm64-cross 18 cross-arm64-user: 21 job: arm64-debian-cross-container 23 IMAGE: debian-arm64-cross [all …]
|
/qemu/scripts/kvm/ |
H A D | kvm_flightrecorder | 3 # KVM Flight Recorder - ring buffer tracing script 9 # This script provides a command-line interface to kvm ftrace and is designed 10 # to be used as a flight recorder that is always running. To start in-memory 13 # sudo kvm_flightrecorder start 8192 # 8 MB per-cpu ring buffers 15 # The per-cpu ring buffer size can be given in KB as an optional argument to 33 # fixed-size in-memory trace. 53 enable_subsystem('kvm', True) 58 enable_subsystem('kvm', False) 81 print('Control the KVM flight recorder tracing.') 89 if cmd == '--version': [all …]
|
/qemu/target/s390x/kvm/ |
H A D | trace-events | 3 # kvm.c 6 …_index, uint8_t state, const char *msg) "Warning: Unable to set cpu %d state %" PRIu8 " to KVM: %s" 9 kvm_sw_breakpoint(uint32_t n) "KVM: will use %d-byte sw breakpoints" 10 kvm_insn_unhandled_priv(uint32_t x) "KVM: unhandled PRIV: 0x%x" 11 kvm_insn_diag(uint32_t x) "KVM: unknown DIAG: 0x%x"
|
/qemu/accel/kvm/ |
H A D | kvm-accel-ops.c | 2 * QEMU KVM support 12 * See the COPYING file in the top-level directory. 17 #include "qemu/error-report.h" 18 #include "qemu/main-loop.h" 19 #include "system/accel-ops.h" 20 #include "system/kvm.h" 24 #include "qemu/guest-random.h" 27 #include <linux/kvm.h> 28 #include "kvm-cpus.h" 38 qemu_thread_get_self(cpu->thread); in kvm_vcpu_thread_fn() [all …]
|
/qemu/target/riscv/kvm/ |
H A D | kvm-cpu.c | 2 * RISC-V implementation of KVM hooks 23 #include <linux/kvm.h> 27 #include "qemu/error-report.h" 28 #include "qemu/main-loop.h" 31 #include "system/kvm.h" 35 #include "accel/accel-cpu-target.h" 38 #include "system/address-spaces.h" 46 #include "chardev/char-fe.h" 89 size_b = cpu->cfg.vlenb; in kvm_riscv_vector_reg_id() 146 /* KVM ISA extensions */ [all …]
|
/qemu/python/qemu/utils/ |
H A D | accel.py | 7 # Copyright (C) 2015-2016 Red Hat Inc. 14 # the COPYING file in the top-level directory. 34 def list_accel(qemu_bin: str) -> List[str]: 39 @raise Exception: if failed to run ``qemu -accel help`` 45 out = subprocess.check_output([qemu_bin, '-accel', 'help'], 55 qemu_bin: Optional[str] = None) -> bool: 57 Check if KVM is available using the following heuristic: 58 - Kernel module is present in the host; 59 - Target and host arches don't mismatch; 60 - KVM is enabled in the QEMU binary. [all …]
|
/qemu/hw/s390x/ |
H A D | s390-pci-kvm.c | 2 * s390 zPCI KVM interfaces 8 * your option) any later version. See the COPYING file in the top-level 14 #include <linux/kvm.h> 16 #include "kvm/kvm_s390x.h" 17 #include "target/s390x/kvm/pv.h" 18 #include "hw/s390x/s390-pci-bus.h" 19 #include "hw/s390x/s390-pci-kvm.h" 20 #include "hw/s390x/s390-pci-inst.h" 21 #include "hw/s390x/s390-pci-vfio.h" 33 .fh = pbdev->fh, in s390_pci_kvm_aif_enable() [all …]
|