[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-commits] [qemu/qemu] d1bb97: target/i386: fix cmpxchg with 32-bit
From: |
Paolo Bonzini |
Subject: |
[Qemu-commits] [qemu/qemu] d1bb97: target/i386: fix cmpxchg with 32-bit register dest... |
Date: |
Tue, 15 Nov 2022 07:48:25 -0800 |
Branch: refs/heads/staging
Home: https://github.com/qemu/qemu
Commit: d1bb978ba1654ddc6e927621b554eebb216fb9dd
https://github.com/qemu/qemu/commit/d1bb978ba1654ddc6e927621b554eebb216fb9dd
Author: Paolo Bonzini <pbonzini@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M target/i386/tcg/translate.c
M tests/tcg/x86_64/Makefile.target
A tests/tcg/x86_64/cmpxchg.c
Log Message:
-----------
target/i386: fix cmpxchg with 32-bit register destination
Unlike the memory case, where "the destination operand receives a write
cycle without regard to the result of the comparison", rm must not be
touched altogether if the write fails, including not zero-extending
it on 64-bit processors. This is not how the movcond currently works,
because it is always followed by a gen_op_mov_reg_v to rm.
To fix it, introduce a new function that is similar to gen_op_mov_reg_v
but writes to a TCG temporary.
Considering that gen_extu(ot, oldv) is not needed in the memory case
either, the two cases for register and memory destinations are different
enough that one might as well fuse the two "if (mod == 3)" into one.
So do that too.
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/508
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
[rth: Add a test case ]
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 35d95e4126d83c0bb0de83007494d184f6111b3d
https://github.com/qemu/qemu/commit/35d95e4126d83c0bb0de83007494d184f6111b3d
Author: Paolo Bonzini <pbonzini@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M target/i386/tcg/translate.c
Log Message:
-----------
target/i386: hardcode R_EAX as destination register for LAHF/SAHF
When translating code that is using LAHF and SAHF in combination with the
REX prefix, the instructions should not use any other register than AH;
however, QEMU selects SPL (SP being register 4, just like AH) if the
REX prefix is present. To fix this, use deposit directly without
going through gen_op_mov_v_reg and gen_op_mov_reg_v.
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/130
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Commit: 23bb4ae24ad87fafb09871ec226ff10615c75610
https://github.com/qemu/qemu/commit/23bb4ae24ad87fafb09871ec226ff10615c75610
Author: Fiona Ebner <f.ebner@proxmox.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M migration/channel-block.c
Log Message:
-----------
migration/channel-block: fix return value for qio_channel_block_{readv,writev}
in the error case. The documentation in include/io/channel.h states
that -1 or QIO_CHANNEL_ERR_BLOCK should be returned upon error. Simply
passing along the return value from the bdrv-functions has the
potential to confuse the call sides. Non-blocking mode is not
implemented currently, so -1 it is.
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Commit: 06af7a6a09e818157d2d09ad3b36a764ebb924a1
https://github.com/qemu/qemu/commit/06af7a6a09e818157d2d09ad3b36a764ebb924a1
Author: Leonardo Bras <leobras@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M migration/multifd.c
Log Message:
-----------
migration/multifd/zero-copy: Create helper function for flushing
Move flushing code from multifd_send_sync_main() to a new helper, and call
it in multifd_send_sync_main().
Signed-off-by: Leonardo Bras <leobras@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Commit: c52a5030ec99f3b463e1ab3eaafc24eb2f48a888
https://github.com/qemu/qemu/commit/c52a5030ec99f3b463e1ab3eaafc24eb2f48a888
Author: manish.mishra <manish.mishra@nutanix.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M include/io/channel.h
M io/channel-socket.c
M io/channel.c
M migration/migration.c
M migration/multifd.c
M migration/multifd.h
M migration/postcopy-ram.c
M migration/postcopy-ram.h
Log Message:
-----------
migration: check magic value for deciding the mapping of channels
Current logic assumes that channel connections on the destination side are
always established in the same order as the source and the first one will
always be the main channel followed by the multifid or post-copy
preemption channel. This may not be always true, as even if a channel has a
connection established on the source side it can be in the pending state on
the destination side and a newer connection can be established first.
Basically causing out of order mapping of channels on the destination side.
Currently, all channels except post-copy preempt send a magic number, this
patch uses that magic number to decide the type of channel. This logic is
applicable only for precopy(multifd) live migration, as mentioned, the
post-copy preempt channel does not send any magic number. Also, tls live
migrations already does tls handshake before creating other channels, so
this issue is not possible with tls, hence this logic is avoided for tls
live migrations. This patch uses MSG_PEEK to check the magic number of
channels so that current data/control stream management remains
un-effected.
v2: TLS does not support MSG_PEEK, so V1 was broken for tls live
migrations. For tls live migration, while initializing main channel
tls handshake is done before we can create other channels, so this
issue is not possible for tls live migrations. In V2 added a check
to avoid checking magic number for tls live migration and fallback
to older method to decide mapping of channels on destination side.
Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: manish.mishra <manish.mishra@nutanix.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Commit: 61d43a0044dab78a9e47077bd408600f16881e26
https://github.com/qemu/qemu/commit/61d43a0044dab78a9e47077bd408600f16881e26
Author: Juan Quintela <quintela@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M migration/multifd-zlib.c
M migration/multifd-zstd.c
M migration/multifd.c
M migration/multifd.h
Log Message:
-----------
multifd: Create page_size fields into both MultiFD{Recv,Send}Params
We were calling qemu_target_page_size() left and right.
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Leonardo Bras <leobras@redhat.com>
Commit: 2153797687d2026911385af61eba13b2c53d3e6b
https://github.com/qemu/qemu/commit/2153797687d2026911385af61eba13b2c53d3e6b
Author: Juan Quintela <quintela@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M migration/multifd.c
M migration/multifd.h
Log Message:
-----------
multifd: Create page_count fields into both MultiFD{Recv,Send}Params
We were recalculating it left and right. We plan to change that
values on next patches.
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Leonardo Bras <leobras@redhat.com>
Commit: a6b8f4474231668c27b116ebef8f629d2d16a639
https://github.com/qemu/qemu/commit/a6b8f4474231668c27b116ebef8f629d2d16a639
Author: Juan Quintela <quintela@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M migration/ram.c
M migration/ram.h
Log Message:
-----------
migration: Export ram_transferred_ram()
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: David Edmondson <david.edmondson@oracle.com>
Reviewed-by: Leonardo Bras <leobras@redhat.com>
Commit: 4b664d6ebc2c673dc4105f4a7843b8e78e14803f
https://github.com/qemu/qemu/commit/4b664d6ebc2c673dc4105f4a7843b8e78e14803f
Author: Juan Quintela <quintela@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M migration/ram.c
M migration/ram.h
Log Message:
-----------
migration: Export ram_release_page()
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Leonardo Bras <leobras@redhat.com>
Commit: d2347d708b259c276894c92c7997b0027f1bc01c
https://github.com/qemu/qemu/commit/d2347d708b259c276894c92c7997b0027f1bc01c
Author: ling xu <ling1.xu@intel.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M meson.build
M meson_options.txt
M migration/ram.c
M migration/xbzrle.c
M migration/xbzrle.h
M scripts/meson-buildoptions.sh
Log Message:
-----------
Update AVX512 support for xbzrle_encode_buffer
This commit updates code of avx512 support for xbzrle_encode_buffer
function to accelerate xbzrle encoding speed. Runtime check of avx512
support and benchmark for this feature are added. Compared with C
version of xbzrle_encode_buffer function, avx512 version can achieve
50%-70% performance improvement on benchmarking. In addition, if dirty
data is randomly located in 4K page, the avx512 version can achieve
almost 140% performance gain.
Signed-off-by: ling xu <ling1.xu@intel.com>
Co-authored-by: Zhou Zhao <zhou.zhao@intel.com>
Co-authored-by: Jun Jin <jun.i.jin@intel.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Commit: a5b6d2f994f9b502b0cbe6bc8cbb92420fb316ef
https://github.com/qemu/qemu/commit/a5b6d2f994f9b502b0cbe6bc8cbb92420fb316ef
Author: ling xu <ling1.xu@intel.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M tests/bench/meson.build
A tests/bench/xbzrle-bench.c
M tests/unit/test-xbzrle.c
Log Message:
-----------
Unit test code and benchmark code
Unit test code is in test-xbzrle.c, and benchmark code is in xbzrle-bench.c
for performance benchmarking.
Signed-off-by: ling xu <ling1.xu@intel.com>
Co-authored-by: Zhou Zhao <zhou.zhao@intel.com>
Co-authored-by: Jun Jin <jun.i.jin@intel.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Commit: 9724a13e7464782db39ae27a32fe0aa5535e87f5
https://github.com/qemu/qemu/commit/9724a13e7464782db39ae27a32fe0aa5535e87f5
Author: Peter Xu <peterx@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M migration/ram.c
Log Message:
-----------
migration: Fix possible infinite loop of ram save process
When starting ram saving procedure (especially at the completion phase),
always set last_seen_block to non-NULL to make sure we can always correctly
detect the case where "we've migrated all the dirty pages".
Then we'll guarantee both last_seen_block and pss.block will be valid
always before the loop starts.
See the comment in the code for some details.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Commit: 3bb59da6fdb3dcc6aa1634786488250312a99cd2
https://github.com/qemu/qemu/commit/3bb59da6fdb3dcc6aa1634786488250312a99cd2
Author: Peter Xu <peterx@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M migration/qemu-file.c
Log Message:
-----------
migration: Fix race on qemu_file_shutdown()
In qemu_file_shutdown(), there's a possible race if with current order of
operation. There're two major things to do:
(1) Do real shutdown() (e.g. shutdown() syscall on socket)
(2) Update qemufile's last_error
We must do (2) before (1) otherwise there can be a race condition like:
page receiver other thread
------------- ------------
qemu_get_buffer()
do shutdown()
returns 0 (buffer all zero)
(meanwhile we didn't check this retcode)
try to detect IO error
last_error==NULL, IO okay
install ALL-ZERO page
set last_error
--> guest crash!
To fix this, we can also check retval of qemu_get_buffer(), but not all
APIs can be properly checked and ultimately we still need to go back to
qemu_file_get_error(). E.g. qemu_get_byte() doesn't return error.
Maybe some day a rework of qemufile API is really needed, but for now keep
using qemu_file_get_error() and fix it by not allowing that race condition
to happen. Here shutdown() is indeed special because the last_error was
emulated. For real -EIO errors it'll always be set when e.g. sendmsg()
error triggers so we won't miss those ones, only shutdown() is a bit tricky
here.
Cc: Daniel P. Berrange <berrange@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Commit: 59d6635152cade88aed6f744b5e42f66bbba1b02
https://github.com/qemu/qemu/commit/59d6635152cade88aed6f744b5e42f66bbba1b02
Author: Peter Xu <peterx@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M migration/migration.c
Log Message:
-----------
migration: Disallow postcopy preempt to be used with compress
The preempt mode requires the capability to assign channel for each of the
page, while the compression logic will currently assign pages to different
compress thread/local-channel so potentially they're incompatible.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Commit: 9f9e6e2b99356978e7cdfc35c9f73554cb002413
https://github.com/qemu/qemu/commit/9f9e6e2b99356978e7cdfc35c9f73554cb002413
Author: Peter Xu <peterx@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M include/exec/ram_addr.h
M include/exec/ramblock.h
M include/qemu/bitmap.h
M util/bitmap.c
Log Message:
-----------
migration: Use non-atomic ops for clear log bitmap
Since we already have bitmap_mutex to protect either the dirty bitmap or
the clear log bitmap, we don't need atomic operations to set/clear/test on
the clear log bitmap. Switching all ops from atomic to non-atomic
versions, meanwhile touch up the comments to show which lock is in charge.
Introduced non-atomic version of bitmap_test_and_clear_atomic(), mostly the
same as the atomic version but simplified a few places, e.g. dropped the
"old_bits" variable, and also the explicit memory barriers.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Commit: ea438078a8eb11cc83c6f6c60180c2bf68380296
https://github.com/qemu/qemu/commit/ea438078a8eb11cc83c6f6c60180c2bf68380296
Author: Peter Xu <peterx@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M migration/migration.c
M migration/ram.c
Log Message:
-----------
migration: Disable multifd explicitly with compression
Multifd thread model does not work for compression, explicitly disable it.
Note that previuosly even we can enable both of them, nothing will go
wrong, because the compression code has higher priority so multifd feature
will just be ignored. Now we'll fail even earlier at config time so the
user should be aware of the consequence better.
Note that there can be a slight chance of breaking existing users, but
let's assume they're not majority and not serious users, or they should
have found that multifd is not working already.
With that, we can safely drop the check in ram_save_target_page() for using
multifd, because when multifd=on then compression=off, then the removed
check on save_page_use_compression() will also always return false too.
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Commit: ca066f2b0c2b4e7525d72bbff4881abd5fc84748
https://github.com/qemu/qemu/commit/ca066f2b0c2b4e7525d72bbff4881abd5fc84748
Author: Peter Xu <peterx@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M migration/ram.c
Log Message:
-----------
migration: Take bitmap mutex when completing ram migration
Any call to ram_find_and_save_block() needs to take the bitmap mutex. We
used to not take it for most of ram_save_complete() because we thought
we're the only one left using the bitmap, but it's not true after the
preempt full patchset applied, since the return path can be taking it too.
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Commit: 073063a4d5073e011e5f8604f3d0341ca5c5c783
https://github.com/qemu/qemu/commit/073063a4d5073e011e5f8604f3d0341ca5c5c783
Author: Peter Xu <peterx@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M migration/ram.c
Log Message:
-----------
migration: Add postcopy_preempt_active()
Add the helper to show that postcopy preempt enabled, meanwhile active.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Commit: adc94f8392c7dff8a2876d97fcc885aa0e75193c
https://github.com/qemu/qemu/commit/adc94f8392c7dff8a2876d97fcc885aa0e75193c
Author: Peter Xu <peterx@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M migration/ram.c
Log Message:
-----------
migration: Cleanup xbzrle zero page cache update logic
The major change is to replace "!save_page_use_compression()" with
"xbzrle_enabled" to make it clear.
Reasonings:
(1) When compression enabled, "!save_page_use_compression()" is exactly the
same as checking "xbzrle_enabled".
(2) When compression disabled, "!save_page_use_compression()" always return
true. We used to try calling the xbzrle code, but after this change we
won't, and we shouldn't need to.
Since at it, drop the xbzrle_enabled check in xbzrle_cache_zero_page()
because with this change it's not needed anymore.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Commit: 472643085edd99fcb35c8575138e9754acb53faf
https://github.com/qemu/qemu/commit/472643085edd99fcb35c8575138e9754acb53faf
Author: Peter Xu <peterx@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M migration/ram.c
Log Message:
-----------
migration: Trivial cleanup save_page_header() on same block check
The 2nd check on RAM_SAVE_FLAG_CONTINUE is a bit redundant. Use a boolean
to be clearer.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Commit: 7427adb7dfe00ac8dbb883a54ebafc1391d99590
https://github.com/qemu/qemu/commit/7427adb7dfe00ac8dbb883a54ebafc1391d99590
Author: Peter Xu <peterx@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M migration/ram.c
Log Message:
-----------
migration: Remove RAMState.f references in compression code
Removing referencing to RAMState.f in compress_page_with_multi_thread() and
flush_compressed_data().
Compression code by default isn't compatible with having >1 channels (or it
won't currently know which channel to flush the compressed data), so to
make it simple we always flush on the default to_dst_file port until
someone wants to add >1 ports support, as rs->f right now can really
change (after postcopy preempt is introduced).
There should be no functional change at all after patch applied, since as
long as rs->f referenced in compression code, it must be to_dst_file.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Commit: 7f884208a579e570be86e0eb6280fdacd03f939e
https://github.com/qemu/qemu/commit/7f884208a579e570be86e0eb6280fdacd03f939e
Author: Peter Xu <peterx@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M migration/ram.c
Log Message:
-----------
migration: Yield bitmap_mutex properly when sending/sleeping
Don't take the bitmap mutex when sending pages, or when being throttled by
migration_rate_limit() (which is a bit tricky to call it here in ram code,
but seems still helpful).
It prepares for the possibility of concurrently sending pages in >1 threads
using the function ram_save_host_page() because all threads may need the
bitmap_mutex to operate on bitmaps, so that either sendmsg() or any kind of
qemu_sem_wait() blocking for one thread will not block the other from
progressing.
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Commit: e7cf488bcead5c320170ebacfab8c56db3a89402
https://github.com/qemu/qemu/commit/e7cf488bcead5c320170ebacfab8c56db3a89402
Author: Peter Xu <peterx@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M migration/migration.c
M migration/multifd.c
M migration/ram.c
M migration/ram.h
Log Message:
-----------
migration: Use atomic ops properly for page accountings
To prepare for thread-safety on page accountings, at least below counters
need to be accessed only atomically, they are:
ram_counters.transferred
ram_counters.duplicate
ram_counters.normal
ram_counters.postcopy_bytes
There are a lot of other counters but they won't be accessed outside
migration thread, then they're still safe to be accessed without atomic
ops.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Commit: e6b6a664252aefa482f6859055fcac855f3643f0
https://github.com/qemu/qemu/commit/e6b6a664252aefa482f6859055fcac855f3643f0
Author: Peter Xu <peterx@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M migration/ram.c
Log Message:
-----------
migration: Teach PSS about host page
Migration code has a lot to do with host pages. Teaching PSS core about
the idea of host page helps a lot and makes the code clean. Meanwhile,
this prepares for the future changes that can leverage the new PSS helpers
that this patch introduces to send host page in another thread.
Three more fields are introduced for this:
(1) host_page_sending: this is set to true when QEMU is sending a host
page, false otherwise.
(2) host_page_{start|end}: these point to the start/end of host page
we're sending, and it's only valid when host_page_sending==true.
For example, when we look up the next dirty page on the ramblock, with
host_page_sending==true, we'll not try to look for anything beyond the
current host page boundary. This can be slightly efficient than current
code because currently we'll set pss->page to next dirty bit (which can be
over current host page boundary) and reset it to host page boundary if we
found it goes beyond that.
With above, we can easily make migration_bitmap_find_dirty() self contained
by updating pss->page properly. rs* parameter is removed because it's not
even used in old code.
When sending a host page, we should use the pss helpers like this:
- pss_host_page_prepare(pss): called before sending host page
- pss_within_range(pss): whether we're still working on the cur host page?
- pss_host_page_finish(pss): called after sending a host page
Then we can use ram_save_target_page() to save one small page.
Currently ram_save_host_page() is still the only user. If there'll be
another function to send host page (e.g. in return path thread) in the
future, it should follow the same style.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Commit: 19572f142ce8130bd046abfa8dc97c0a2a431706
https://github.com/qemu/qemu/commit/19572f142ce8130bd046abfa8dc97c0a2a431706
Author: Peter Xu <peterx@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M migration/ram.c
Log Message:
-----------
migration: Introduce pss_channel
Introduce pss_channel for PageSearchStatus, define it as "the migration
channel to be used to transfer this host page".
We used to have rs->f, which is a mirror to MigrationState.to_dst_file.
After postcopy preempt initial version, rs->f can be dynamically changed
depending on which channel we want to use.
But that later work still doesn't grant full concurrency of sending pages
in e.g. different threads, because rs->f can either be the PRECOPY channel
or POSTCOPY channel. This needs to be per-thread too.
PageSearchStatus is actually a good piece of struct which we can leverage
if we want to have multiple threads sending pages. Sending a single guest
page may not make sense, so we make the granule to be "host page", and in
the PSS structure we allow specify a QEMUFile* to migrate a specific host
page. Then we open the possibility to specify different channels in
different threads with different PSS structures.
The PSS prefix can be slightly misleading here because e.g. for the
upcoming usage of postcopy channel/thread it's not "searching" (or,
scanning) at all but sending the explicit page that was requested. However
since PSS existed for some years keep it as-is until someone complains.
This patch mostly (simply) replace rs->f with pss->pss_channel only. No
functional change intended for this patch yet. But it does prepare to
finally drop rs->f, and make ram_save_guest_page() thread safe.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Commit: c79ecda05b75f64dbdf6fcd76d37e5bb8d4a9a1b
https://github.com/qemu/qemu/commit/c79ecda05b75f64dbdf6fcd76d37e5bb8d4a9a1b
Author: Peter Xu <peterx@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M migration/ram.c
Log Message:
-----------
migration: Add pss_init()
Helper to init PSS structures.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Commit: 4c1161045e16e450820a06d8a7f50646968b4a1d
https://github.com/qemu/qemu/commit/4c1161045e16e450820a06d8a7f50646968b4a1d
Author: Peter Xu <peterx@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M migration/ram.c
Log Message:
-----------
migration: Make PageSearchStatus part of RAMState
We used to allocate PSS structure on the stack for precopy when sending
pages. Make it static, so as to describe per-channel ram migration status.
Here we declared RAM_CHANNEL_MAX instances, preparing for postcopy to use
it, even though this patch has not yet to start using the 2nd instance.
This should not have any functional change per se, but it already starts to
export PSS information via the RAMState, so that e.g. one PSS channel can
start to reference the other PSS channel.
Always protect PSS access using the same RAMState.bitmap_mutex. We already
do so, so no code change needed, just some comment update. Maybe we should
consider renaming bitmap_mutex some day as it's going to be a more commonly
and big mutex we use for ram states, but just leave it for later.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Commit: 366e80d649443395a40a9fbdab0e7008859611e6
https://github.com/qemu/qemu/commit/366e80d649443395a40a9fbdab0e7008859611e6
Author: Peter Xu <peterx@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M migration/ram.c
Log Message:
-----------
migration: Move last_sent_block into PageSearchStatus
Since we use PageSearchStatus to represent a channel, it makes perfect
sense to keep last_sent_block (aka, leverage RAM_SAVE_FLAG_CONTINUE) to be
per-channel rather than global because each channel can be sending
different pages on ramblocks.
Hence move it from RAMState into PageSearchStatus.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Commit: d03bebaa2aa56c02669a59a7bbd7781a49f4498c
https://github.com/qemu/qemu/commit/d03bebaa2aa56c02669a59a7bbd7781a49f4498c
Author: Peter Xu <peterx@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M migration/migration.c
M migration/ram.c
Log Message:
-----------
migration: Send requested page directly in rp-return thread
With all the facilities ready, send the requested page directly in the
rp-return thread rather than queuing it in the request queue, if and only
if postcopy preempt is enabled. It can achieve so because it uses separate
channel for sending urgent pages. The only shared data is bitmap and it's
protected by the bitmap_mutex.
Note that since we're moving the ownership of the urgent channel from the
migration thread to rp thread it also means the rp thread is responsible
for managing the qemufile, e.g. properly close it when pausing migration
happens. For this, let migration_release_from_dst_file to cover shutdown
of the urgent channel too, renaming it as migration_release_dst_files() to
better show what it does.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Commit: 186baa038eb9d322c1786bc5bebc197196e9afa8
https://github.com/qemu/qemu/commit/186baa038eb9d322c1786bc5bebc197196e9afa8
Author: Peter Xu <peterx@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M migration/migration.c
M migration/migration.h
M migration/ram.c
Log Message:
-----------
migration: Remove old preempt code around state maintainance
With the new code to send pages in rp-return thread, there's little help to
keep lots of the old code on maintaining the preempt state in migration
thread, because the new way should always be faster..
Then if we'll always send pages in the rp-return thread anyway, we don't
need those logic to maintain preempt state anymore because now we serialize
things using the mutex directly instead of using those fields.
It's very unfortunate to have those code for a short period, but that's
still one intermediate step that we noticed the next bottleneck on the
migration thread. Now what we can do best is to drop unnecessary code as
long as the new code is stable to reduce the burden. It's actually a good
thing because the new "sending page in rp-return thread" model is (IMHO)
even cleaner and with better performance.
Remove the old code that was responsible for maintaining preempt states, at
the meantime also remove x-postcopy-preempt-break-huge parameter because
with concurrent sender threads we don't really need to break-huge anymore.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Commit: 3dcbfa1ca2074c7975ae333dea7b51997b88a383
https://github.com/qemu/qemu/commit/3dcbfa1ca2074c7975ae333dea7b51997b88a383
Author: Peter Xu <peterx@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M migration/ram.c
Log Message:
-----------
migration: Drop rs->f
Now with rs->pss we can already cache channels in pss->pss_channels. That
pss_channel contains more infromation than rs->f because it's per-channel.
So rs->f could be replaced by rss->pss[RAM_CHANNEL_PRECOPY].pss_channel,
while rs->f itself is a bit vague now.
Note that vanilla postcopy still send pages via pss[RAM_CHANNEL_PRECOPY],
that's slightly confusing but it reflects the reality.
Then, after the replacement we can safely drop rs->f.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Commit: d896a7a40db13fc2d05828c94ddda2747530089c
https://github.com/qemu/qemu/commit/d896a7a40db13fc2d05828c94ddda2747530089c
Author: Juan Quintela <quintela@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M migration/block.c
Log Message:
-----------
migration: Block migration comment or code is wrong
And it appears that what is wrong is the code. During bulk stage we
need to make sure that some block is dirty, but no games with
max_size at all.
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Commit: e668923429a56068a36ee97fe1a7fecfde6407b7
https://github.com/qemu/qemu/commit/e668923429a56068a36ee97fe1a7fecfde6407b7
Author: Stefan Weil <sw@weilnetz.de>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M configure
Log Message:
-----------
Run docker probe only if docker or podman are available
The docker probe uses "sudo -n" which can cause an e-mail with a security
warning
each time when configure is run. Therefore run docker probe only if either
docker
or podman are available.
That avoids the problematic "sudo -n" on build environments which have neither
docker nor podman installed.
Fixes: c4575b59155e2e00 ("configure: store container engine in config-host.mak")
Signed-off-by: Stefan Weil <sw@weilnetz.de>
Message-Id: <20221030083510.310584-1-sw@weilnetz.de>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20221111145529.4020801-2-alex.bennee@linaro.org>
Commit: 8e7adbbcdef675b3e0c2f4367110309eb1e45d28
https://github.com/qemu/qemu/commit/8e7adbbcdef675b3e0c2f4367110309eb1e45d28
Author: Alex Bennée <alex.bennee@linaro.org>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M tests/avocado/avocado_qemu/__init__.py
Log Message:
-----------
tests/avocado: improve behaviour waiting for login prompts
This attempts to deal with the problem of login prompts not being
guaranteed to be terminated with a newline. The solution to this is to
peek at the incoming data looking to see if we see an up-coming match
before we fall back to the old readline() logic. The reason to mostly
rely on readline is because I am occasionally seeing the peek stalling
despite data being there.
This seems kinda hacky and gross so I'm open to alternative approaches
and cleaner python code.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <20221111145529.4020801-3-alex.bennee@linaro.org>
Commit: 90dfd5870108a81e4da3b918b612ed6ea4988309
https://github.com/qemu/qemu/commit/90dfd5870108a81e4da3b918b612ed6ea4988309
Author: Cédric Le Goater <clg@kaod.org>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M tests/avocado/machine_aspeed.py
Log Message:
-----------
tests/avocado/machine_aspeed.py: Reduce noise on the console for SDK tests
The Aspeed SDK images are based on OpenBMC which starts a lot of
services. The output noise on the console can break from time to time
the test waiting for the logging prompt.
Change the U-Boot bootargs variable to add "quiet" to the kernel
command line and reduce the output volume. This also drops the test on
the CPU id which was nice to have but not essential.
Signed-off-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20221104075347.370503-1-clg@kaod.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20221111145529.4020801-4-alex.bennee@linaro.org>
Commit: 9aa55f82606192e4695b61e3d3a2204711147846
https://github.com/qemu/qemu/commit/9aa55f82606192e4695b61e3d3a2204711147846
Author: Alex Bennée <alex.bennee@linaro.org>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M tests/docker/Makefile.include
M tests/docker/common.rc
Log Message:
-----------
tests/docker: allow user to override check target
This is useful when trying to bisect a particular failing test behind
a docker run. For example:
make docker-test-clang@fedora \
TARGET_LIST=arm-softmmu \
TEST_COMMAND="meson test qtest-arm/qos-test" \
J=9 V=1
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <20221111145529.4020801-5-alex.bennee@linaro.org>
Commit: ab7e491e4f9aecb48018f9fc31c9eb3565f3a217
https://github.com/qemu/qemu/commit/ab7e491e4f9aecb48018f9fc31c9eb3565f3a217
Author: Alex Bennée <alex.bennee@linaro.org>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M docs/devel/code-of-conduct.rst
M docs/devel/index-process.rst
A docs/devel/maintainers.rst
M docs/devel/submitting-a-pull-request.rst
Log Message:
-----------
docs/devel: add a maintainers section to development process
We don't currently have a clear place in the documentation to describe
the roles and responsibilities of a maintainer. Lets create one so we
can. I've moved a few small bits out of other files to try and keep
everything in one place.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20221111145529.4020801-6-alex.bennee@linaro.org>
Commit: c02a8de2cf864e2a08739aad7e9800321b6ed186
https://github.com/qemu/qemu/commit/c02a8de2cf864e2a08739aad7e9800321b6ed186
Author: Alex Bennée <alex.bennee@linaro.org>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M docs/devel/submitting-a-patch.rst
Log Message:
-----------
docs/devel: make language a little less code centric
We welcome all sorts of patches.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20221111145529.4020801-7-alex.bennee@linaro.org>
Commit: 51bb45285c31389c0497cdfbe913b5aad71448a2
https://github.com/qemu/qemu/commit/51bb45285c31389c0497cdfbe913b5aad71448a2
Author: Alex Bennée <alex.bennee@linaro.org>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M docs/devel/submitting-a-patch.rst
Log Message:
-----------
docs/devel: simplify the minimal checklist
The bullet points are quite long and contain process tips. Move those
bits of the bullet to the relevant sections and link to them. Use a
table for nicer formatting of the checklist.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20221111145529.4020801-8-alex.bennee@linaro.org>
Commit: 2a484a0a0c66cc0b96b916af3a73c41e7926917c
https://github.com/qemu/qemu/commit/2a484a0a0c66cc0b96b916af3a73c41e7926917c
Author: Alex Bennée <alex.bennee@linaro.org>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M docs/devel/submitting-a-patch.rst
Log Message:
-----------
docs/devel: try and improve the language around patch review
It is important that contributors take the review process seriously
and we collaborate in a respectful way while avoiding personal
attacks. Try and make this clear in the language.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20221111145529.4020801-9-alex.bennee@linaro.org>
Commit: be16ee9ece13978f3adbcd0058c0ffb400ed0ce4
https://github.com/qemu/qemu/commit/be16ee9ece13978f3adbcd0058c0ffb400ed0ce4
Author: Peter Maydell <peter.maydell@linaro.org>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M tests/avocado/boot_linux.py
Log Message:
-----------
tests/avocado: Raise timeout for boot_linux.py:BootLinuxPPC64.test_pseries_tcg
On my machine, a debug build of QEMU takes about 260 seconds to
complete this test, so with the current timeout value of 180 seconds
it always times out. Double the timeout value to 360 so the test
definitely has enough time to complete.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20221110142901.3832318-1-peter.maydell@linaro.org>
Message-Id: <20221111145529.4020801-11-alex.bennee@linaro.org>
Commit: 6bac1087ef4c6b190c865384dd69cde683b977bf
https://github.com/qemu/qemu/commit/6bac1087ef4c6b190c865384dd69cde683b977bf
Author: Alex Bennée <alex.bennee@linaro.org>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M .gitlab-ci.d/buildtest.yml
Log Message:
-----------
gitlab: integrate coverage report
This should hopefully give is nice coverage information about what our
tests (or at least the subset we are running) have hit. Ideally we
would want a way to trigger coverage on tests likely to be affected by
the current commit.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20221111145529.4020801-12-alex.bennee@linaro.org>
Commit: dd64bcea0016938ef0be7a0c930f98b77d5e1612
https://github.com/qemu/qemu/commit/dd64bcea0016938ef0be7a0c930f98b77d5e1612
Author: Stefan Hajnoczi <stefanha@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M target/i386/tcg/translate.c
M tests/tcg/x86_64/Makefile.target
A tests/tcg/x86_64/cmpxchg.c
Log Message:
-----------
Merge tag 'pull-x86-20221115' of https://gitlab.com/rth7680/qemu into staging
Fix cmpxchgl writeback to rax.
Fix lahf/sahf for 64-bit
# -----BEGIN PGP SIGNATURE-----
#
# iQFRBAABCgA7FiEEekgeeIaLTbaoWgXAZN846K9+IV8FAmNy0OYdHHJpY2hhcmQu
# aGVuZGVyc29uQGxpbmFyby5vcmcACgkQZN846K9+IV/2XwgAr2yCrG8irdVBmD1B
# rNW8xJJWIwEXqJ3KSPBSMEQ5lCVW7urwIYasnTYPV9TMwXvwwbFzCzovp+pJ402b
# GPCkkjS/DdLHKbFqzEIcVld6IASaYNbcCZjEDeN3U14RZW9X7Aujy1Yg6qWxWnIc
# ony2awzocGq5iafvPCMATmIkPJErnFv6mLttRq52CmBATgVtsSrxEF735NVuZAaq
# t9bfN+gQpXARo+AcGzqTpNtcR4DTzE2hyJrXAMivTJtAeEl8XweOq8eV7PkAf4qw
# ED/AT6G7I38Buzj1o8SN3G54d/v/jwV/L9fWCLs92QZJC/gIi9B7qZf8DglI1ipV
# YCFKQw==
# =xP4E
# -----END PGP SIGNATURE-----
# gpg: Signature made Mon 14 Nov 2022 18:36:06 EST
# gpg: using RSA key 7A481E78868B4DB6A85A05C064DF38E8AF7E215F
# gpg: issuer "richard.henderson@linaro.org"
# gpg: Good signature from "Richard Henderson <richard.henderson@linaro.org>"
[full]
# Primary key fingerprint: 7A48 1E78 868B 4DB6 A85A 05C0 64DF 38E8 AF7E 215F
* tag 'pull-x86-20221115' of https://gitlab.com/rth7680/qemu:
target/i386: hardcode R_EAX as destination register for LAHF/SAHF
target/i386: fix cmpxchg with 32-bit register destination
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Commit: ab8aca71d503e3c7a40fd29926fa959a6fe26298
https://github.com/qemu/qemu/commit/ab8aca71d503e3c7a40fd29926fa959a6fe26298
Author: Stefan Hajnoczi <stefanha@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M .gitlab-ci.d/buildtest.yml
M configure
M docs/devel/code-of-conduct.rst
M docs/devel/index-process.rst
A docs/devel/maintainers.rst
M docs/devel/submitting-a-patch.rst
M docs/devel/submitting-a-pull-request.rst
M tests/avocado/avocado_qemu/__init__.py
M tests/avocado/boot_linux.py
M tests/avocado/machine_aspeed.py
M tests/docker/Makefile.include
M tests/docker/common.rc
Log Message:
-----------
Merge tag 'pull-misc-for-7.2-151122-2' of https://gitlab.com/stsquad/qemu
into staging
Testing and doc updates:
- Only probe if docker or podman binaries in path
- tweak avacado console to better find login prompts
- reduce console noise for aspeed avocado tests
- update documents on maintainer roles and process
- raise timeout for ppc64 avocado tests
- integrate coverage reports into gitlab
# -----BEGIN PGP SIGNATURE-----
#
# iQEzBAABCgAdFiEEZoWumedRZ7yvyN81+9DbCVqeKkQFAmNzhJYACgkQ+9DbCVqe
# KkRbGAf+M4SNBda/ORXV7qolIv1CkgqxK4gk/EbAf4bSSHJpR9UTtCibKmyLpM67
# Hdk/p1Z6kD2k13l1MVLI0F0wjDzdusjvfHOhrcKSUlOmrKwF+bvLUu8qHiEPKP62
# scMSDP/xY2a4ZjV5imLzoRekfcL+c7Xl6NR6zt7Ib0lBH7lbJrD6wYqrCgnJKus6
# SXrcvLbeH+wIWWvva1Q4nPvvyG76te6+aPCEu0b2D4x/uQ8Tv+JHTuyDs3PsFKlf
# 3zdxIxoKTubX4ZwyIX5fYya46qfOsjJvXQcYfdp+Om/U+20ajhiAkD7SzBtEuMSX
# UJXlmPAj/b9HmHhhn2WQO0bRHSD8ww==
# =8sPk
# -----END PGP SIGNATURE-----
# gpg: Signature made Tue 15 Nov 2022 07:22:46 EST
# gpg: using RSA key 6685AE99E75167BCAFC8DF35FBD0DB095A9E2A44
# gpg: Good signature from "Alex Bennée (Master Work Key)
<alex.bennee@linaro.org>" [unknown]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg: There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 6685 AE99 E751 67BC AFC8 DF35 FBD0 DB09 5A9E 2A44
* tag 'pull-misc-for-7.2-151122-2' of https://gitlab.com/stsquad/qemu:
gitlab: integrate coverage report
tests/avocado: Raise timeout for boot_linux.py:BootLinuxPPC64.test_pseries_tcg
docs/devel: try and improve the language around patch review
docs/devel: simplify the minimal checklist
docs/devel: make language a little less code centric
docs/devel: add a maintainers section to development process
tests/docker: allow user to override check target
tests/avocado/machine_aspeed.py: Reduce noise on the console for SDK tests
tests/avocado: improve behaviour waiting for login prompts
Run docker probe only if docker or podman are available
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Commit: b2d02b53fac9c828f4f0d281f4dc0c39dee88c8a
https://github.com/qemu/qemu/commit/b2d02b53fac9c828f4f0d281f4dc0c39dee88c8a
Author: Stefan Hajnoczi <stefanha@redhat.com>
Date: 2022-11-15 (Tue, 15 Nov 2022)
Changed paths:
M include/exec/ram_addr.h
M include/exec/ramblock.h
M include/io/channel.h
M include/qemu/bitmap.h
M io/channel-socket.c
M io/channel.c
M meson.build
M meson_options.txt
M migration/block.c
M migration/channel-block.c
M migration/migration.c
M migration/migration.h
M migration/multifd-zlib.c
M migration/multifd-zstd.c
M migration/multifd.c
M migration/multifd.h
M migration/postcopy-ram.c
M migration/postcopy-ram.h
M migration/qemu-file.c
M migration/ram.c
M migration/ram.h
M migration/xbzrle.c
M migration/xbzrle.h
M scripts/meson-buildoptions.sh
M tests/bench/meson.build
A tests/bench/xbzrle-bench.c
M tests/unit/test-xbzrle.c
M util/bitmap.c
Log Message:
-----------
Merge tag 'next-pull-request' of https://gitlab.com/juan.quintela/qemu into
staging
Migration PULL request (take 2)
Hi
This time properly signed.
[take 1]
It includes:
- Leonardo fix for zero_copy flush
- Fiona fix for return value of readv/writev
- Peter Xu cleanups
- Peter Xu preempt patches
- Patches ready from zero page (me)
- AVX2 support (ling)
- fix for slow networking and reordering of first packets (manish)
Please, apply.
# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCAAdFiEEGJn/jt6/WMzuA0uC9IfvGFhy1yMFAmNzsY0ACgkQ9IfvGFhy
# 1yP58A//XmJyLiS00+2Jro84Iu0HdiORmdry+bXLVtqcqIQsbzs1bgNZSeRPQ27t
# XBgx63owxnVmrErLqYknFD0sQ70xDG5Kw6S8MSf8Bo1fiPizni5hUciyBxKVqEeE
# mS/lH//mG9ZZtUeNmCIrJAaCIFhIvL37Hh4XPWJ0XB6h3RywnoRoihQZqBvUFVWw
# EbKclh5HsEwbJMbXhuA+5sOM/g1l/+eXI1JTjwMJ0A7G9toFrOXDCE8fmR9nmAuK
# p+dvOAj4EIeyHsdjqS8FwM3XBfewowpXy786MX6cY75+lYHKmbDQdiQYd9AUNlhZ
# wrVP5O94TuZV5mNJZgM9ZEqtyKfJZk0C22wGrNZ4RcpqiK+MCX70EABy1b1N+qnA
# 4UXmz7Ct00xXgmmhw9FtxfbTo0cTaVzNESHBYJ9p+DW5b2MrfQ591fHWtHWso9aZ
# IvtNOAwwGTXe2lZD00zWOtJdAN8GM+pbpjUmTjBq3StXsliQJOyh3izNAMF6lxcN
# 8i1WEafv/kFhsQGknEQ6HdoR+pZCJsRL5U3CUo/RtD0PHA08tbjp0kW1TKsHG/w4
# Qin1Bo6tRU76IZ8S1+5XxULVh/4UghSE0+5rGIvSYVEfNMW6IAEBR5GCs0xJj36Y
# W1OoqUH5QuyguOJoSYjt9VJXgwLMIeuOS93zCb8q5igIA819CIw=
# =hiKx
# -----END PGP SIGNATURE-----
# gpg: Signature made Tue 15 Nov 2022 10:34:37 EST
# gpg: using RSA key 1899FF8EDEBF58CCEE034B82F487EF185872D723
# gpg: Good signature from "Juan Quintela <quintela@redhat.com>" [full]
# gpg: aka "Juan Quintela <quintela@trasno.org>" [full]
# Primary key fingerprint: 1899 FF8E DEBF 58CC EE03 4B82 F487 EF18 5872 D723
* tag 'next-pull-request' of https://gitlab.com/juan.quintela/qemu: (30 commits)
migration: Block migration comment or code is wrong
migration: Drop rs->f
migration: Remove old preempt code around state maintainance
migration: Send requested page directly in rp-return thread
migration: Move last_sent_block into PageSearchStatus
migration: Make PageSearchStatus part of RAMState
migration: Add pss_init()
migration: Introduce pss_channel
migration: Teach PSS about host page
migration: Use atomic ops properly for page accountings
migration: Yield bitmap_mutex properly when sending/sleeping
migration: Remove RAMState.f references in compression code
migration: Trivial cleanup save_page_header() on same block check
migration: Cleanup xbzrle zero page cache update logic
migration: Add postcopy_preempt_active()
migration: Take bitmap mutex when completing ram migration
migration: Disable multifd explicitly with compression
migration: Use non-atomic ops for clear log bitmap
migration: Disallow postcopy preempt to be used with compress
migration: Fix race on qemu_file_shutdown()
...
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Compare: https://github.com/qemu/qemu/compare/bb00d0aa620e...b2d02b53fac9
- [Qemu-commits] [qemu/qemu] d1bb97: target/i386: fix cmpxchg with 32-bit register dest...,
Paolo Bonzini <=