qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 9a709f: piix: fix xenfv regression, add compa


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 9a709f: piix: fix xenfv regression, add compat machine xen...
Date: Mon, 13 Apr 2020 07:45:26 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 9a709f06c87043856307ce824b2ba47e0fdb7621
      
https://github.com/qemu/qemu/commit/9a709f06c87043856307ce824b2ba47e0fdb7621
  Author: Olaf Hering <address@hidden>
  Date:   2020-04-11 (Sat, 11 Apr 2020)

  Changed paths:
    M hw/i386/pc_piix.c
    M tests/qtest/device-introspect-test.c
    M tests/qtest/qom-test.c
    M tests/qtest/test-hmp.c

  Log Message:
  -----------
  piix: fix xenfv regression, add compat machine xenfv-4.2

With QEMU 4.0 an incompatible change was added to pc_piix, which makes it
practical impossible to migrate domUs started with qemu2 or qemu3 to
newer qemu versions. Commit 7fccf2a06890e3bc3b30e29827ad3fb93fe88fea
added and enabled a new member "smbus_no_migration_support". In commit
4ab2f2a8aabfea95cc53c64e13b3f67960b27fdf the vmstate_acpi got new
elements, which are conditionally filled. As a result, an incoming
migration expected smbus related data unless smbus migration was
disabled for a given MachineClass. Since first commit forgot to handle
'xenfv', domUs started with QEMU 4.x are incompatible with their QEMU
siblings.

Using other existing machine types, such as 'pc-i440fx-3.1', is not
possible because 'xenfv' creates the 'xen-platform' PCI device at
00:02.0, while all other variants to run a domU would create it at
00:04.0.

To cover both the existing and the broken case of 'xenfv' in a single
qemu binary, a new compatibility variant of 'xenfv-4.2' must be added
which targets domUs started with qemu 4.2. The existing 'xenfv' restores
compatibility of QEMU 5.x with qemu 3.1.

Host admins who started domUs with QEMU 4.x (preferrable QEMU 4.2)
have to use a wrapper script which appends '-machine xenfv-4.2' to
the device-model command line.  This is only required if there is no
maintenance window which allows to temporary shutdown the domU and
restart it with a fixed device-model.

The wrapper script is as simple as this:
  #!/bin/sh
  exec /usr/bin/qemu-system-i386 "$@" -machine xenfv-4.2

With xl this script will be enabled with device_model_override=, see
xl.cfg(5). To live migrate a domU, adjust the existing domU.cfg and pass
it to xl migrate or xl save/restore:
  xl migrate -C new-domU.cfg domU remote-host
  xl save domU CheckpointFile new-domU.cfg
  xl restore new-domU.cfg CheckpointFile

With libvirt this script will be enabled with the <emulator> element in
domU.xml. Use 'virsh edit' prior 'virsh migrate' to replace the existing
<emulator> element to point it to the wrapper script.

Signed-off-by: Olaf Hering <address@hidden>
Message-Id: <address@hidden>
[Adjust tests for blacklisted machine types, simplifying the one in
 qom-test. - Paolo]
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 278fb1627351218b23dd33403f08d7521643fda2
      
https://github.com/qemu/qemu/commit/278fb1627351218b23dd33403f08d7521643fda2
  Author: Bauerchen <address@hidden>
  Date:   2020-04-11 (Sat, 11 Apr 2020)

  Changed paths:
    M util/oslib-posix.c

  Log Message:
  -----------
  oslib-posix: take lock before qemu_cond_broadcast

In touch_all_pages, if the mutex is not taken around qemu_cond_broadcast,
qemu_cond_broadcast may be called before all touch page threads enter
qemu_cond_wait. In this case, the touch page threads wait forever for the
main thread to wake them up, causing a deadlock.

Signed-off-by: Bauerchen <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 15e8699f009f7feeab7d9ab406bf62882958e4d9
      
https://github.com/qemu/qemu/commit/15e8699f009f7feeab7d9ab406bf62882958e4d9
  Author: Paolo Bonzini <address@hidden>
  Date:   2020-04-11 (Sat, 11 Apr 2020)

  Changed paths:
    A docs/devel/atomics.rst
    R docs/devel/atomics.txt
    M docs/devel/index.rst

  Log Message:
  -----------
  atomics: convert to reStructuredText

No attempts to fix or update the text; these are left for the next
patch in the series.

Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: de99dab06f7917095586517f1ab0e6dab7a03322
      
https://github.com/qemu/qemu/commit/de99dab06f7917095586517f1ab0e6dab7a03322
  Author: Paolo Bonzini <address@hidden>
  Date:   2020-04-13 (Mon, 13 Apr 2020)

  Changed paths:
    M docs/devel/atomics.rst

  Log Message:
  -----------
  atomics: update documentation

Some of the constraints on operand sizes have been relaxed, so adjust the
documentation.

