qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 11a4fd: migration: Remove spurious files


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 11a4fd: migration: Remove spurious files
Date: Fri, 10 Feb 2023 02:55:49 -0800

  Branch: refs/heads/staging
  Home:   https://github.com/qemu/qemu
  Commit: 11a4fdf360295f0c5db2adb4de146f72fed0a4cf
      
https://github.com/qemu/qemu/commit/11a4fdf360295f0c5db2adb4de146f72fed0a4cf
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-02-09 (Thu, 09 Feb 2023)

  Changed paths:
    R configs/devices/x86_64-softmmu/x86_64-quintela-devices.mak
    R configs/devices/x86_64-softmmu/x86_64-quintela2-devices.mak
    R migration/multifd.c.orig

  Log Message:
  -----------
  migration: Remove spurious files

I introduced spurious files on my tree during a rebase:

commit ebfc57871506b3fe36cc41f69ee3ad31a34afd63
Author: Zhenzhong Duan <zhenzhong.duan@intel.com>
Date:   Mon Oct 17 15:53:51 2022 +0800

    multifd: Fix flush of zero copy page send request

    Make IO channel flush call after the inflight request has been drained
    in multifd thread, or else we may missed to flush the inflight request.

    Signed-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
    Reviewed-by: Juan Quintela <quintela@redhat.com>
    Signed-off-by: Juan Quintela <quintela@redhat.com>

To make things worse, it appears like Zhenzhong is the one to blame.

for(int i=0; i < 1000000; i++) {
        printf("I will not do rebases when I am tired\n");
}

Sorry, Juan.

Reviewed-by: Cédric Le Goater <clg@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Juan Quintela <quintela@redhat.com>


  Commit: 7f0ec6992a3dd4805fdf5af410d5998456e01ab0
      
https://github.com/qemu/qemu/commit/7f0ec6992a3dd4805fdf5af410d5998456e01ab0
  Author: Li Zhang <lizhang@suse.de>
  Date:   2023-02-09 (Thu, 09 Feb 2023)

  Changed paths:
    M migration/multifd.c

  Log Message:
  -----------
  multifd: cleanup the function multifd_channel_connect

Cleanup multifd_channel_connect

Signed-off-by: Li Zhang <lizhang@suse.de>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>


  Commit: 5c10f78a8e71cc5ed2aa9ba4d49141c27df0a24a
      
https://github.com/qemu/qemu/commit/5c10f78a8e71cc5ed2aa9ba4d49141c27df0a24a
  Author: Li Zhang <lizhang@suse.de>
  Date:   2023-02-09 (Thu, 09 Feb 2023)

  Changed paths:
    M migration/multifd.c

  Log Message:
  -----------
  multifd: Remove some redundant code

Clean up some unnecessary code

Signed-off-by: Li Zhang <lizhang@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>


  Commit: 93c871e6b7499f37b2dc3d347257f41417dbe075
      
https://github.com/qemu/qemu/commit/93c871e6b7499f37b2dc3d347257f41417dbe075
  Author: Peter Xu <peterx@redhat.com>
  Date:   2023-02-09 (Thu, 09 Feb 2023)

  Changed paths:
    M include/standard-headers/drm/drm_fourcc.h
    M include/standard-headers/linux/ethtool.h
    M include/standard-headers/linux/fuse.h
    M include/standard-headers/linux/input-event-codes.h
    M include/standard-headers/linux/virtio_blk.h
    M linux-headers/asm-generic/hugetlb_encode.h
    M linux-headers/asm-generic/mman-common.h
    M linux-headers/asm-mips/mman.h
    M linux-headers/asm-riscv/kvm.h
    M linux-headers/linux/kvm.h
    M linux-headers/linux/psci.h
    M linux-headers/linux/userfaultfd.h
    M linux-headers/linux/vfio.h

  Log Message:
  -----------
  linux-headers: Update to v6.1

Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Acked-by: Cornelia Huck <cohuck@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>


  Commit: 49858b698c0a7db6a556ef3d1d01925f6ad79c02
      
https://github.com/qemu/qemu/commit/49858b698c0a7db6a556ef3d1d01925f6ad79c02
  Author: Peter Xu <peterx@redhat.com>
  Date:   2023-02-09 (Thu, 09 Feb 2023)

  Changed paths:
    M util/trace-events
    M util/userfaultfd.c

  Log Message:
  -----------
  util/userfaultfd: Support /dev/userfaultfd

Teach QEMU to use /dev/userfaultfd when it existed and fallback to the
system call if either it's not there or doesn't have enough permission.

