/qemu/docs/devel/migration/ |
H A D | main.rst | 7 QEMU has code to load/save the state of the guest that it is running. 9 that, saves the state for each device that the guest is running. 14 two times. I.e. it can only restore the state in one guest that has 15 the same devices that the one it was saved (this last requirement can 16 be relaxed a bit, but for now we can consider that configuration has 19 Once that we are able to save/restore a guest, a new functionality is 20 requested: migration. This means that QEMU is able to start in one 29 the guest to be stopped. Typically the time that the guest is 31 (notice that this depends on a lot of things). 38 The migration stream is normally just a byte stream that can be passed [all …]
|
H A D | compatibility.rst | 12 There are two things that are different, but they have very similar 34 device feature exposure. But that is not relevant for this section. 36 I am going to list the number of combinations that we can have. Let's 55 the latest machine type for that version (pc-5.2) but one of an older 61 were configured on 5.1, but this should be easy in the sense that 71 different. Notice also that the machine type needs to be pc-5.1, 79 migration to qemu-5.1. Notice that we can't make updates to 90 compatibility problems. But the reason that we create qemu-5.2 is to 93 If we get a device that has a new feature, or change a default value, 97 So we need a way to tell qemu-5.2 that when we are using machine type [all …]
|
H A D | vfio.rst | 5 Migration of virtual machine involves saving the state for each device that 12 accommodate VFIO devices that have a large amount of data that needs to be 22 and recommends that the initial bytes are sent and loaded in the destination 24 guarantee that and thus, can potentially reduce downtime even further. 26 To support migration of multiple devices that might do P2P transactions between 33 All the devices that support P2P migration are first transitioned to the P2P 48 * A ``save_setup`` function that sets up migration on the source. 50 * A ``load_setup`` function that sets the VFIO device on the destination in 53 * A ``state_pending_estimate`` function that reports an estimate of the 54 remaining pre-copy data that the vendor driver has yet to save for the VFIO [all …]
|
H A D | postcopy.rst | 7 'Postcopy' migration is a way to deal with migrations that refuse to converge 8 (or take too long to converge) its plus side is that there is an upper bound on 9 the amount of migration traffic and time it takes, the down side is that during 13 transferred, and accesses to pages that are yet to be transferred cause 14 a fault that's translated by QEMU into a request to the source QEMU. 16 Postcopy can be combined with precopy (i.e. normal migration) so that if precopy 38 That metric is calculated both for all vCPUs as overlapped value, and 52 ``migrate_set_parameter`` is ignored (to avoid delaying requested pages that 68 checks that its OS has the support needed for postcopy, and performs 78 (using madvise) to ensure that no new huge pages are created [all …]
|
/qemu/tests/qtest/ |
H A D | stm32l4x5_exti-test.c | 70 /* Test that non-reserved bits in xMR and xTSR can be set and cleared */ in test_reg_write_read() 115 /* Test that direct lines reserved bits are not written to */ in test_direct_lines_write() 144 /* Test that reserved bits stay are not written to */ in test_reserved_bits_write() 168 * Test that we can launch a software irq by : in test_software_interrupt() 172 * And that the interruption stays pending in NVIC in test_software_interrupt() 182 /* Check that there are no interrupts already pending in PR */ in test_software_interrupt() 184 /* Check that this specific interrupt isn't pending in NVIC */ in test_software_interrupt() 193 /* Check that the write in SWIER was effective */ in test_software_interrupt() 195 /* Check that the corresponding pending bit in PR is set */ in test_software_interrupt() 197 /* Check that the corresponding interrupt is pending in the NVIC */ in test_software_interrupt() [all …]
|
/qemu/include/block/ |
H A D | graph-lock.h | 12 * This library is distributed in the hope that it will be useful, 31 * We distinguish between writer (main loop, under BQL) that modifies the 33 * that go through the graph edges, reading 49 * balance the positive count of the AioContext that took the lock. 50 * This also means that when an AioContext is deleted it may have a nonzero 51 * reader count. In that case we transfer the count to a global shared counter 52 * so that the writer is always aware of all readers. 79 * this macro that will require that the lock is at least taken while reading 118 * all readers that are waiting. 129 * and if has_writer is set, it means that the writer is modifying [all …]
|
H A D | block_int-global-state.h | 45 * @base: Block device that will become the new base, or %NULL to 47 * @backing_file_str: The file name that will be written to @bs as the 51 * @creation_flags: Flags that control the behavior of the Job lifetime. 55 * @filter_node_name: The node name that should be assigned to the filter 56 * driver that the stream job inserts into the graph above 57 * @bs. NULL means that a node name should be autogenerated. 60 * Start a streaming operation on @bs. Clusters that are unallocated 82 * @base: Block device that will be written into, and become the new top. 83 * @creation_flags: Flags that control the behavior of the Job lifetime. 90 * @filter_node_name: The node name that should be assigned to the filter [all …]
|
/qemu/include/qemu/ |
H A D | main-loop.h | 43 * qemu_init_main_loop: Set up the process so that it can run the main loop. 47 * main one should block signals that are trapped by the main loop. 50 * signals if available. Remember that Windows in practice does not have 61 * one actually occurs. The main loop usually consists of a loop that 66 * that execute immediately, but have a lower overhead and scheduling them 71 * so that the main loop can run whenever the coroutine yields. To do this, 106 * that the main loop waits for. 121 * Polling callbacks do not ensure that @func is called timely, because 123 * you should instead create a separate thread that does a blocking poll 131 * @func: The function that does the polling, and returns 1 to force [all …]
|
/qemu/docs/devel/ |
H A D | kconfig.rst | 16 Each QEMU target enables a subset of the boards, devices and buses that 18 only links a small subset of the files that form QEMU's source code; 19 anything that is not needed to support a particular target is culled. 27 include all the required dependencies and all the devices that the 28 user can add to that board; 30 * users can easily build reduced versions of QEMU that support only a subset 32 all emulated PCI devices that QEMU supports, but the build process is 36 This domain-specific language is based on the Kconfig language that 44 QEMU; the default configuration that QEMU ships with should be okay in 51 Note that configurable components are _not_ visible in C code as preprocessor [all …]
|
H A D | rcu.rst | 4 Read-copy update (RCU) is a synchronization mechanism that is used to 22 The key point here is that only the currently running critical sections 23 are waited for; critical sections that are started **after** the beginning 26 for example, reader-writer locks. It is so much more scalable that 32 "removal" and "reclamation". During removal, we ensure that subsequent 35 the old data. Therefore, critical sections that begin after removal 57 that critical section. 66 Used by a reader to inform the reclaimer that the reader is 70 Used by a reader to inform the reclaimer that the reader is 71 exiting an RCU read-side critical section. Note that RCU [all …]
|
H A D | submitting-a-patch.rst | 13 one-shot fix, the bare minimum we ask is that: 26 - Code that doesn't pass review will not get merged. See :ref:`participating_in_code_review` 41 read the parts that you have doubts about. 56 check that you are in compliance with our coding standards. Be aware 57 that ``checkpatch.pl`` is not infallible, though, especially where C 74 It is also okay to base patches on top of other on-going work that is 89 patch two. (This rule is here so that people can later use tools like 93 last, so that someone reading the series can do a clean-room evaluation 94 of the documentation, then validate that the code matched the 95 documentation. A commit message that mentions "Also, ..." is often a [all …]
|
H A D | replay.rst | 21 Devices' models that have non-deterministic input from external devices were 57 can predict when to inject that event using the instruction counter. 65 system emulation. As it is important that batches of events are kept 99 of time. That's why we do not process a group of timers until the checkpoint 106 (called the warp timer) on the virtual real time clock, so that the 115 and it warps the virtual clock by the amount of real time that has passed 121 Record/replay mechanism, that could be enabled through icount mode, expects 123 everything that affects 132 * Real time clock. Based on host time and used only for callbacks that 137 That is why it is completely deterministic and does not have to be recorded. [all …]
|
H A D | multiple-iothreads.rst | 11 This document explains the ``IOThread`` feature and how to write code that runs 16 QEMU is an event-driven program that can do several things at once using an 26 not shared completely. Sometimes it is useful to remember that although they 41 The fact that all I/O processing is done in a single main loop and that the 53 The main difference between legacy code and new code that can run in an 55 (see ``include/block/aio.h``). Code that only works in the main loop 56 implicitly uses the main loop's ``AioContext``. Code that supports running 65 There are several old APIs that use the main loop AioContext: 73 Since they implicitly work on the main loop they cannot be used in code that 93 ``qemu_get_aio_context()``. Code that takes an ``AioContext`` argument [all …]
|
H A D | memory.rst | 10 - memory controllers that can dynamically reroute physical memory regions 21 buses, memory controllers, and memory regions that have been rerouted. 33 - RAM: a RAM region is simply a range of host memory that can be made available 39 - MMIO: a range of guest memory that is implemented by host callbacks; 64 useful to have overlapping regions; for example a memory controller that 66 that does not prevent card from claiming overlapping BARs. 73 of RAM addressed, or a memory controller that splits main memory to 83 It claims I/O space that is not supposed to be handled by QEMU itself. 89 (that is, to an MMIO, RAM or ROM region). This means that the region 90 will act like a container, except that any addresses within the container's [all …]
|
H A D | style.rst | 94 that use long function or symbol names. If wrapping the line at 80 columns 98 Even in that case, try not to make lines much longer than 80 characters. 110 at all that white space on the left!") moot. 120 uint64_t and family. Note that this last convention contradicts POSIX 126 A number of short naming conventions exist for variables that use 138 prefix to alert readers that they are seeing a wrapped version, for 140 that are widely called from across the codebase should not have any 144 The ``qemu_`` prefix is also used for functions that modify global 155 lock held, the function that expects the lock to be already held 162 concrete implementation of a function that will not be called [all …]
|
H A D | multi-process.rst | 18 infrastructure, a guest that compromised its hypervisor could 23 monolithic program that provides many features to the VMs it services. 27 limit each component in the system to only access the resources that 69 interface points where the QEMU functions that perform device emulation 70 can be separated from the QEMU functions that manage the emulation of 94 a couple of existing QEMU features that can run emulation code 105 application is a daemon process that can be contacted via a known UNIX 124 executes instructions that cannot be executed by virtual HW mode, 128 One of the events that can cause a return to QEMU is when a guest device 133 virtio code by setting up an eventfd file descriptor that the vhost [all …]
|
/qemu/linux-headers/LICENSES/preferred/ |
H A D | GPL-2.0 | 41 price. Our General Public Licenses are designed to make sure that you 43 this service if you wish), that you receive source code or can get it 44 if you want it, that you can change the software or use pieces of it 45 in new free programs; and that you know you can do these things. 47 To protect your rights, we need to make restrictions that forbid 53 gratis or for a fee, you must give the recipients all the rights that 54 you have. You must make sure that they, too, receive or can get the 63 that everyone understands that there is no warranty for this free 65 want its recipients to know that what they have is not the original, so 66 that any problems introduced by others will not reflect on the original [all …]
|
/qemu/ |
H A D | COPYING | 22 price. Our General Public Licenses are designed to make sure that you 24 this service if you wish), that you receive source code or can get it 25 if you want it, that you can change the software or use pieces of it 26 in new free programs; and that you know you can do these things. 28 To protect your rights, we need to make restrictions that forbid 34 gratis or for a fee, you must give the recipients all the rights that 35 you have. You must make sure that they, too, receive or can get the 44 that everyone understands that there is no warranty for this free 46 want its recipients to know that what they have is not the original, so 47 that any problems introduced by others will not reflect on the original [all …]
|
/qemu/migration/ |
H A D | migration-stats.h | 32 * based on MigrationStats. We change to Stat64 any counter that 38 * Number of bytes that were dirty last time that we synced with 39 * the guest memory. We use that to calculate the downtime. As 40 * the remaining dirty amounts to what we know that is still dirty 68 * Number of pages transferred that were not full of zeros. 76 * Number of postcopy page faults that we have handled during 101 * Number of pages transferred that were full of zeros. 109 * migration_rate_get: Get the maximum amount that can be transferred. 111 * Returns the maximum number of bytes that can be transferred in a cycle. 123 * migration_rate_set: Set the maximum amount that can be transferred. [all …]
|
/qemu/docs/specs/ |
H A D | ppc-spapr-numa.rst | 9 of the elements that impacts how QEMU views NUMA in pseries. 14 Associativity is defined as a group of platform resources that has 22 physical hierarchy of the platform, as one or more lists that starts 43 considering that the same resource can have multiple connections to the 49 The ibm,associativity-reference-points property is an array that is used 59 less significant boundaries. Allocated resources that belongs to the 61 that matches the relevancy of the boundary itself. Resources that belongs 73 the third level is the first element. Let's also consider that elements 76 means that the second would be 20 and the third level 40. For the P1 and 145 array that tells which level of associativity is considered to be relevant [all …]
|
/qemu/docs/devel/testing/ |
H A D | acpi-bits.rst | 7 Biosbits is a software written by Josh Triplett that can be downloaded 9 `here <https://github.com/biosbits/bits/tree/master>`__. It is a software that 14 with grub so actual routines that executes bios components can be written in 22 Another issue is that we cannot exercise bios components such as ACPI and 26 in order to write our test routines that exercise and test the bios. This is 53 functional test that drives all this. 73 This is the main python functional test script that generates a 87 build directory (assuming that the sources are in ".."): 104 This location contains biosbits configuration files that determine how the 108 This is the biosbits config file that determines what tests [all …]
|
/qemu/tests/qemu-iotests/ |
H A D | 130 | 4 # Test that temporary backing file overrides (on the command line or in 15 # This program is distributed in the hope that it will be useful, 63 # Test that a backing file isn't written 70 # Make sure that if there was a backing file that was just overridden on the 71 # command line, that backing file is retained, with the right format 83 # Test that a backing file isn't written 88 # Make sure that if there was a backing file that was just overridden on the 89 # command line, that backing file is retained, with the right format
|
H A D | 115 | 13 # This program is distributed in the hope that it will be useful, 50 # Create an image with an L1 table and a refcount table that each span twice the 63 # as well; the difference is that while for the L1 table the guest disk size is 64 # concerned, for the refcount table it is the image length that has to be at 65 # least 256 MB. We can achieve that by using preallocation=metadata for an image 70 # We know for sure that the L1 and refcount tables do not overlap with any other 71 # structure because the metadata overlap checks would have caught that case. 75 # test whether the refcount table is large enough, we simply have to verify that 80 # qemu-img check for that purpose, too. 86 # (Note that we cannot use _check_test_img because that function filters out the
|
/qemu/pc-bios/ |
H A D | edk2-licenses.txt | 7 modification, are permitted provided that the following conditions are met: 23 holder or contributor that are necessarily infringed by: 65 contributions. This file serves that preservation purpose as a matter of 77 backwards compatible extension that adds support for document 113 modification, are permitted provided that the following conditions 149 3. Your "Contributed-under" message explicitly states that the 157 that the project documents on its web page. If the process is 160 5. It is preferred that contributions are submitted using the same 161 copyright license as the base project. When that is not possible, 230 * "Contributed-under" explicitly states that the contribution is [all …]
|
/qemu/docs/system/ |
H A D | cpu-models-x86.rst.inc | 4 The information that follows provides recommendations for configuring 16 the guest. Note that KVM may filter out some host CPU model features 24 QEMU comes with a number of predefined named CPU models, that 35 a CPU model that is similar the host CPU, and then adding extra features 47 only target the original baseline ABI. It is expected that in 49 table that follows illustrates which ABI compatibility levels 50 can be satisfied by the QEMU CPU models. Note that the table only 68 Administrators / applications are recommended to use the CPU model that 71 compatibility is required, use the newest CPU model that is compatible 123 The following are important CPU features that should be used on Intel [all …]
|