Deprecate atomic_mb_read and atomic_mb_set; it is not really possible to
use them correctly because they do not interoperate with sequentially-consistent
RMW operations.

Finally, extend the memory barrier pairing section to cover acquire and
release semantics in general, roughly based on the KVM Forum 2016 talk,
"<atomic.h> weapons".

Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: fb8a9677b1cab0ea140a8206050f7c7ff99bb465
      
https://github.com/qemu/qemu/commit/fb8a9677b1cab0ea140a8206050f7c7ff99bb465
  Author: Paolo Bonzini <address@hidden>
  Date:   2020-04-13 (Mon, 13 Apr 2020)

  Changed paths:
    M docs/devel/rcu.txt

  Log Message:
  -----------
  rcu: do not mention atomic_mb_read/set in documentation

Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 1148e4f4dc22f8efe3419fda4ca4f0a7369ef94a
      
https://github.com/qemu/qemu/commit/1148e4f4dc22f8efe3419fda4ca4f0a7369ef94a
  Author: Igor Mammedov <address@hidden>
  Date:   2020-04-13 (Mon, 13 Apr 2020)

  Changed paths:
    M softmmu/vl.c

  Log Message:
  -----------
  vl.c: error out if -mem-path is used together with -M memory-backend

the former is not actually used by explicit backend, so instead of
silently ignoring the option in non valid context, exit with error.

Signed-off-by: Igor Mammedov <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: d489ae4ac57ebe14bde8384556cbac237ead988d
      
https://github.com/qemu/qemu/commit/d489ae4ac57ebe14bde8384556cbac237ead988d
  Author: Alexander Duyck <address@hidden>
  Date:   2020-04-13 (Mon, 13 Apr 2020)

  Changed paths:
    M include/exec/memory.h

  Log Message:
  -----------
  memory: Do not allow direct write access to rom_device regions

According to the documentation in memory.h a ROM memory region will be
backed by RAM for reads, but is supposed to go through a callback for
writes. Currently we were not checking for the existence of the rom_device
flag when determining if we could perform a direct write or not.

To correct that add a check to memory_region_is_direct so that if the
memory region has the rom_device flag set we will return false for all
checks where is_write is set.

Signed-off-by: Alexander Duyck <address@hidden>
Message-Id: <20200410034150.24738.98143.stgit@localhost.localdomain>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 267514b33ffa3f315adc26fc14d89f92e90840f5
      
https://github.com/qemu/qemu/commit/267514b33ffa3f315adc26fc14d89f92e90840f5
  Author: Bruce Rogers <address@hidden>
  Date:   2020-04-13 (Mon, 13 Apr 2020)

  Changed paths:
    M util/module.c

  Log Message:
  -----------
  module: increase dirs array size by one

With the module upgrades code change, the statically sized dirs array
can now overflow. Increase it's size by one, according to the new
maximum possible usage.

Fixes: bd83c861c0 ("modules: load modules from versioned /var/run dir")
Signed-off-by: Bruce Rogers <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: e33d61cc9aef14f21fbf16c0e3cf01d2e2965717
      
https://github.com/qemu/qemu/commit/e33d61cc9aef14f21fbf16c0e3cf01d2e2965717
  Author: Peter Maydell <address@hidden>
  Date:   2020-04-13 (Mon, 13 Apr 2020)

  Changed paths:
    A docs/devel/atomics.rst
    R docs/devel/atomics.txt
    M docs/devel/index.rst
    M docs/devel/rcu.txt
    M hw/i386/pc_piix.c
    M include/exec/memory.h
    M softmmu/vl.c
    M tests/qtest/device-introspect-test.c
    M tests/qtest/qom-test.c
    M tests/qtest/test-hmp.c
    M util/module.c
    M util/oslib-posix.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging

Bugfixes, and reworking of the atomics documentation.

# gpg: Signature made Mon 13 Apr 2020 07:56:22 BST
# gpg:                using RSA key F13338574B662389866C7682BFFBD25F78C7AE83
# gpg:                issuer "address@hidden"
# gpg: Good signature from "Paolo Bonzini <address@hidden>" [full]
# gpg:                 aka "Paolo Bonzini <address@hidden>" [full]
# Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4  E2F7 7E15 100C CD36 69B1
#      Subkey fingerprint: F133 3857 4B66 2389 866C  7682 BFFB D25F 78C7 AE83

* remotes/bonzini/tags/for-upstream:
  module: increase dirs array size by one
  memory: Do not allow direct write access to rom_device regions
  vl.c: error out if -mem-path is used together with -M memory-backend
  rcu: do not mention atomic_mb_read/set in documentation
  atomics: update documentation
  atomics: convert to reStructuredText
  oslib-posix: take lock before qemu_cond_broadcast
  piix: fix xenfv regression, add compat machine xenfv-4.2

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/792cb70eb062...e33d61cc9aef



reply via email to

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