qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] c53cb4: block: eliminate BDRV_REQ_NO_SERIALIS


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] c53cb4: block: eliminate BDRV_REQ_NO_SERIALISING
Date: Fri, 31 Jan 2020 03:45:12 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: c53cb427695214a9cb53e8ace4307c91a6b6e406
      
https://github.com/qemu/qemu/commit/c53cb427695214a9cb53e8ace4307c91a6b6e406
  Author: Paolo Bonzini <address@hidden>
  Date:   2020-01-30 (Thu, 30 Jan 2020)

  Changed paths:
    M block/io.c
    M include/block/block.h

  Log Message:
  -----------
  block: eliminate BDRV_REQ_NO_SERIALISING

It is unused since commit 00e30f0 ("block/backup: use backup-top instead
of write notifiers", 2019-10-01), drop it to simplify the code.

While at it, drop redundant assertions on flags.

Signed-off-by: Paolo Bonzini <address@hidden>
Message-id: address@hidden
Message-Id: <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 18fbd0dec7e05183d7fef636155cd9b3e2ac5013
      
https://github.com/qemu/qemu/commit/18fbd0dec7e05183d7fef636155cd9b3e2ac5013
  Author: Paolo Bonzini <address@hidden>
  Date:   2020-01-30 (Thu, 30 Jan 2020)

  Changed paths:
    M block/file-posix.c
    M block/io.c
    M include/block/block_int.h

  Log Message:
  -----------
  block/io: wait for serialising requests when a request becomes serialising

Marking without waiting would not result in actual serialising behavior.
Thus, make a call bdrv_mark_request_serialising sufficient for
serialisation to happen.

Signed-off-by: Paolo Bonzini <address@hidden>
Message-id: address@hidden
Message-Id: <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 3ba0e1a00cf3c09bfa3980ce98439dc73707039d
      
https://github.com/qemu/qemu/commit/3ba0e1a00cf3c09bfa3980ce98439dc73707039d
  Author: Paolo Bonzini <address@hidden>
  Date:   2020-01-30 (Thu, 30 Jan 2020)

  Changed paths:
    M block/io.c

  Log Message:
  -----------
  block/io: take bs->reqs_lock in bdrv_mark_request_serialising

bdrv_mark_request_serialising is writing the overlap_offset and
overlap_bytes fields of BdrvTrackedRequest.  Take bs->reqs_lock
for the whole duration of it, and not just when waiting for
serialising requests, so that tracked_request_overlaps does not
look at a half-updated request.

The new code does not unlock/relock around retries.  This is unnecessary
because a retry is always preceded by a CoQueue wait, which already
releases and reacquires bs->reqs_lock.

Reported-by: Peter Lieven <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Message-id: address@hidden
Message-Id: <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: c10dd8565defdb14695580c9369b20f4544e65a2
      
https://github.com/qemu/qemu/commit/c10dd8565defdb14695580c9369b20f4544e65a2
  Author: Aarushi Mehta <address@hidden>
  Date:   2020-01-30 (Thu, 30 Jan 2020)

  Changed paths:
    M configure

  Log Message:
  -----------
  configure: permit use of io_uring

Signed-off-by: Aarushi Mehta <address@hidden>
Reviewed-by: Maxim Levitsky <address@hidden>
Acked-by: Stefano Garzarella <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Message-Id: <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: f14beaecaf019b60a890d3c5439619fa0c5d59ce
      
https://github.com/qemu/qemu/commit/f14beaecaf019b60a890d3c5439619fa0c5d59ce
  Author: Aarushi Mehta <address@hidden>
  Date:   2020-01-30 (Thu, 30 Jan 2020)

  Changed paths:
    M qapi/block-core.json

  Log Message:
  -----------
  qapi/block-core: add option for io_uring

Since io_uring is the actual name of the Linux API, we use it as enum
value even though the QAPI schema conventions would prefer io-uring.

Signed-off-by: Aarushi Mehta <address@hidden>
Acked-by: Markus Armbruster <address@hidden>
Acked-by: Stefano Garzarella <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Message-Id: <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 4c34ee366dbd0cf586827c3af505c2084541aa57
      
https://github.com/qemu/qemu/commit/4c34ee366dbd0cf586827c3af505c2084541aa57
  Author: Aarushi Mehta <address@hidden>
  Date:   2020-01-30 (Thu, 30 Jan 2020)

  Changed paths:
    M include/block/block.h

  Log Message:
  -----------
  block/block: add BDRV flag for io_uring

Signed-off-by: Aarushi Mehta <address@hidden>
Reviewed-by: Maxim Levitsky <address@hidden>
Acked-by: Stefano Garzarella <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Message-Id: <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 6663a0a33764613bfa0bcac5cc7a6f14bd04ee34
      
https://github.com/qemu/qemu/commit/6663a0a33764613bfa0bcac5cc7a6f14bd04ee34
  Author: Aarushi Mehta <address@hidden>
  Date:   2020-01-30 (Thu, 30 Jan 2020)

  Changed paths:
    M MAINTAINERS
    M block/Makefile.objs
    A block/io_uring.c
    M include/block/aio.h
    M include/block/raw-aio.h

  Log Message:
  -----------
  block/io_uring: implements interfaces for io_uring

Aborts when sqe fails to be set as sqes cannot be returned to the
ring. Adds slow path for short reads for older kernels

Signed-off-by: Aarushi Mehta <address@hidden>
Acked-by: Stefano Garzarella <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Message-Id: <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 06a47ef57c3baa9b06006cd424afe89bbaf162b5
      
https://github.com/qemu/qemu/commit/06a47ef57c3baa9b06006cd424afe89bbaf162b5
  Author: Aarushi Mehta <address@hidden>
  Date:   2020-01-30 (Thu, 30 Jan 2020)

  Changed paths:
    M MAINTAINERS
    M stubs/Makefile.objs
    A stubs/io_uring.c

  Log Message:
  -----------
  stubs: add stubs for io_uring interface

Follow linux-aio.o and stub out the block/io_uring.o APIs that will be
missing when a binary is linked with obj-util-y but without
block-util-y (e.g. vhost-user-gpu).

For example, the stubs are necessary so that a binary using util/async.o
from obj-util-y for qemu_bh_new() links successfully.  In this case
block/io_uring.o from block-util-y isn't needed and we can avoid
dragging in the block layer by linking the stubs instead.  The stub
functions never get called.

Signed-off-by: Aarushi Mehta <address@hidden>
Acked-by: Stefano Garzarella <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Message-Id: <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: fcb7a4a4e8ae8938e86a669dd9c276ee98aa4203
      
https://github.com/qemu/qemu/commit/fcb7a4a4e8ae8938e86a669dd9c276ee98aa4203
  Author: Aarushi Mehta <address@hidden>
  Date:   2020-01-30 (Thu, 30 Jan 2020)

  Changed paths:
    M util/async.c

  Log Message:
  -----------
  util/async: add aio interfaces for io_uring

Signed-off-by: Aarushi Mehta <address@hidden>
Acked-by: Stefano Garzarella <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Message-Id: <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: f80f267373fd3170584da9d229ac07d4f26b7e16
      
https://github.com/qemu/qemu/commit/f80f267373fd3170584da9d229ac07d4f26b7e16
  Author: Aarushi Mehta <address@hidden>
  Date:   2020-01-30 (Thu, 30 Jan 2020)

  Changed paths:
    M block.c
    M blockdev.c
    M include/block/block.h

  Log Message:
  -----------
  blockdev: adds bdrv_parse_aio to use io_uring

Signed-off-by: Aarushi Mehta <address@hidden>
Acked-by: Stefano Garzarella <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Message-Id: <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: c64475106909b7f53c31949657e6909b856e0ad4
      
https://github.com/qemu/qemu/commit/c64475106909b7f53c31949657e6909b856e0ad4
  Author: Aarushi Mehta <address@hidden>
  Date:   2020-01-30 (Thu, 30 Jan 2020)

  Changed paths:
    M block/file-posix.c

  Log Message:
  -----------
  block/file-posix.c: extend to use io_uring

Signed-off-by: Aarushi Mehta <address@hidden>
Reviewed-by: Maxim Levitsky <address@hidden>
Acked-by: Stefano Garzarella <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Message-Id: <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: d803f59050847c5dfddc84298cb3b64042921c47
      
https://github.com/qemu/qemu/commit/d803f59050847c5dfddc84298cb3b64042921c47
  Author: Aarushi Mehta <address@hidden>
  Date:   2020-01-30 (Thu, 30 Jan 2020)

  Changed paths:
    M block/io_uring.c
    M block/trace-events

  Log Message:
  -----------
  block: add trace events for io_uring

Signed-off-by: Aarushi Mehta <address@hidden>
Acked-by: Stefano Garzarella <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Message-Id: <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: daffeb027b9396b2e60842649e8f141e465e1d19
      
https://github.com/qemu/qemu/commit/daffeb027b9396b2e60842649e8f141e465e1d19
  Author: Aarushi Mehta <address@hidden>
  Date:   2020-01-30 (Thu, 30 Jan 2020)

  Changed paths:
    M block/io_uring.c

  Log Message:
  -----------
  block/io_uring: adds userspace completion polling

Signed-off-by: Aarushi Mehta <address@hidden>
Acked-by: Stefano Garzarella <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Message-Id: <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 1c5a2aecead5c914d9880c8d9b01ec8d43c8f73e
      
https://github.com/qemu/qemu/commit/1c5a2aecead5c914d9880c8d9b01ec8d43c8f73e
  Author: Aarushi Mehta <address@hidden>
  Date:   2020-01-30 (Thu, 30 Jan 2020)

  Changed paths:
    M qemu-io.c

  Log Message:
  -----------
  qemu-io: adds option to use aio engine

Signed-off-by: Aarushi Mehta <address@hidden>
Acked-by: Stefano Garzarella <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Message-Id: <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: cdd267749a3ab787e8b03f1971d1c7c147c8a47c
      
https://github.com/qemu/qemu/commit/cdd267749a3ab787e8b03f1971d1c7c147c8a47c
  Author: Aarushi Mehta <address@hidden>
  Date:   2020-01-30 (Thu, 30 Jan 2020)

  Changed paths:
    M qemu-img-cmds.hx
    M qemu-img.c
    M qemu-img.texi

  Log Message:
  -----------
  qemu-img: adds option to use aio engine for benchmarking

Signed-off-by: Aarushi Mehta <address@hidden>
Acked-by: Stefano Garzarella <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Message-Id: <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 7680274da1357c559373c2e14e13f3a5bf4fa100
      
https://github.com/qemu/qemu/commit/7680274da1357c559373c2e14e13f3a5bf4fa100
  Author: Aarushi Mehta <address@hidden>
  Date:   2020-01-30 (Thu, 30 Jan 2020)

  Changed paths:
    M docs/interop/qemu-nbd.rst
    M qemu-nbd.c

  Log Message:
  -----------
  qemu-nbd: adds option for aio engines

Signed-off-by: Aarushi Mehta <address@hidden>
Acked-by: Eric Blake <address@hidden>
Acked-by: Stefano Garzarella <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Message-Id: <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 7156ca4888fae02ced9dd83342d06ded0de420c6
      
https://github.com/qemu/qemu/commit/7156ca4888fae02ced9dd83342d06ded0de420c6
  Author: Aarushi Mehta <address@hidden>
  Date:   2020-01-30 (Thu, 30 Jan 2020)

  Changed paths:
    M tests/qemu-iotests/check
    M tests/qemu-iotests/common.rc
    M tests/qemu-iotests/iotests.py

  Log Message:
  -----------
  tests/qemu-iotests: enable testing with aio options

Signed-off-by: Aarushi Mehta <address@hidden>
Acked-by: Stefano Garzarella <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Message-Id: <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 8dff69b9415b4287e900358744b732195e1ab2e2
      
https://github.com/qemu/qemu/commit/8dff69b9415b4287e900358744b732195e1ab2e2
  Author: Aarushi Mehta <address@hidden>
  Date:   2020-01-30 (Thu, 30 Jan 2020)

  Changed paths:
    M tests/qemu-iotests/028
    M tests/qemu-iotests/058
    M tests/qemu-iotests/089
    M tests/qemu-iotests/091
    M tests/qemu-iotests/109
    M tests/qemu-iotests/147
    M tests/qemu-iotests/181
    M tests/qemu-iotests/183
    M tests/qemu-iotests/185
    M tests/qemu-iotests/200
    M tests/qemu-iotests/201

  Log Message:
  -----------
  tests/qemu-iotests: use AIOMODE with various tests

Signed-off-by: Aarushi Mehta <address@hidden>
Acked-by: Stefano Garzarella <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Message-Id: <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: adcd6e93b9519f7fe421d543e3aa646895b32e1a
      
https://github.com/qemu/qemu/commit/adcd6e93b9519f7fe421d543e3aa646895b32e1a
  Author: Peter Maydell <address@hidden>
  Date:   2020-01-31 (Fri, 31 Jan 2020)

  Changed paths:
    M MAINTAINERS
    M block.c
    M block/Makefile.objs
    M block/file-posix.c
    M block/io.c
    A block/io_uring.c
    M block/trace-events
    M blockdev.c
    M configure
    M docs/interop/qemu-nbd.rst
    M include/block/aio.h
    M include/block/block.h
    M include/block/block_int.h
    M include/block/raw-aio.h
    M qapi/block-core.json
    M qemu-img-cmds.hx
    M qemu-img.c
    M qemu-img.texi
    M qemu-io.c
    M qemu-nbd.c
    M stubs/Makefile.objs
    A stubs/io_uring.c
    M tests/qemu-iotests/028
    M tests/qemu-iotests/058
    M tests/qemu-iotests/089
    M tests/qemu-iotests/091
    M tests/qemu-iotests/109
    M tests/qemu-iotests/147
    M tests/qemu-iotests/181
    M tests/qemu-iotests/183
    M tests/qemu-iotests/185
    M tests/qemu-iotests/200
    M tests/qemu-iotests/201
    M tests/qemu-iotests/check
    M tests/qemu-iotests/common.rc
    M tests/qemu-iotests/iotests.py
    M util/async.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into 
staging

Pull request

# gpg: Signature made Thu 30 Jan 2020 21:31:02 GMT
# gpg:                using RSA key 8695A8BFD3F97CDAAC35775A9CA4ABB381AB73C8
# gpg: Good signature from "Stefan Hajnoczi <address@hidden>" [full]
# gpg:                 aka "Stefan Hajnoczi <address@hidden>" [full]
# Primary key fingerprint: 8695 A8BF D3F9 7CDA AC35  775A 9CA4 ABB3 81AB 73C8

* remotes/stefanha/tags/block-pull-request:
  tests/qemu-iotests: use AIOMODE with various tests
  tests/qemu-iotests: enable testing with aio options
  qemu-nbd: adds option for aio engines
  qemu-img: adds option to use aio engine for benchmarking
  qemu-io: adds option to use aio engine
  block/io_uring: adds userspace completion polling
  block: add trace events for io_uring
  block/file-posix.c: extend to use io_uring
  blockdev: adds bdrv_parse_aio to use io_uring
  util/async: add aio interfaces for io_uring
  stubs: add stubs for io_uring interface
  block/io_uring: implements interfaces for io_uring
  block/block: add BDRV flag for io_uring
  qapi/block-core: add option for io_uring
  configure: permit use of io_uring
  block/io: take bs->reqs_lock in bdrv_mark_request_serialising
  block/io: wait for serialising requests when a request becomes serialising
  block: eliminate BDRV_REQ_NO_SERIALISING

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


Compare: https://github.com/qemu/qemu/compare/928173659d6e...adcd6e93b951



reply via email to

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