1. 16 8月, 2018 32 次提交
  2. 15 8月, 2018 8 次提交
    • P
      Merge remote-tracking branch 'remotes/famz/tags/block-and-testing-pull-request' into staging · 1d746ee9
      Peter Maydell 提交于
      Block and testing patches for 3.1
      
      - aio fixes by me
      - nvme fixes by Paolo and me
      - test improvements by Peter, Phil and me
      
      # gpg: Signature made Wed 15 Aug 2018 04:11:43 BST
      # gpg:                using RSA key CA35624C6A9171C6
      # gpg: Good signature from "Fam Zheng <famz@redhat.com>"
      # Primary key fingerprint: 5003 7CB7 9706 0F76 F021  AD56 CA35 624C 6A91 71C6
      
      * remotes/famz/tags/block-and-testing-pull-request:
        aio-posix: Improve comment around marking node deleted
        tests/vm: Add vm-build-all/vm-clean-all in help text
        tests/vm: Use make's --output-sync option
        tests/vm: Bump guest RAM up from 2G to 4G
        tests/vm: Propagate V=1 down into the make inside the VM
        tests/vm: Pass the jobs parallelism setting to 'make check'
        tests: vm: Add vm-clean-all
        tests: Add centos VM testing
        tests: Allow overriding archive path with SRC_ARCHIVE
        tests: Add an option for snapshot (default: off)
        docker: Install more packages in centos7
        aio: Do aio_notify_accept only during blocking aio_poll
        aio-posix: Don't count ctx->notifier as progress when polling
        nvme: simplify plug/unplug
        nvme: Fix nvme_init error handling
        tests/vm: Add flex and bison to the vm image
        tests/vm: Only use -cpu 'host' if KVM is available
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      1d746ee9
    • P
      Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20180814' into staging · 48a539df
      Peter Maydell 提交于
      target-arm queue:
       * Implement more of ARMv6-M support
       * Support direct execution from non-RAM regions;
         use this to implmeent execution from small (<1K) MPU regions
       * GICv2: implement the virtualization extensions
       * support a virtualization-capable GICv2 in the virt and
         xlnx-zynqmp boards
       * arm: Fix return code of arm_load_elf() so we can detect
         failure to load the file correctly
       * Implement HCR_EL2.TGE ("trap general exceptions") bit
       * Implement tailchaining for M profile cores
       * Fix bugs in SVE compare, saturating add/sub, WHILE, MOVZ
      
      # gpg: Signature made Tue 14 Aug 2018 17:23:38 BST
      # gpg:                using RSA key 3C2525ED14360CDE
      # gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>"
      # gpg:                 aka "Peter Maydell <pmaydell@gmail.com>"
      # gpg:                 aka "Peter Maydell <pmaydell@chiark.greenend.org.uk>"
      # Primary key fingerprint: E1A5 C593 CD41 9DE2 8E83  15CF 3C25 25ED 1436 0CDE
      
      * remotes/pmaydell/tags/pull-target-arm-20180814: (45 commits)
        target/arm: Fix typo in helper_sve_movz_d
        target/arm: Reorganize SVE WHILE
        target/arm: Fix typo in do_sat_addsub_64
        target/arm: Fix sign of sve_cmpeq_ppzw/sve_cmpne_ppzw
        target/arm: Implement tailchaining for M profile cores
        target/arm: Restore M-profile CONTROL.SPSEL before any tailchaining
        target/arm: Initialize exc_secure correctly in do_v7m_exception_exit()
        target/arm: Improve exception-taken logging
        target/arm: Treat SCTLR_EL1.M as if it were zero when HCR_EL2.TGE is set
        target/arm: Provide accessor functions for HCR_EL2.{IMO, FMO, AMO}
        target/arm: Honour HCR_EL2.TGE when raising synchronous exceptions
        target/arm: Honour HCR_EL2.TGE and MDCR_EL2.TDE in debug register access checks
        target/arm: Mask virtual interrupts if HCR_EL2.TGE is set
        arm: Fix return code of arm_load_elf
        arm/virt: Add support for GICv2 virtualization extensions
        xlnx-zynqmp: Improve GIC wiring and MMIO mapping
        intc/arm_gic: Improve traces
        intc/arm_gic: Implement maintenance interrupt generation
        intc/arm_gic: Implement gic_update_virt() function
        intc/arm_gic: Implement the virtual interface registers
        ...
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      48a539df
    • P
      qapi: block: Remove mentions of error types which were removed · b5fc2d30
      Peter Krempa 提交于
      Most of the various error classes were removed prior to the 1.2 release.
      Remove mentions of the error classes which did not make it.
      Signed-off-by: NPeter Krempa <pkrempa@redhat.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      b5fc2d30
    • A
      block: Simplify append_open_options() · 261dbcb1
      Alberto Garcia 提交于
      This function returns a BDS's driver-specific options, excluding also
      those from its children. Since we have just removed all children
      options from bs->options there's no need to do this last step.
      
      We allow references to children, though ("backing": "node0"), so those
      we still have to remove.
      Signed-off-by: NAlberto Garcia <berto@igalia.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      261dbcb1
    • A
      block: Update bs->options if bdrv_reopen() succeeds · 4c8350fe
      Alberto Garcia 提交于
      If bdrv_reopen() succeeds then bs->explicit_options is updated with
      the new values, but bs->options never changes.
      
      Here's an example:
      
         { "execute": "blockdev-add",
           "arguments": {
             "driver": "qcow2",
             "node-name": "hd0",
             "overlap-check": "all",
             "file": {
               "driver": "file",
               "filename": "hd0.qcow2"
             }
           }
         }
      
      After this, both bs->options and bs->explicit_options contain
      "overlap-check": "all".
      
      Now let's change that using qemu-io's reopen command:
      
         (qemu) qemu-io hd0 "reopen -o overlap-check=none"
      
      After this, bs->explicit_options contains the new value but
      bs->options still keeps the old one.
      
      This patch updates bs->options after a BDS has been successfully
      reopened.
      Signed-off-by: NAlberto Garcia <berto@igalia.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      4c8350fe
    • A
      block: Simplify bdrv_reopen_abort() · 1bab38e7
      Alberto Garcia 提交于
      If a bdrv_reopen_multiple() call fails, then the explicit_options
      QDict has to be deleted for every entry in the reopen queue. This must
      happen regardless of whether that entry's bdrv_reopen_prepare() call
      succeeded or not.
      
      This patch simplifies the cleanup code a bit.
      Signed-off-by: NAlberto Garcia <berto@igalia.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      1bab38e7
    • A
      block: Remove children options from bs->{options,explicit_options} · 2f624b80
      Alberto Garcia 提交于
      When bdrv_open_inherit() opens a BlockDriverState the options QDict
      can contain options for some of its children, passed in the form of
      child-name.option=value
      
      So while each child is opened with that subset of options, those same
      options remain stored in the parent BDS, leaving (at least) two copies
      of each one of them ("child-name.option=value" in the parent and
      "option=value" in the child).
      
      Having the children options stored in the parent is unnecessary and it
      can easily lead to an inconsistent state:
      
        $ qemu-img create -f qcow2 hd0.qcow2 10M
        $ qemu-img create -f qcow2 -b hd0.qcow2 hd1.qcow2
        $ qemu-img create -f qcow2 -b hd1.qcow2 hd2.qcow2
      
        $ $QEMU -drive file=hd2.qcow2,node-name=hd2,backing.node-name=hd1
      
      This opens a chain of images hd0 <- hd1 <- hd2. Now let's remove hd1
      using block_stream:
      
        (qemu) block_stream hd2 0 hd0.qcow2
      
      After this hd2 contains backing.node-name=hd1, which is no longer
      correct because hd1 doesn't exist anymore.
      
      This patch removes all children options from the parent dictionaries
      at the end of bdrv_open_inherit() and bdrv_reopen_queue_child().
      Signed-off-by: NAlberto Garcia <berto@igalia.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      2f624b80
    • A
      qdict: Make qdict_extract_subqdict() accept dst = NULL · 655b4b67
      Alberto Garcia 提交于
      This function extracts all options from a QDict starting with a
      certain prefix and puts them in a new QDict.
      
      We'll have a couple of cases where we simply want to discard those
      options instead of copying them, and that's what this patch does.
      Signed-off-by: NAlberto Garcia <berto@igalia.com>
      Signed-off-by: NKevin Wolf <kwolf@redhat.com>
      655b4b67