/qemu/docs/interop/ |
H A D | vfio-user.rst | 14 of a generic VFIO device type, living inside the VMM, which we call the client, 15 and the core device implementation, living outside the VMM, which we call the 18 The vfio-user specification is partly based on the 21 VFIO is a mature and stable API, backed by an extensively used framework. The 24 particular implementation. None of the VFIO kernel modules are required for 25 supporting the protocol, on either the client or server side. Some source 28 The main idea is to allow a virtual device to function in a separate process in 29 the same host over a UNIX domain socket. A UNIX domain socket (``AF_UNIX``) is 33 * Sharing of client memory for DMA with the server. 34 * Sharing of server memory with the client for fast MMIO. [all …]
|
/qemu/docs/system/ |
H A D | tls.rst | 6 Almost all network services in QEMU have the ability to use TLS for 9 certificates suitable for usage with QEMU, and applies to the VNC 10 server, character devices with the TCP backend, NBD server and client, 14 provided in PEM format. Aside from the core fields, the certificates 18 The GnuTLS package includes a command called ``certtool`` which can be 19 used to easily generate certificates and keys in the required format 28 Assuming that the QEMU network services will only ever be exposed to 31 sufficient, and in fact likely to be more secure since it removes the 32 ability of malicious 3rd parties to trick the CA into mis-issuing certs 33 for impersonating your services. The only likely exception where a [all …]
|
H A D | qemu-block-drivers.rst.inc | 5 any of the tools (like ``qemu-img``). This includes the preferred formats 9 Depending on the image format, different options can be passed to 10 ``qemu-img create`` and ``qemu-img convert`` using the ``-o`` option. 11 This section describes each format and the options that are supported for it. 16 Raw disk image format. This format has the advantage of 19 Linux or NTFS on Windows), then only the written sectors will reserve 20 space. Use ``qemu-img info`` to know the real size used by the 32 may not be zero, depending on the storage location. 37 QEMU image format, the most versatile format. Use it to have smaller 47 Determines the qcow2 version to use. ``compat=0.10`` uses the [all …]
|
H A D | virtio-net-failover.rst | 5 This document explains the setup and usage of virtio-net standby feature which 8 The general idea is that we have a pair of devices, a (vfio-)pci and a 9 virtio-net device. Before migration the vfio device is unplugged and data flows 10 through the virtio-net device, on the target side another vfio-pci device is 11 plugged in to take over the data-path. In the guest the net_failover kernel 12 module will pair net devices with the same MAC address. 14 The two devices are called primary and standby device. The fast hardware based 15 networking device is called the primary device and the virtio-net device is the 22 can be lifted in the future with enhanced QEMU support. Also, only networking 23 devices are allowed as primary device. The user needs to ensure that primary [all …]
|
H A D | replay.rst | 5 of the Russian Academy of Sciences. 7 This work is licensed under the terms of the GNU GPL, version 2 or later. 8 See the COPYING file in the top-level directory. 13 Record/replay functions are used for the deterministic replay of qemu execution. 15 used for replaying the execution anywhere and for unlimited number of times. 16 It also supports checkpointing for faster rewind to the specific replay moment. 17 Execution replaying reads the log and replays all non-deterministic events 20 Deterministic replay has the following features: 23 the memory, state of the hardware devices, clocks, and screen of the VM. 24 * Writes execution log into the file for later replaying for multiple times [all …]
|
/qemu/docs/specs/ |
H A D | fsi.rst | 5 The QEMU FSI emulation implements hardware interfaces between ASPEED SOC, FSI 6 master/slave and the end engine. 13 FSI allows a service processor access to the internal buses of a host POWER 16 into the ASPEED SoC. 18 Working backwards from the POWER processor, the fundamental pieces of interest 19 for the implementation are: (see the `FSI specification`_ for more details) 21 1. The Common FRU Access Macro (CFAM), an address space containing various 22 "engines" that drive accesses on buses internal and external to the POWER 23 chip. Examples include the SBEFIFO and I2C masters. The engines hang off of 24 an internal Local Bus (LBUS) which is described by the CFAM configuration [all …]
|
H A D | ppc-xive.rst | 5 The POWER9 processor comes with a new interrupt controller 9 Compared to the previous architecture, the main characteristics of 12 assistance. This removes the context switches required for the 19 The XIVE IC is composed of three sub-engines, each taking care of a 23 (SC). These are found in PCI PHBs, in the Processor Service 24 Interface (PSI) host bridge Controller, but also inside the main 25 controller for the core IPIs and other sub-chips (NX, CAP, NPU) of 26 the chip/processor. They are configured to feed the IVRE with 33 Controller (PC). It maintains the interrupt context state of each 34 thread and handles the delivery of the external interrupt to the [all …]
|
H A D | ppc-spapr-xive.rst | 4 The POWER9 processor comes with a new interrupt controller 7 virtualization features which enables the HW to deliver interrupts 15 the hypervisor provides identical interfaces and similar 16 functionality to PAPR+ Version 2.7. This is the default mode 22 the hypervisor provides new interfaces to manage the XIVE control 26 Which interrupt modes can be used by the machine is negotiated with 27 the guest O/S during the Client Architecture Support negotiation 28 sequence. The two modes are mutually exclusive. 30 Both interrupt mode share the same IRQ number space. See below for the 36 QEMU advertises the supported interrupt modes in the device tree [all …]
|
/qemu/include/crypto/ |
H A D | cipher.h | 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * version 2.1 of the License, or (at your option) any later version. 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 * You should have received a copy of the GNU Lesser General Public 35 * The QCryptoCipher object provides a way to perform encryption 36 * and decryption of data, with a standard API, regardless of the 37 * algorithm used. It further isolates the calling code from the [all …]
|
/qemu/docs/devel/ |
H A D | tracing.rst | 10 This document describes the tracing infrastructure in QEMU and how to use it 24 This output comes from the "log" trace backend that is enabled by default when 27 Multiple patterns can be specified by repeating the ``--trace`` option:: 44 Each directory in the source tree can declare a set of trace events in a local 46 listed in the "trace_events_subdirs" variable in the top level meson.build 47 file. During build, the "trace-events" file in each listed subdirectory will be 48 processed by the "tracetool" script to generate code for the trace events. 50 The individual "trace-events" files are merged into a "trace-events-all" file, 52 This merged file is to be used by the "simpletrace.py" script to later analyse 53 traces in the simpletrace data format. [all …]
|
H A D | submitting-a-patch.rst | 7 the documentation. However, we get a lot of patches, and so we have 13 one-shot fix, the bare minimum we ask is that: 22 …- States you are legally able to contribute the code. See :ref:`patch_emails_must_include_a_signed… 24 - The project uses an email list based workflow. See :ref:`submitting_your_patches` 29 preserve CCs and keep non-subscribers in the loop on the threads they 32 volume of email, often over one thousand messages in a week. The list is 37 The larger your contribution is, or if you plan on becoming a long-term 38 contributor, then the more important the rest of this page becomes. 39 Reading the table of contents below should already give you an idea of 40 the basic requirements. Use the table of contents as a reference, and [all …]
|
H A D | lockcnt.rst | 14 ``QLIST_FOREACH_SAFE`` protects against deletion of the current node (``ioh``) 16 actually delete the next node from the list. The simplest way to 17 avoid this is to mark the node as deleted, and remove it from the 18 list in the above loop:: 32 ``ioh->fd_write`` invokes the loop again, some kind of counting is needed:: 49 One may think of using the RCU primitives, ``rcu_read_lock()`` and 50 ``rcu_read_unlock()``; effectively, the RCU nesting count would take 51 the place of the walking_handlers global variable. Indeed, 59 - reference counting works even in the presence of code that keeps 65 the introduction of threads by many years. RCU is generally used to [all …]
|
H A D | rust.rst | 6 Rust in QEMU is a project to enable using the Rust programming language 9 Right now, the focus is on making it possible to write devices that inherit 16 Building the Rust in QEMU code 19 The Rust in QEMU code is included in the emulators via Meson. Meson 21 together with the C code. This is completely automatic when you run 25 are accustomed to the more "normal" Cargo-based development workflow. 28 * the set of warnings and lints that are used to build QEMU always 29 comes from the ``rust/Cargo.toml`` workspace file 37 of Cargo will complain that it cannot find the generated sources, 50 * by invoking ``cargo`` through the Meson `development environment`__ [all …]
|
H A D | qapi-code-gen.rst | 2 How to use the QAPI code generator 9 This work is licensed under the terms of the GNU GPL, version 2 or 10 later. See the COPYING file in the top-level directory. 20 format for the QEMU Monitor Protocol (QMP) for controlling qemu, as 21 well as the QEMU Guest Agent (QGA) for communicating with the guest. 22 The remainder of this document uses "Client JSON Protocol" when 23 referring to the wire contents of a QMP or QGA connection. 25 To map between Client JSON Protocol interfaces and the native C API, 26 we generate C code from a QAPI schema. This document describes the 27 QAPI schema language, and how it gets mapped to the Client JSON [all …]
|
/qemu/include/block/ |
H A D | aio.h | 9 * This work is licensed under the terms of the GNU GPL, version 2. See 10 * the COPYING file in the top-level directory. 68 * @ctx: the AioContext 69 * @old_node: the existing handler or NULL if this file descriptor is being 70 * monitored for the first time 71 * @new_node: the new handler or NULL if this file descriptor is being 82 * @ctx: the AioContext 96 * @ctx: the AioContext 112 * Each aio_bh_poll() call carves off a slice of the BH list, so that newly 113 * scheduled BHs are not processed until the next aio_bh_poll() call. All [all …]
|
H A D | blockjob_int.h | 8 * of this software and associated documentation files (the "Software"), to deal 9 * in the Software without restriction, including without limitation the rights 11 * copies of the Software, and to permit persons to whom the Software is 12 * furnished to do so, subject to the following conditions: 14 * The above copyright notice and this permission notice shall be included in 15 * all copies or substantial portions of the Software. 17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN [all …]
|
/qemu/block/ |
H A D | qed-l2-cache.c | 9 * This work is licensed under the terms of the GNU LGPL, version 2 or later. 10 * See the COPYING.LIB file in the top-level directory. 17 * An open image has one L2 table cache that is used to avoid accessing the 20 * Cluster offset lookup translates the logical offset within the block device 21 * to a cluster offset within the image file. This is done by indexing into 22 * the L1 and L2 tables which store cluster offsets. It is here where the L2 25 * If there is a cache miss, that L2 table is read from the image file and 26 * committed to the cache. Subsequent accesses to that L2 table will be served 27 * from the cache until the table is evicted from the cache. 29 * L2 tables are also committed to the cache when new L2 tables are allocated [all …]
|
/qemu/docs/ |
H A D | throttle.txt | 1 The QEMU throttling infrastructure 6 This work is licensed under the terms of the GNU GPL, version 2 or 7 later. See the COPYING file in the top-level directory. 12 I/O operations. The code itself is generic and independent of the I/O 13 units, but it is currently used to limit the number of bytes per second 16 This document explains how to use the throttling code in QEMU, and how 17 it works internally. The implementation is in throttle.c. 22 Two aspects of the disk I/O can be limited: the number of bytes per 23 second and the number of operations per second (IOPS). For each one of 24 them the user can set a global limit or separate limits for read and [all …]
|
/qemu/docs/devel/migration/ |
H A D | dirty-limit.rst | 4 The dirty limit, short for dirty page rate upper limit, is a new capability 5 introduced in the 8.1 QEMU release that uses a new algorithm based on the KVM 6 dirty ring to throttle down the guest during live migration. 8 The algorithm framework is as follows: 28 When the qmp command qmp_set_vcpu_dirty_limit is called for the first time, 29 the QEMU main thread starts the throttle thread. The throttle thread, once 30 launched, executes the loop, which consists of three steps: 34 The entire work of PREPARE (1) is preparation for the second stage, 35 CALCULATE(2), as the name implies. It involves preparing the dirty 36 page rate value and the corresponding upper limit of the VM: [all …]
|
/qemu/tests/uefi-test-tools/UefiTestToolsPkg/Include/Guid/ |
H A D | BiosTablesTest.h | 2 Expose the address(es) of the ACPI RSD PTR table(s) and the SMBIOS entry 3 point(s) in a MB-aligned structure to the hypervisor. 5 The hypervisor locates the MB-aligned structure based on the signature GUID 6 that is at offset 0 in the structure. Once the RSD PTR and SMBIOS anchor 7 address(es) are retrieved, the hypervisor may perform various ACPI and SMBIOS 15 This program and the accompanying materials are licensed and made available 16 under the terms and conditions of the BSD License that accompanies this 17 distribution. The full text of the license may be found at 20 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT 40 // The following structure must be allocated in Boot Services Data type memory, [all …]
|
/qemu/include/standard-headers/linux/ |
H A D | input.h | 6 * under the terms of the GNU General Public License version 2 as published by 7 * the Free Software Foundation. 20 * The event structure itself 65 * @value: latest reported value for the axis. 66 * @minimum: specifies minimum value for the axis. 67 * @maximum: specifies maximum value for the axis. 69 * the event stream. 72 * @resolution: specifies resolution for the values reported for 73 * the axis. 75 * Note that input core does not clamp reported values to the [all …]
|
H A D | vmclock-abi.h | 4 * This structure provides a vDSO-style clock to VM guests, exposing the 5 * relationship (or lack thereof) between the CPU clock (TSC, timebase, arch 6 * counter, etc.) and real time. It is designed to address the problem of 9 * When a guest is live migrated, this affects the clock in two ways. 11 * First, even between identical hosts the actual frequency of the underlying 12 * counter will change within the tolerances of its specification (typically 13 * ±50PPM, or 4 seconds a day). This frequency also varies over time on the 15 * live migration there is a step change in the frequency, with no warning. 17 * Second, there may be a step change in the value of the counter itself, as 18 * its accuracy is limited by the precision of the NTP synchronization on the [all …]
|
/qemu/include/hw/virtio/ |
H A D | vhost.h | 89 /* the first virtqueue which would be used by this vhost dev */ 91 /* one past the last vq index for the virtio device (not vhost) */ 96 * vhost feature handling requires matching the feature set 97 * offered by a backend which may be a subset of the total 98 * features eventually offered to the guest. 100 * @features: available features provided by the backend 106 * future use should be discouraged and the variable retired as 107 * its easy to confuse with the VirtIO backend_features. 114 * @protocol_features: is the vhost-user only feature set by 117 * by the backend (see @features). [all …]
|
/qemu/include/qemu/ |
H A D | fifo8.h | 16 * @capacity: capacity of the newly created FIFO 18 * Create a FIFO of the specified capacity. Clients should call fifo8_destroy() 19 * when finished using the fifo. The FIFO is initially empty. 28 * storage. The FIFO is no longer usable after this has been called. 37 * Push a data byte to the FIFO. Behaviour is undefined if the FIFO is full. 48 * Push a byte array to the FIFO. Behaviour is undefined if the FIFO is full. 49 * Clients are responsible for checking the space left in the FIFO using 58 * Pop a data byte from the FIFO. Behaviour is undefined if the FIFO is empty. 61 * Returns: The popped data byte. 69 * Peek the data byte at the current head of the FIFO. Clients are responsible [all …]
|
/qemu/qapi/ |
H A D | block-core.json | 20 # @vm-state-size: size of the VM state 22 # @date-sec: UTC date of the snapshot in seconds 33 # the moment in the recorded execution with the snapshots. This 48 # @format: The encryption format 70 # @data-file: the filename of the external data file that is stored in 71 # the image and used as a default for opening the image 74 # @data-file-raw: True if the external data file must stay valid as a 78 # @extended-l2: true if the image has extended L2 entries; only valid 83 # @corrupt: true if the image has been marked corrupt; only valid for 93 # @compression-type: the image cluster compression method (since 5.1) [all …]
|