1. 10 9月, 2019 7 次提交
  2. 09 9月, 2019 1 次提交
    • P
      Merge remote-tracking branch 'remotes/huth-gitlab/tags/m68k-pull-2019-09-07' into staging · 89ea03a7
      Peter Maydell 提交于
      Add the m68k next-cube machine
      
      # gpg: Signature made Sat 07 Sep 2019 16:32:53 BST
      # gpg:                using RSA key 27B88847EEE0250118F3EAB92ED9D774FE702DB5
      # gpg:                issuer "huth@tuxfamily.org"
      # gpg: Good signature from "Thomas Huth <th.huth@gmx.de>" [full]
      # gpg:                 aka "Thomas Huth <thuth@redhat.com>" [full]
      # gpg:                 aka "Thomas Huth <huth@tuxfamily.org>" [full]
      # gpg:                 aka "Thomas Huth <th.huth@posteo.de>" [unknown]
      # Primary key fingerprint: 27B8 8847 EEE0 2501 18F3  EAB9 2ED9 D774 FE70 2DB5
      
      * remotes/huth-gitlab/tags/m68k-pull-2019-09-07:
        .travis.yml: Let the avocado job run the NeXTcube tests
        tests/acceptance: Add test of NeXTcube framebuffer using OCR
        m68k: Add an entry for the NeXTcube machine to the MAINTAINERS file
        m68k: Add serial controller to the NeXTcube machine
        escc: introduce a selector for the register bit
        m68k: Add NeXTcube machine
        m68k: Add NeXTcube keyboard device
        m68k: Add NeXTcube framebuffer device emulation
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      89ea03a7
  3. 07 9月, 2019 8 次提交
  4. 06 9月, 2019 11 次提交
    • P
      Merge remote-tracking branch 'remotes/ericb/tags/pull-nbd-2019-09-05-v2' into staging · 019217c3
      Peter Maydell 提交于
      nbd patches for 2019-09-05
      
      - Advertise NBD_FLAG_CAN_MULTI_CONN on readonly images
      - Tolerate larger set of server error responses during handshake
      - More precision on handling fallocate() failures due to alignment
      - Better documentation of NBD connection URIs
      - Implement new extension NBD_CMD_FLAG_FAST_ZERO to benefit qemu-img convert
      
      # gpg: Signature made Thu 05 Sep 2019 22:08:17 BST
      # gpg:                using RSA key 71C2CC22B1C4602927D2F3AAA7A16B4A2527436A
      # gpg: Good signature from "Eric Blake <eblake@redhat.com>" [full]
      # gpg:                 aka "Eric Blake (Free Software Programmer) <ebb9@byu.net>" [full]
      # gpg:                 aka "[jpeg image of size 6874]" [full]
      # Primary key fingerprint: 71C2 CC22 B1C4 6029 27D2  F3AA A7A1 6B4A 2527 436A
      
      * remotes/ericb/tags/pull-nbd-2019-09-05-v2:
        nbd: Implement server use of NBD FAST_ZERO
        nbd: Implement client use of NBD FAST_ZERO
        nbd: Prepare for NBD_CMD_FLAG_FAST_ZERO
        nbd: Improve per-export flag handling in server
        docs: Update preferred NBD device syntax
        block: workaround for unaligned byte range in fallocate()
        nbd: Tolerate more errors to structured reply request
        nbd: Use g_autofree in a few places
        nbd: Advertise multi-conn for shared read-only connections
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      019217c3
    • E
      nbd: Implement server use of NBD FAST_ZERO · b491dbb7
      Eric Blake 提交于
      The server side is fairly straightforward: we can always advertise
      support for detection of fast zero, and implement it by mapping the
      request to the block layer BDRV_REQ_NO_FALLBACK.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      Message-Id: <20190823143726.27062-5-eblake@redhat.com>
      Reviewed-by: NVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
      [eblake: update iotests 223, 233]
      b491dbb7
    • E
      nbd: Implement client use of NBD FAST_ZERO · f061656c
      Eric Blake 提交于
      The client side is fairly straightforward: if the server advertised
      fast zero support, then we can map that to BDRV_REQ_NO_FALLBACK
      support.  A server that advertises FAST_ZERO but not WRITE_ZEROES
      is technically broken, but we can ignore that situation as it does
      not change our behavior.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      Message-Id: <20190823143726.27062-4-eblake@redhat.com>
      Reviewed-by: NVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
      f061656c
    • E
      nbd: Prepare for NBD_CMD_FLAG_FAST_ZERO · 0a479545
      Eric Blake 提交于
      Commit fe0480d6 and friends added BDRV_REQ_NO_FALLBACK as a way to
      avoid wasting time on a preliminary write-zero request that will later
      be rewritten by actual data, if it is known that the write-zero
      request will use a slow fallback; but in doing so, could not optimize
      for NBD.  The NBD specification is now considering an extension that
      will allow passing on those semantics; this patch updates the new
      protocol bits and 'qemu-nbd --list' output to recognize the bit, as
      well as the new errno value possible when using the new flag; while
      upcoming patches will improve the client to use the feature when
      present, and the server to advertise support for it.
      
      The NBD spec recommends (but not requires) that ENOTSUP be avoided for
      all but failures of a fast zero (the only time it is mandatory to
      avoid an ENOTSUP failure is when fast zero is supported but not
      requested during write zeroes; the questionable use is for ENOTSUP to
      other actions like a normal write request).  However, clients that get
      an unexpected ENOTSUP will either already be treating it the same as
      EINVAL, or may appreciate the extra bit of information.  We were
      equally loose for returning EOVERFLOW in more situations than
      recommended by the spec, so if it turns out to be a problem in
      practice, a later patch can tighten handling for both error codes.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      Message-Id: <20190823143726.27062-3-eblake@redhat.com>
      Reviewed-by: NVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
      [eblake: tweak commit message, also handle EOPNOTSUPP]
      0a479545
    • E
      nbd: Improve per-export flag handling in server · dbb38caa
      Eric Blake 提交于
      When creating a read-only image, we are still advertising support for
      TRIM and WRITE_ZEROES to the client, even though the client should not
      be issuing those commands.  But seeing this requires looking across
      multiple functions:
      
      All callers to nbd_export_new() passed a single flag based solely on
      whether the export allows writes.  Later, we then pass a constant set
      of flags to nbd_negotiate_options() (namely, the set of flags which we
      always support, at least for writable images), which is then further
      dynamically modified with NBD_FLAG_SEND_DF based on client requests
      for structured options.  Finally, when processing NBD_OPT_EXPORT_NAME
      or NBD_OPT_EXPORT_GO we bitwise-or the original caller's flag with the
      runtime set of flags we've built up over several functions.
      
      Let's refactor things to instead compute a baseline of flags as soon
      as possible which gets shared between multiple clients, in
      nbd_export_new(), and changing the signature for the callers to pass
      in a simpler bool rather than having to figure out flags.  We can then
      get rid of the 'myflags' parameter to various functions, and instead
      refer to client for everything we need (we still have to perform a
      bitwise-OR for NBD_FLAG_SEND_DF during NBD_OPT_EXPORT_NAME and
      NBD_OPT_EXPORT_GO, but it's easier to see what is being computed).
      This lets us quit advertising senseless flags for read-only images, as
      well as making the next patch for exposing FAST_ZERO support easier to
      write.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      Message-Id: <20190823143726.27062-2-eblake@redhat.com>
      Reviewed-by: NVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
      [eblake: improve commit message, update iotest 223]
      dbb38caa
    • E
      docs: Update preferred NBD device syntax · 0c61ebb0
      Eric Blake 提交于
      Mention the preferred URI form, especially since NBD is trying to
      standardize that form: https://lists.debian.org/nbd/2019/06/msg00012.htmlSigned-off-by: NEric Blake <eblake@redhat.com>
      Message-Id: <20190903145634.20237-1-eblake@redhat.com>
      Reviewed-by: NJohn Snow <jsnow@redhat.com>
      0c61ebb0
    • A
      block: workaround for unaligned byte range in fallocate() · 294682cc
      Andrey Shinkevich 提交于
      Revert the commit 118f9944 'block/io.c: fix for the allocation failure'
      and use better error handling for file systems that do not support
      fallocate() for an unaligned byte range. Allow falling back to pwrite
      in case fallocate() returns EINVAL.
      Suggested-by: NKevin Wolf <kwolf@redhat.com>
      Suggested-by: NEric Blake <eblake@redhat.com>
      Signed-off-by: NAndrey Shinkevich <andrey.shinkevich@virtuozzo.com>
      Reviewed-by: NEric Blake <eblake@redhat.com>
      Reviewed-by: NDenis V. Lunev <den@openvz.org>
      Message-Id: <1566913973-15490-1-git-send-email-andrey.shinkevich@virtuozzo.com>
      Signed-off-by: NEric Blake <eblake@redhat.com>
      294682cc
    • E
      nbd: Tolerate more errors to structured reply request · 5de47735
      Eric Blake 提交于
      A server may have a reason to reject a request for structured replies,
      beyond just not recognizing them as a valid request; similarly, it may
      have a reason for rejecting a request for a meta context.  It doesn't
      hurt us to continue talking to such a server; otherwise 'qemu-nbd
      --list' of such a server fails to display all available details about
      the export.
      
      Encountered when temporarily tweaking nbdkit to reply with
      NBD_REP_ERR_POLICY.  Present since structured reply support was first
      added (commit d795299b reused starttls handling, but starttls is
      different in that we can't fall back to other behavior on any error).
      
      Note that for an unencrypted client trying to connect to a server that
      requires encryption, this defers the point of failure to when we
      finally execute a strict command (such as NBD_OPT_GO or NBD_OPT_LIST),
      now that the intermediate NBD_OPT_STRUCTURED_REPLY does not diagnose
      NBD_REP_ERR_TLS_REQD as fatal; but as the protocol eventually gets us
      to a command where we can't continue onwards, the changed error
      message doesn't cause any security concerns.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      Message-Id: <20190824172813.29720-3-eblake@redhat.com>
      Reviewed-by: NDaniel P. Berrangé <berrange@redhat.com>
      [eblake: fix iotest 233]
      5de47735
    • E
      nbd: Use g_autofree in a few places · df18c04e
      Eric Blake 提交于
      Thanks to our recent move to use glib's g_autofree, I can join the
      bandwagon.  Getting rid of gotos is fun ;)
      
      There are probably more places where we could register cleanup
      functions and get rid of more gotos; this patch just focuses on the
      labels that existed merely to call g_free.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      Message-Id: <20190824172813.29720-2-eblake@redhat.com>
      Reviewed-by: NDaniel P. Berrangé <berrange@redhat.com>
      Reviewed-by: NVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
      df18c04e
    • E
      nbd: Advertise multi-conn for shared read-only connections · 61cc8724
      Eric Blake 提交于
      The NBD specification defines NBD_FLAG_CAN_MULTI_CONN, which can be
      advertised when the server promises cache consistency between
      simultaneous clients (basically, rules that determine what FUA and
      flush from one client are able to guarantee for reads from another
      client).  When we don't permit simultaneous clients (such as qemu-nbd
      without -e), the bit makes no sense; and for writable images, we
      probably have a lot more work before we can declare that actions from
      one client are cache-consistent with actions from another.  But for
      read-only images, where flush isn't changing any data, we might as
      well advertise multi-conn support.  What's more, advertisement of the
      bit makes it easier for clients to determine if 'qemu-nbd -e' was in
      use, where a second connection will succeed rather than hang until the
      first client goes away.
      
      This patch affects qemu as server in advertising the bit.  We may want
      to consider patches to qemu as client to attempt parallel connections
      for higher throughput by spreading the load over those connections
      when a server advertises multi-conn, but for now sticking to one
      connection per nbd:// BDS is okay.
      
      See also: https://bugzilla.redhat.com/1708300Signed-off-by: NEric Blake <eblake@redhat.com>
      Message-Id: <20190815185024.7010-1-eblake@redhat.com>
      [eblake: tweak blockdev-nbd.c to not request shared when writable,
      fix iotest 233]
      Reviewed-by: NJohn Snow <jsnow@redhat.com>
      61cc8724
    • P
      Merge remote-tracking branch 'remotes/huth-gitlab/tags/pull-request-2019-09-05-v2' into staging · 90b1e3af
      Peter Maydell 提交于
      - Make the core libqtest library independent from global_qtest
      - Clean up docs from hard-coded qemu-system-* names
      - Install libattr-dev and libcap-dev in gitlab-ci to test virtio-9p
      
      # gpg: Signature made Thu 05 Sep 2019 15:52:30 BST
      # gpg:                using RSA key 27B88847EEE0250118F3EAB92ED9D774FE702DB5
      # gpg:                issuer "thuth@redhat.com"
      # gpg: Good signature from "Thomas Huth <th.huth@gmx.de>" [full]
      # gpg:                 aka "Thomas Huth <thuth@redhat.com>" [full]
      # gpg:                 aka "Thomas Huth <huth@tuxfamily.org>" [full]
      # gpg:                 aka "Thomas Huth <th.huth@posteo.de>" [unknown]
      # Primary key fingerprint: 27B8 8847 EEE0 2501 18F3  EAB9 2ED9 D774 FE70 2DB5
      
      * remotes/huth-gitlab/tags/pull-request-2019-09-05-v2:
        gitlab-ci.yml: Install libattr-devel and libcap-devel to test virtio-9p
        qemu-doc: Do not hard-code the name of the QEMU binary
        tests/vm: Take the J=x setting into account for the vm-boot-ssh targets, too
        tests/libqtest: Use libqtest-single.h in tests that require global_qtest
        tests/libqtest: Move global_test wrapper function into a separate header
        tests: Remove unnecessary global_qtest references
        tests/libqos: Replace clock_step with qtest_clock_step in virtio code
        tests/libqos/e1000e: Make e1000e libqos functions independent from global_qtest
        tests/migration: Do not use functions anymore that rely on global_qtest
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      90b1e3af
  5. 05 9月, 2019 13 次提交