Firstly, as long as the app has permission to access /dev/userfaultfd, it
always have the ability to trap kernel faults which QEMU mostly wants.
Meanwhile, in some context (e.g. containers) the userfaultfd syscall can be
forbidden, so it can be the major way to use postcopy in a restricted
environment with strict seccomp setup.

Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>


  Commit: 75311a67e4d3d7f1667b3a22c5f87f2ee111175c
      
https://github.com/qemu/qemu/commit/75311a67e4d3d7f1667b3a22c5f87f2ee111175c
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-02-09 (Thu, 09 Feb 2023)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration: Simplify ram_find_and_save_block()

We will need later that find_dirty_block() return errors, so
simplify the loop.

Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>


  Commit: 816150528b6aa44d60113fe77667665eb5b8b12c
      
https://github.com/qemu/qemu/commit/816150528b6aa44d60113fe77667665eb5b8b12c
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-02-09 (Thu, 09 Feb 2023)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration: Make find_dirty_block() return a single parameter

We used to return two bools, just return a single int with the
following meaning:

old return / again / new return
false        false   PAGE_ALL_CLEAN
false        true    PAGE_TRY_AGAIN
true         true    PAGE_DIRTY_FOUND  /* We don't care about again at all */

Signed-off-by: Juan Quintela <quintela@redhat.com>


  Commit: 57906a75744c22543cba3d6252f5deddea49cacf
      
https://github.com/qemu/qemu/commit/57906a75744c22543cba3d6252f5deddea49cacf
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-02-09 (Thu, 09 Feb 2023)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration: Split ram_bytes_total_common() in two functions

It is just a big if in the middle of the function, and we need two
functions anways.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Juan Quintela <quintela@redhat.com>

---

Reindent to make Phillipe happy (and CODING_STYLE)


  Commit: bb63c3aec89df85422de066ca47b84485df9451d
      
https://github.com/qemu/qemu/commit/bb63c3aec89df85422de066ca47b84485df9451d
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-02-09 (Thu, 09 Feb 2023)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration: Calculate ram size once

We are recalculating ram size continously, when we know that it don't
change during migration.  Create a field in RAMState to track it.

Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>


  Commit: 777951d46643cdb4576e00c4c47972d05b215940
      
https://github.com/qemu/qemu/commit/777951d46643cdb4576e00c4c47972d05b215940
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-02-09 (Thu, 09 Feb 2023)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration: Make ram_save_target_page() a pointer

We are going to create a new function for multifd latest in the series.

Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>


  Commit: 2aadffb0bd38730a62bc81649300130994b86aee
      
https://github.com/qemu/qemu/commit/2aadffb0bd38730a62bc81649300130994b86aee
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-02-09 (Thu, 09 Feb 2023)

  Changed paths:
    M migration/savevm.c

  Log Message:
  -----------
  migration: I messed state_pending_exact/estimate

I called the helper function from the wrong top level function.

This code was introduced in:

commit c8df4a7aeffcb46020f610526eea621fa5b0cd47
Author: Juan Quintela <quintela@redhat.com>
Date:   Mon Oct 3 02:00:03 2022 +0200

    migration: Split save_live_pending() into state_pending_*

    We split the function into to:

    - state_pending_estimate: We estimate the remaining state size without
      stopping the machine.

    - state pending_exact: We calculate the exact amount of remaining
      state.

Thanks to Avihai Horon <avihaih@nvidia.com> for finding it.

Fixes:c8df4a7aeffcb46020f610526eea621fa5b0cd47

When we introduced that patch, we enden calling

state_pending_estimate() helper from qemu_savevm_statepending_exact()
and
state_pending_exact() helper from qemu_savevm_statepending_estimate()

This patch fixes it.

Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>


  Commit: af25ac3ad07a9256d359cb24601b13e9109d8a8b
      
https://github.com/qemu/qemu/commit/af25ac3ad07a9256d359cb24601b13e9109d8a8b
  Author: ling xu <ling1.xu@intel.com>
  Date:   2023-02-09 (Thu, 09 Feb 2023)

  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:
  -----------
  AVX512 support for xbzrle_encode_buffer

This commit is the same with [PATCH v6 1/2], and provides 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: 1723c667843a55362c16be88a151f4876a70238b
      
https://github.com/qemu/qemu/commit/1723c667843a55362c16be88a151f4876a70238b
  Author: ling xu <ling1.xu@intel.com>
  Date:   2023-02-09 (Thu, 09 Feb 2023)

  Changed paths:
    M MAINTAINERS
    M tests/bench/meson.build
    A tests/bench/xbzrle-bench.c
    M tests/unit/test-xbzrle.c

  Log Message:
  -----------
  Update bench-code for addressing CI problem

Unit test code is in test-xbzrle.c, and benchmark code is in xbzrle-bench.c
for performance benchmarking. we have modified xbzrle-bench.c to address
CI problem.

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: fab94a272dceba7f543795ecedeed0b92d63e9fb
      
