mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-18 23:52:14 -06:00
Migration pull for 9.0-rc0
- Nicholas/Phil's fix on migration corruption / inconsistent for tcg - Cedric's fix on block migration over n_sectors==0 - Steve's CPR reboot documentation page - Fabiano's misc fixes on mapped-ram (IOC leak, dup() errors, fd checks, fd use race, etc.) -----BEGIN PGP SIGNATURE----- iIgEABYKADAWIQS5GE3CDMRX2s990ak7X8zN86vXBgUCZfdZEhIccGV0ZXJ4QHJl ZGhhdC5jb20ACgkQO1/MzfOr1wa+1AEA0+f7nCssvsILvCY9KifYO+OUJsLodUuQ JW0JBz+1iPMA+wSiyIVl2Xg78Q97nJxv71UJf+1cDJENA5EMmXMnxmYK =SLnA -----END PGP SIGNATURE----- Merge tag 'migration-20240317-pull-request' of https://gitlab.com/peterx/qemu into staging Migration pull for 9.0-rc0 - Nicholas/Phil's fix on migration corruption / inconsistent for tcg - Cedric's fix on block migration over n_sectors==0 - Steve's CPR reboot documentation page - Fabiano's misc fixes on mapped-ram (IOC leak, dup() errors, fd checks, fd use race, etc.) # -----BEGIN PGP SIGNATURE----- # # iIgEABYKADAWIQS5GE3CDMRX2s990ak7X8zN86vXBgUCZfdZEhIccGV0ZXJ4QHJl # ZGhhdC5jb20ACgkQO1/MzfOr1wa+1AEA0+f7nCssvsILvCY9KifYO+OUJsLodUuQ # JW0JBz+1iPMA+wSiyIVl2Xg78Q97nJxv71UJf+1cDJENA5EMmXMnxmYK # =SLnA # -----END PGP SIGNATURE----- # gpg: Signature made Sun 17 Mar 2024 20:56:50 GMT # gpg: using EDDSA key B9184DC20CC457DACF7DD1A93B5FCCCDF3ABD706 # gpg: issuer "peterx@redhat.com" # gpg: Good signature from "Peter Xu <xzpeter@gmail.com>" [marginal] # gpg: aka "Peter Xu <peterx@redhat.com>" [marginal] # gpg: WARNING: This key is not certified with sufficiently trusted signatures! # gpg: It is not certain that the signature belongs to the owner. # Primary key fingerprint: B918 4DC2 0CC4 57DA CF7D D1A9 3B5F CCCD F3AB D706 * tag 'migration-20240317-pull-request' of https://gitlab.com/peterx/qemu: migration/multifd: Duplicate the fd for the outgoing_args migration/multifd: Ensure we're not given a socket for file migration migration: Fix iocs leaks during file and fd migration migration: cpr-reboot documentation migration: Skip only empty block devices physmem: Fix migration dirty bitmap coherency with TCG memory access physmem: Factor cpu_physical_memory_dirty_bits_cleared() out physmem: Expose tlb_reset_dirty_range_all() migration: Fix error handling after dup in file migration io: Introduce qio_channel_file_new_dupfd Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
c6ea92aab8
12 changed files with 279 additions and 60 deletions
|
@ -655,6 +655,7 @@ static inline void mmap_unlock(void) {}
|
|||
|
||||
void tlb_reset_dirty(CPUState *cpu, ram_addr_t start1, ram_addr_t length);
|
||||
void tlb_set_dirty(CPUState *cpu, vaddr addr);
|
||||
void tlb_reset_dirty_range_all(ram_addr_t start, ram_addr_t length);
|
||||
|
||||
MemoryRegionSection *
|
||||
address_space_translate_for_iotlb(CPUState *cpu, int asidx, hwaddr addr,
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include "sysemu/tcg.h"
|
||||
#include "exec/ramlist.h"
|
||||
#include "exec/ramblock.h"
|
||||
#include "exec/exec-all.h"
|
||||
|
||||
extern uint64_t total_dirty_pages;
|
||||
|
||||
|
@ -443,6 +444,14 @@ uint64_t cpu_physical_memory_set_dirty_lebitmap(unsigned long *bitmap,
|
|||
}
|
||||
#endif /* not _WIN32 */
|
||||
|
||||
static inline void cpu_physical_memory_dirty_bits_cleared(ram_addr_t start,
|
||||
ram_addr_t length)
|
||||
{
|
||||
if (tcg_enabled()) {
|
||||
tlb_reset_dirty_range_all(start, length);
|
||||
}
|
||||
|
||||
}
|
||||
bool cpu_physical_memory_test_and_clear_dirty(ram_addr_t start,
|
||||
ram_addr_t length,
|
||||
unsigned client);
|
||||
|
@ -504,6 +513,9 @@ uint64_t cpu_physical_memory_sync_dirty_bitmap(RAMBlock *rb,
|
|||
idx++;
|
||||
}
|
||||
}
|
||||
if (num_dirty) {
|
||||
cpu_physical_memory_dirty_bits_cleared(start, length);
|
||||
}
|
||||
|
||||
if (rb->clear_bmap) {
|
||||
/*
|
||||
|
|
|
@ -68,6 +68,24 @@ struct QIOChannelFile {
|
|||
QIOChannelFile *
|
||||
qio_channel_file_new_fd(int fd);
|
||||
|
||||
/**
|
||||
* qio_channel_file_new_dupfd:
|
||||
* @fd: the file descriptor
|
||||
* @errp: pointer to initialized error object
|
||||
*
|
||||
* Create a new IO channel object for a file represented by the @fd
|
||||
* parameter. Like qio_channel_file_new_fd(), but the @fd is first
|
||||
* duplicated with dup().
|
||||
*
|
||||
* The channel will own the duplicated file descriptor and will take
|
||||
* responsibility for closing it, the original FD is owned by the
|
||||
* caller.
|
||||
*
|
||||
* Returns: the new channel object
|
||||
*/
|
||||
QIOChannelFile *
|
||||
qio_channel_file_new_dupfd(int fd, Error **errp);
|
||||
|
||||
/**
|
||||
* qio_channel_file_new_path:
|
||||
* @path: the file path
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue