qemu-commits
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]