1. 31 3月, 2022 1 次提交
  2. 30 3月, 2022 3 次提交
    • P
      Update version for v7.0.0-rc2 release · aea6e471
      Peter Maydell 提交于
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      aea6e471
    • P
      Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging · aad3cc86
      Peter Maydell 提交于
      Build bugfixes.
      
      # gpg: Signature made Tue 29 Mar 2022 14:59:03 BST
      # gpg:                using RSA key F13338574B662389866C7682BFFBD25F78C7AE83
      # gpg:                issuer "pbonzini@redhat.com"
      # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>" [full]
      # gpg:                 aka "Paolo Bonzini <pbonzini@redhat.com>" [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
      
      * tag 'for-upstream' of https://gitlab.com/bonzini/qemu:
        tests/tcg: really fix path to target configuration
        virtio: fix --enable-vhost-user build on non-Linux
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      aad3cc86
    • P
      Merge tag 'pull-block-2022-03-29' of https://gitlab.com/hreitz/qemu into staging · 68894b5f
      Peter Maydell 提交于
      Block patches for 7.0-rc2:
      - Disable GLOBAL_STATE_CODE() assertion for the 7.0 release: We got
        another bug report for this, and we do not have the time to
        investigate before 7.0, so disable the assertion for the release, to
        re-enable and continue investigation in the 7.1 cycle
      
      - stream job fix (regarding interaction with concurrent block jobs)
      
      - iotests fixes
      
      # gpg: Signature made Tue 29 Mar 2022 15:55:33 BST
      # gpg:                using RSA key CB62D7A0EE3829E45F004D34A1FA40D098019CDF
      # gpg:                issuer "hreitz@redhat.com"
      # gpg: Good signature from "Hanna Reitz <hreitz@redhat.com>" [marginal]
      # gpg: WARNING: This key is not certified with sufficiently trusted signatures!
      # gpg:          It is not certain that the signature belongs to the owner.
      # Primary key fingerprint: CB62 D7A0 EE38 29E4 5F00  4D34 A1FA 40D0 9801 9CDF
      
      * tag 'pull-block-2022-03-29' of https://gitlab.com/hreitz/qemu:
        iotests: Fix status checks
        block/stream: Drain subtree around graph change
        main-loop: Disable GLOBAL_STATE_CODE() assertions
        iotests: update test owner contact information
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      68894b5f
  3. 29 3月, 2022 16 次提交
    • L
      tests/qtest: failover: fix infinite loop · 6ae6a30c
      Laurent Vivier 提交于
      If the migration is over before we cancel it, we are
      waiting in a loop a state that never comes because the state
      is already "completed".
      
      To avoid an infinite loop, skip the test if the migration
      is "completed" before we were able to cancel it.
      Signed-off-by: NLaurent Vivier <lvivier@redhat.com>
      Acked-by: NThomas Huth <thuth@redhat.com>
      Message-id: 20220329124259.355995-1-lvivier@redhat.com
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      6ae6a30c
    • H
      iotests: Fix status checks · d5699c0d
      Hanna Reitz 提交于
      An iotest's 'paused' condition is fickle; it will be reported as true
      whenever the job is drained, for example, or when it is in the process
      of completing.
      
      030 and 041 contain such checks, we should replace them by checking the
      job status instead.  (As was done for 129 in commit f9a6256b
      for the 'busy' condition.)
      
      Additionally, when we want to test that a job is paused on error, we
      might want to give it some time to actually switch to the paused state.
      Do that by waiting on the corresponding JOB_STATUS_CHANGE event.  (But
      only if they are not already paused; the loops these places are in fetch
      all VM events, so they may have already fetched that event from the
      queue.)
      Signed-off-by: NHanna Reitz <hreitz@redhat.com>
      Message-Id: <20220324180221.24508-1-hreitz@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      d5699c0d
    • H
      block/stream: Drain subtree around graph change · b1e1af39
      Hanna Reitz 提交于
      When the stream block job cuts out the nodes between top and base in
      stream_prepare(), it does not drain the subtree manually; it fetches the
      base node, and tries to insert it as the top node's backing node with
      bdrv_set_backing_hd().  bdrv_set_backing_hd() however will drain, and so
      the actual base node might change (because the base node is actually not
      part of the stream job) before the old base node passed to
      bdrv_set_backing_hd() is installed.
      
      This has two implications:
      
      First, the stream job does not keep a strong reference to the base node.
      Therefore, if it is deleted in bdrv_set_backing_hd()'s drain (e.g.
      because some other block job is drained to finish), we will get a
      use-after-free.  We should keep a strong reference to that node.
      
      Second, even with such a strong reference, the problem remains that the
      base node might change before bdrv_set_backing_hd() actually runs and as
      a result the wrong base node is installed.
      
      Both effects can be seen in 030's TestParallelOps.test_overlapping_5()
      case, which has five nodes, and simultaneously streams from the middle
      node to the top node, and commits the middle node down to the base node.
      As it is, this will sometimes crash, namely when we encounter the
      above-described use-after-free.
      
      Taking a strong reference to the base node, we no longer get a crash,
      but the resuling block graph is less than ideal: The expected result is
      obviously that all middle nodes are cut out and the base node is the
      immediate backing child of the top node.  However, if stream_prepare()
      takes a strong reference to its base node (the middle node), and then
      the commit job finishes in bdrv_set_backing_hd(), supposedly dropping
      that middle node, the stream job will just reinstall it again.
      
      Therefore, we need to keep the whole subtree drained in
      stream_prepare(), so that the graph modification it performs is
      effectively atomic, i.e. that the base node it fetches is still the base
      node when bdrv_set_backing_hd() sets it as the top node's backing node.
      
      Verify this by asserting in said 030's test case that the base node is
      always the top node's immediate backing child when both jobs are done.
      Signed-off-by: NHanna Reitz <hreitz@redhat.com>
      Message-Id: <20220324140907.17192-1-hreitz@redhat.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Acked-by: NVladimir Sementsov-Ogievskiy <v.sementsov-og@mail.ru>
      b1e1af39
    • H
      main-loop: Disable GLOBAL_STATE_CODE() assertions · b1c07349
      Hanna Reitz 提交于
      These assertions are very useful for developers to find bugs, and so
      they have indeed pointed us towards bugs already.  For users, it is not
      so useful to find these bugs.  We should probably not enable them in
      releases until we are sufficiently certain that they will not fire
      during normal operation, unless something is going seriously wrong.
      
      For example, we have received a bug report that you cannot add an NBD
      server on a BDS in an I/O thread with `-incoming defer`.  I am sure this
      is a real bug that needs investigation, but we do not really have that
      time right now, so close to release, and so I would rather disable the
      assertions to get time to investigate such reports.
      
      (I am just putting the link as "buglink" below, not "closes", because
      disabling the assertion will not fix the likely underlying bug.)
      
      Buglink: https://gitlab.com/qemu-project/qemu/-/issues/945Signed-off-by: NHanna Reitz <hreitz@redhat.com>
      Message-Id: <20220329093545.52114-1-hreitz@redhat.com>
      Reviewed-by: NPhilippe Mathieu-Daudé <f4bug@amsat.org>
      Tested-by: NPhilippe Mathieu-Daudé <f4bug@amsat.org>
      Reviewed-by: NEmanuele Giuseppe Esposito <eesposit@redhat.com>
      b1c07349
    • J
      iotests: update test owner contact information · 42a5009d
      John Snow 提交于
      Quite a few of these tests have stale contact information. This patch
      updates the stale ones that I happen to be aware of at the moment.
      Signed-off-by: NJohn Snow <jsnow@redhat.com>
      Message-Id: <20220322174212.1169630-1-jsnow@redhat.com>
      Reviewed-by: NThomas Huth <thuth@redhat.com>
      Signed-off-by: NHanna Reitz <hreitz@redhat.com>
      42a5009d
    • P
      Merge tag 'darwin-20220329' of https://github.com/philmd/qemu into staging · 44064550
      Peter Maydell 提交于
      Darwin patches
      
      - UI fixes
      
      # gpg: Signature made Mon 28 Mar 2022 23:42:21 BST
      # gpg:                using RSA key FAABE75E12917221DCFD6BB2E3E32C2CDEADC0DE
      # gpg: Good signature from "Philippe Mathieu-Daudé (F4BUG) <f4bug@amsat.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: FAAB E75E 1291 7221 DCFD  6BB2 E3E3 2C2C DEAD C0DE
      
      * tag 'darwin-20220329' of https://github.com/philmd/qemu:
        ui/console: Check console before emitting GL event
        ui/cocoa: Respect left-command-key option
        main-loop: Disable block backend global state assertion on Cocoa
        gitattributes: Cover Objective-C source files
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      44064550
    • P
      tests/tcg: really fix path to target configuration · 36e38426
      Paolo Bonzini 提交于
      This was attempted in commit 533b0a1a ("tests/tcg: Fix target-specific
      Makefile variables path for user-mode", 2022-01-12) but it also used the
      wrong path; default.mak is used for config/devices, not config/targets.
      
      While at it, explain what the inclusion is about.
      
      Cc: Alex Bennée <alex.bennee@linaro.org>
      Reviewed-by: NPhilippe Mathieu-Daudé <f4bug@amsat.org>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      36e38426
    • P
      virtio: fix --enable-vhost-user build on non-Linux · 14b61778
      Paolo Bonzini 提交于
      The vhost-shadow-virtqueue.c build requires include files from
      linux-headers/, so it cannot be built on non-Linux systems.
      Fortunately it is only needed by vhost-vdpa, so move it there.
      Acked-by: NEugenio Pérez <eperezma@redhat.com>
      Acked-by: NJason Wang <jasowang@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      14b61778
    • P
      Merge tag 'mips-20220329' of https://github.com/philmd/qemu into staging · bed1fa2f
      Peter Maydell 提交于
      MIPS patches queue
      
      - ABI fixes (Xuerui, Andreas)
      - Memory API alias fix (David)
      
      # gpg: Signature made Tue 29 Mar 2022 11:34:42 BST
      # gpg:                using RSA key FAABE75E12917221DCFD6BB2E3E32C2CDEADC0DE
      # gpg: Good signature from "Philippe Mathieu-Daudé (F4BUG) <f4bug@amsat.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: FAAB E75E 1291 7221 DCFD  6BB2 E3E3 2C2C DEAD C0DE
      
      * tag 'mips-20220329' of https://github.com/philmd/qemu:
        qemu-binfmt-conf.sh: mips: allow nonzero EI_ABIVERSION, distinguish o32 and n32
        target/mips: Fix address space range declaration on n32
        memory: Make memory_region_readd_subregion() properly handle mapped aliases
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      bed1fa2f
    • A
      qemu-binfmt-conf.sh: mips: allow nonzero EI_ABIVERSION, distinguish o32 and n32 · 77d119dd
      Andreas K. Hüttel 提交于
      With the command line flag -mplt and a recent toolchain, ELF binaries
      generated by gcc can obtain EI_ABIVERSION=1, which makes, e.g., gcc
      three-stage bootstrap in a mips-unknown-linux-gnu qemu-user chroot
      fail since the binfmt-misc magic does not match anymore. Also other
      values are technically possible. qemu executes these binaries just
      fine, so relax the mask for the EI_ABIVERSION byte at offset 0x08.
      
      In addition, extend magic string to distinguish mips o32 and n32 ABI.
      This information is given by the EF_MIPS_ABI2 (0x20) bit in the
      e_flags field of the ELF header (a 4-byte value at offset 0x24 for
      the here applicable ELFCLASS32).
      
      See-also: ace3d654Signed-off-by: NAndreas K. Hüttel <dilfridge@gentoo.org>
      Reviewed-by: NPhilippe Mathieu-Daudé <f4bug@amsat.org>
      Reviewed-by: NWANG Xuerui <xen0n@gentoo.org>
      Cc: Laurent Vivier <laurent@vivier.eu>
      Cc: WANG Xuerui <xen0n@gentoo.org>
      Cc: Richard Henderson <richard.henderson@linaro.org>
      Cc: Alex Bennee <alex.bennee@linaro.org>
      Cc: Philippe Mathieu-Daudé <f4bug@amsat.org>
      Closes: https://gitlab.com/qemu-project/qemu/-/issues/843
      Message-Id: <20220328204900.3914990-1-dilfridge@gentoo.org>
      Signed-off-by: NPhilippe Mathieu-Daudé <f4bug@amsat.org>
      77d119dd
    • W
      target/mips: Fix address space range declaration on n32 · 8cd0e663
      WANG Xuerui 提交于
      This bug is probably lurking there for so long, I cannot even git-blame
      my way to the commit first introducing it.
      
      Anyway, because n32 is also TARGET_MIPS64, the address space range
      cannot be determined by looking at TARGET_MIPS64 alone. Fix this by only
      declaring 48-bit address spaces for n64, or the n32 user emulation will
      happily hand out memory ranges beyond the 31-bit limit and crash.
      
      Confirmed to make the minimal reproducing example in the linked issue
      behave.
      
      Closes: https://gitlab.com/qemu-project/qemu/-/issues/939
      Cc: Philippe Mathieu-Daudé <f4bug@amsat.org>
      Cc: Aurelien Jarno <aurelien@aurel32.net>
      Cc: Jiaxun Yang <jiaxun.yang@flygoat.com>
      Cc: Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>
      Signed-off-by: NWANG Xuerui <xen0n@gentoo.org>
      Tested-by: NAndreas K. Huettel <dilfridge@gentoo.org>
      Reviewed-by: NRichard Henderson <richard.henderson@linaro.org>
      Reviewed-by: NPhilippe Mathieu-Daudé <f4bug@amsat.org>
      Message-Id: <20220328035942.3299661-1-xen0n@gentoo.org>
      Signed-off-by: NPhilippe Mathieu-Daudé <f4bug@amsat.org>
      8cd0e663
    • D
      memory: Make memory_region_readd_subregion() properly handle mapped aliases · a8749d7c
      David Hildenbrand 提交于
      memory_region_readd_subregion() wants to readd a region by first
      removing it and then readding it. For readding, it doesn't use one of
      the memory_region_add_*() variants, which is why fail to re-increment the
      mr->mapped_via_alias counters, resulting in the
      assert(alias->mapped_via_alias >= 0) in memory_region_del_subregion()
      triggering the next time we call memory_region_readd_subregion().
      
      Fix it by using memory_region_add_subregion_common() for readding the
      region.
      Reported-by: NNiek Linnenbank <nieklinnenbank@gmail.com>
      Fixes: 5ead6218 ("memory: Make memory_region_is_mapped() succeed when mapped via an alias")
      Tested-by: NNiek Linnenbank <nieklinnenbank@gmail.com>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: Peter Xu <peterx@redhat.com>
      Cc: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
      Signed-off-by: NDavid Hildenbrand <david@redhat.com>
      Message-Id: <20220201100940.47788-1-david@redhat.com>
      Signed-off-by: NPhilippe Mathieu-Daudé <f4bug@amsat.org>
      a8749d7c
    • A
      ui/console: Check console before emitting GL event · 1699d00e
      Akihiko Odaki 提交于
      Without this change, The GL output of a console overwrites the
      other consoles and makes them unusable.
      Signed-off-by: NAkihiko Odaki <akihiko.odaki@gmail.com>
      Reviewed-by: NMarc-André Lureau <marcandre.lureau@redhat.com>
      Reviewed-by: NPhilippe Mathieu-Daudé <f4bug@amsat.org>
      Message-Id: <20220325161216.74582-1-akihiko.odaki@gmail.com>
      Signed-off-by: NPhilippe Mathieu-Daudé <f4bug@amsat.org>
      1699d00e
    • A
      ui/cocoa: Respect left-command-key option · d6b6dea7
      Akihiko Odaki 提交于
      Signed-off-by: NAkihiko Odaki <akihiko.odaki@gmail.com>
      Fixes: 4797adce ("ui/cocoa: add option to swap Option and Command")
      Reviewed-by: NPhilippe Mathieu-Daudé <f4bug@amsat.org>
      Message-Id: <20220317152949.68666-1-akihiko.odaki@gmail.com>
      Signed-off-by: NPhilippe Mathieu-Daudé <f4bug@amsat.org>
      d6b6dea7
    • P
      main-loop: Disable block backend global state assertion on Cocoa · 47281859
      Philippe Mathieu-Daudé 提交于
      Since commit 0439c5a4 ("block/block-backend.c: assertions for
      block-backend") QEMU crashes when using Cocoa on Darwin hosts.
      
      Example on macOS:
      
        $ qemu-system-i386
        Assertion failed: (qemu_in_main_thread()), function blk_all_next, file block-backend.c, line 552.
        Abort trap: 6
      
      Looking with lldb:
      
        Assertion failed: (qemu_in_main_thread()), function blk_all_next, file block-backend.c, line 552.
        Process 76914 stopped
        * thread #1, queue = 'com.apple.main-thread', stop reason = hit program assert
           frame #4: 0x000000010057c2d4 qemu-system-i386`blk_all_next.cold.1
        at block-backend.c:552:5 [opt]
            549    */
            550   BlockBackend *blk_all_next(BlockBackend *blk)
            551   {
        --> 552       GLOBAL_STATE_CODE();
            553       return blk ? QTAILQ_NEXT(blk, link)
            554                  : QTAILQ_FIRST(&block_backends);
            555   }
        Target 1: (qemu-system-i386) stopped.
      
        (lldb) bt
        * thread #1, queue = 'com.apple.main-thread', stop reason = hit program assert
           frame #0: 0x00000001908c99b8 libsystem_kernel.dylib`__pthread_kill + 8
           frame #1: 0x00000001908fceb0 libsystem_pthread.dylib`pthread_kill + 288
           frame #2: 0x000000019083a314 libsystem_c.dylib`abort + 164
           frame #3: 0x000000019083972c libsystem_c.dylib`__assert_rtn + 300
         * frame #4: 0x000000010057c2d4 qemu-system-i386`blk_all_next.cold.1 at block-backend.c:552:5 [opt]
           frame #5: 0x00000001003c00b4 qemu-system-i386`blk_all_next(blk=<unavailable>) at block-backend.c:552:5 [opt]
           frame #6: 0x00000001003d8f04 qemu-system-i386`qmp_query_block(errp=0x0000000000000000) at qapi.c:591:16 [opt]
           frame #7: 0x000000010003ab0c qemu-system-i386`main [inlined] addRemovableDevicesMenuItems at cocoa.m:1756:21 [opt]
           frame #8: 0x000000010003ab04 qemu-system-i386`main(argc=<unavailable>, argv=<unavailable>) at cocoa.m:1980:5 [opt]
           frame #9: 0x00000001012690f4 dyld`start + 520
      
      As we are in passed release 7.0 hard freeze, disable the block
      backend assertion which, while being valuable during development,
      is not helpful to users. We'll restore this assertion immediately
      once 7.0 is released and work on a fix.
      Suggested-by: NAkihiko Odaki <akihiko.odaki@gmail.com>
      Signed-off-by: NPhilippe Mathieu-Daudé <f4bug@amsat.org>
      Reviewed-by: NAkihiko Odaki <akihiko.odaki@gmail.com>
      Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-Id: <20220325183707.85733-1-philippe.mathieu.daude@gmail.com>
      47281859
    • P
      gitattributes: Cover Objective-C source files · bc4ca8ef
      Philippe Mathieu-Daudé 提交于
      Apple's Git distribution actually carries a similar file which
      annotates *.m:
      https://github.com/apple-opensource/Git/blob/73/gitattributes
      
      See comments in commit 29cf16db ("buildsys: Help git-diff
      adding .gitattributes config file") for details.
      Signed-off-by: NPhilippe Mathieu-Daudé <f4bug@amsat.org>
      Reviewed-by: NChristian Schoenebeck <qemu_oss@crudebyte.com>
      Message-Id: <20220317130326.39188-1-philippe.mathieu.daude@gmail.com>
      bc4ca8ef
  4. 28 3月, 2022 1 次提交
  5. 26 3月, 2022 1 次提交
  6. 25 3月, 2022 8 次提交
  7. 24 3月, 2022 3 次提交
  8. 23 3月, 2022 7 次提交