https://github.com/qemu/qemu/commit/fab94a272dceba7f543795ecedeed0b92d63e9fb
  Author: Peter Xu <peterx@redhat.com>
  Date:   2023-02-09 (Thu, 09 Feb 2023)

  Changed paths:
    M migration/migration.c
    M migration/migration.h
    M migration/multifd.c
    M migration/postcopy-ram.c

  Log Message:
  -----------
  migration: Rework multi-channel checks on URI

The whole idea of multi-channel checks was not properly done, IMHO.

Currently we check multi-channel in a lot of places, but actually that's
not needed because we only need to check it right after we get the URI and
that should be it.

If the URI check succeeded, we should never need to check it again because
we must have it.  If it check fails, we should fail immediately on either
the qmp_migrate or qmp_migrate_incoming, instead of failingg it later after
the connection established.

Neither should we fail any set capabiliities like what we used to do here:

5ad15e8614 ("migration: allow enabling mutilfd for specific protocol only", 
2021-10-19)

Because logically the URI will only be set later after the capability is
set, so it doesn't make a lot of sense to check the URI type when setting
the capability, because we're checking the cap with an old URI passed in,
and that may not even be the URI we're going to use later.

This patch mostly reverted all such checks for before, dropping the
variable migrate_allow_multi_channels and helpers.  Instead, add a common
helper to check URI for multi-channels for either qmp_migrate and
qmp_migrate_incoming and that should do all the proper checks.  The failure
will only trigger with the "migrate" or "migrate_incoming" command, or when
user specified "-incoming xxx" where "xxx" is not "defer".

Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>


  Commit: 01981a47b43bf133679bee1e2f31e36fcd2d8e20
      
https://github.com/qemu/qemu/commit/01981a47b43bf133679bee1e2f31e36fcd2d8e20
  Author: Peter Xu <peterx@redhat.com>
  Date:   2023-02-09 (Thu, 09 Feb 2023)

  Changed paths:
    M migration/migration.c
    M migration/postcopy-ram.c
    M migration/postcopy-ram.h

  Log Message:
  -----------
  migration: Cleanup postcopy_preempt_setup()

Since we just dropped the only case where postcopy_preempt_setup() can
return an error, it doesn't need a retval anymore because it never fails.
Move the preempt check to the caller, preparing it to be used elsewhere to
do nothing but as simple as kicking the async connection.

Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>


  Commit: 0be298f39b3a02e0c358239902f4f5265b61b3cd
      
https://github.com/qemu/qemu/commit/0be298f39b3a02e0c358239902f4f5265b61b3cd
  Author: Peter Xu <peterx@redhat.com>
  Date:   2023-02-09 (Thu, 09 Feb 2023)

  Changed paths:
    M migration/migration.c
    M migration/migration.h

  Log Message:
  -----------
  migration: Add a semaphore to count PONGs

This is mostly useless, but useful for us to know whether the main channel
is correctly established without changing the migration protocol.

Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>


  Commit: 858191aebda251a4d1e3bc77b238096673241cdd
      
https://github.com/qemu/qemu/commit/858191aebda251a4d1e3bc77b238096673241cdd
  Author: Peter Xu <peterx@redhat.com>
  Date:   2023-02-09 (Thu, 09 Feb 2023)

  Changed paths:
    M migration/migration.c
    M migration/migration.h
    M migration/postcopy-ram.c
    M migration/postcopy-ram.h
    M migration/savevm.c

  Log Message:
  -----------
  migration: Postpone postcopy preempt channel to be after main

Postcopy with preempt-mode enabled needs two channels to communicate.  The
order of channel establishment is not guaranteed.  It can happen that the
dest QEMU got the preempt channel connection request before the main
channel is established, then the migration may make no progress even during
precopy due to the wrong order.

To fix it, create the preempt channel only if we know the main channel is
established.

For a general postcopy migration, we delay it until postcopy_start(),
that's where we already went through some part of precopy on the main
channel.  To make sure dest QEMU has already established the channel, we
wait until we got the first PONG received.  That's something we do at the
start of precopy when postcopy enabled so it's guaranteed to happen sooner
or later.

For a postcopy recovery, we delay it to qemu_savevm_state_resume_prepare()
where we'll have round trips of data on bitmap synchronizations, which
means the main channel must have been established.

Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>


  Commit: 90595cc9396bb910b148391fea2e78dd8c6c8b27
      
https://github.com/qemu/qemu/commit/90595cc9396bb910b148391fea2e78dd8c6c8b27
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2023-02-10 (Fri, 10 Feb 2023)

  Changed paths:
    M MAINTAINERS
    R configs/devices/x86_64-softmmu/x86_64-quintela-devices.mak
    R configs/devices/x86_64-softmmu/x86_64-quintela2-devices.mak
    M include/standard-headers/drm/drm_fourcc.h
    M include/standard-headers/linux/ethtool.h
    M include/standard-headers/linux/fuse.h
    M include/standard-headers/linux/input-event-codes.h
    M include/standard-headers/linux/virtio_blk.h
    M linux-headers/asm-generic/hugetlb_encode.h
    M linux-headers/asm-generic/mman-common.h
    M linux-headers/asm-mips/mman.h
    M linux-headers/asm-riscv/kvm.h
    M linux-headers/linux/kvm.h
    M linux-headers/linux/psci.h
    M linux-headers/linux/userfaultfd.h
    M linux-headers/linux/vfio.h
    M meson.build
    M meson_options.txt
    M migration/migration.c
    M migration/migration.h
    M migration/multifd.c
    R migration/multifd.c.orig
    M migration/postcopy-ram.c
    M migration/postcopy-ram.h
    M migration/ram.c
    M migration/savevm.c
    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/trace-events
    M util/userfaultfd.c

  Log Message:
  -----------
  Merge tag 'migration-20230209-pull-request' of 
https://gitlab.com/juan.quintela/qemu into staging

Migration Pull request

Hi

This are all the reviewed patches for migration:
- AVX512 support for xbzrle (Ling Xu)
- /dev/userfaultd support (Peter Xu)
- Improve ordering of channels (Peter Xu)
- multifd cleanups (Li Zhang)
- Remove spurious files from last merge (me)
  Rebase makes that to you
- Fix mixup between state_pending_{exact,estimate} (me)
- Cache RAM size during migration (me)
- cleanup several functions (me)

Please apply.

# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCAAdFiEEGJn/jt6/WMzuA0uC9IfvGFhy1yMFAmPlgugACgkQ9IfvGFhy
# 1yPkIA//f6x3Zo9ll+rQX8B0LdnnuR4Gp5zai0mlxZP0673bkZfL9PqU+bMGrja0
# YH0HIrINBSFiOw6W/jK7ghR2dZcLp2zuq8X8btoU9xp4LW9fOLPMMMa61daMHXKd
# 8HAk00J+C2O1fLnym0egux0u6yRsrXYJ9FoJkoVI7dud5vVxJXriYz0R5hd9fqQW
# 0REDAZwCJ4hsKLzvXtrL3uJxm2AlYsZHL41IdFPSeNzDg9lAQbXhgsZ2wMp4AvKm
# H2GhNSf47/91dUSA/4eoMPDNyfpT3MJhMB2UZZMOI3FIfkyI3BoUNqXciJE0X50U
# TdxCJuRfN4xnuIN2zCriPkWNqzql2SBZREEm0g/Srpp5aKL3xATt5GtW4r/s/j6F
# NHPf/ad8hHZHg9YrWHDNtjmjr7oOzRoCTmWS8VtTuj7fa4f9fiOKUws5DqD5wvMU
# LclVWisNZ18ITebnJnktck65naJOGd06JplESvCBCKqiAzZzIxPRAMoI2fyWllks
# rI/+KShLZ3GtYGGcqv2RaI8i3kcG1VxBxINLneTImsP24t8ougKq/f53/OkiJUko
# GmMVl9aWSqI71N3mA/h1VVgsnUGxL4avBxrjfUfNQD8YOuo6bLqM3X/FkWxsRoOo
# F2XuKjxMLqhIYwIvoAYBdhmS/muU3qM9QkMoWdi7ZFixmAScm9w=
# =mKFF
# -----END PGP SIGNATURE-----
# gpg: Signature made Thu 09 Feb 2023 23:34:00 GMT
# 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 'migration-20230209-pull-request' of 
https://gitlab.com/juan.quintela/qemu:
  migration: Postpone postcopy preempt channel to be after main
  migration: Add a semaphore to count PONGs
  migration: Cleanup postcopy_preempt_setup()
  migration: Rework multi-channel checks on URI
  Update bench-code for addressing CI problem
  AVX512 support for xbzrle_encode_buffer
  migration: I messed state_pending_exact/estimate
  migration: Make ram_save_target_page() a pointer
  migration: Calculate ram size once
  migration: Split ram_bytes_total_common() in two functions
  migration: Make find_dirty_block() return a single parameter
  migration: Simplify ram_find_and_save_block()
  util/userfaultfd: Support /dev/userfaultfd
  linux-headers: Update to v6.1
  multifd: Remove some redundant code
  multifd: cleanup the function multifd_channel_connect
  migration: Remove spurious files

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


Compare: https://github.com/qemu/qemu/compare/3b33ae48ec28...90595cc9396b



reply via email to

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