Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: b67e353863deec6b7fbbc728773180a8533e9e48
      
https://github.com/qemu/qemu/commit/b67e353863deec6b7fbbc728773180a8533e9e48
  Author: Denis V. Lunev via <[email protected]>
  Date:   2024-06-10 (Mon, 10 Jun 2024)

  Changed paths:
    M block/file-posix.c

  Log Message:
  -----------
  block: drop force_dup parameter of raw_reconfigure_getfd()

Since commit 72373e40fbc, this parameter is always passed as 'false'
from the caller.

Signed-off-by: Denis V. Lunev <[email protected]>
CC: Andrey Zhadchenko <[email protected]>
CC: Kevin Wolf <[email protected]>
CC: Hanna Reitz <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Kevin Wolf <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: 719c6819ed9a9838520fa732f9861918dc693bda
      
https://github.com/qemu/qemu/commit/719c6819ed9a9838520fa732f9861918dc693bda
  Author: Stefan Hajnoczi <[email protected]>
  Date:   2024-06-10 (Mon, 10 Jun 2024)

  Changed paths:
    M qapi/qmp-dispatch.c

  Log Message:
  -----------
  Revert "monitor: use aio_co_reschedule_self()"

Commit 1f25c172f837 ("monitor: use aio_co_reschedule_self()") was a code
cleanup that uses aio_co_reschedule_self() instead of open coding
coroutine rescheduling.

Bug RHEL-34618 was reported and Kevin Wolf <[email protected]> identified
the root cause. I missed that aio_co_reschedule_self() ->
qemu_get_current_aio_context() only knows about
qemu_aio_context/IOThread AioContexts and not about iohandler_ctx. It
does not function correctly when going back from the iohandler_ctx to
qemu_aio_context.

Go back to open coding the AioContext transitions to avoid this bug.

This reverts commit 1f25c172f83704e350c0829438d832384084a74d.

Cc: [email protected]
Buglink: https://issues.redhat.com/browse/RHEL-34618
Signed-off-by: Stefan Hajnoczi <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Kevin Wolf <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: e669e800fc9ef8806af5c5578249ab758a4f8a5a
      
https://github.com/qemu/qemu/commit/e669e800fc9ef8806af5c5578249ab758a4f8a5a
  Author: Stefan Hajnoczi <[email protected]>
  Date:   2024-06-10 (Mon, 10 Jun 2024)

  Changed paths:
    M include/block/aio.h

  Log Message:
  -----------
  aio: warn about iohandler_ctx special casing

The main loop has two AioContexts: qemu_aio_context and iohandler_ctx.
The main loop runs them both, but nested aio_poll() calls on
qemu_aio_context exclude iohandler_ctx.

Which one should qemu_get_current_aio_context() return when called from
the main loop? Document that it's always qemu_aio_context.

This has subtle effects on functions that use
qemu_get_current_aio_context(). For example, aio_co_reschedule_self()
does not work when moving from iohandler_ctx to qemu_aio_context because
qemu_get_current_aio_context() does not differentiate these two
AioContexts.

Document this in order to reduce the chance of future bugs.

Signed-off-by: Stefan Hajnoczi <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Kevin Wolf <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: 365911b182017f05122b88a574477ff945ae91ab
      
https://github.com/qemu/qemu/commit/365911b182017f05122b88a574477ff945ae91ab
  Author: Stefan Hajnoczi <[email protected]>
  Date:   2024-06-10 (Mon, 10 Jun 2024)

  Changed paths:
    M qemu-io-cmds.c

  Log Message:
  -----------
  qemu-io: add cvtnum() error handling for zone commands

cvtnum() parses positive int64_t values and returns a negative errno on
failure. Print errors and return early when cvtnum() fails.

While we're at it, also reject nr_zones values greater or equal to 2^32
since they cannot be represented.

Reported-by: Peter Maydell <[email protected]>
Cc: Sam Li <[email protected]>
Signed-off-by: Stefan Hajnoczi <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Sam Li <[email protected]>
Reviewed-by: Kevin Wolf <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: 10b1e09ed3c40baf9fe074e0c70a7a3b783839ff
      
https://github.com/qemu/qemu/commit/10b1e09ed3c40baf9fe074e0c70a7a3b783839ff
  Author: Fiona Ebner <[email protected]>
  Date:   2024-06-10 (Mon, 10 Jun 2024)

  Changed paths:
    M block/copy-before-write.c

  Log Message:
  -----------
  block/copy-before-write: use uint64_t for timeout in nanoseconds

rather than the uint32_t for which the maximum is slightly more than 4
seconds and larger values would overflow. The QAPI interface allows
specifying the number of seconds, so only values 0 to 4 are safe right
now, other values lead to a much lower timeout than a user expects.

The block_copy() call where this is used already takes a uint64_t for
the timeout, so no change required there.

Fixes: 6db7fd1ca9 ("block/copy-before-write: implement cbw-timeout option")
Reported-by: Friedrich Weber <[email protected]>
Signed-off-by: Fiona Ebner <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Vladimir Sementsov-Ogievskiy <[email protected]>
Reviewed-by: Kevin Wolf <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: 24687abf237e3c15816d689a8e4b08d7c3190dcb
      
https://github.com/qemu/qemu/commit/24687abf237e3c15816d689a8e4b08d7c3190dcb
  Author: Prasad Pandit <[email protected]>
  Date:   2024-06-10 (Mon, 10 Jun 2024)

  Changed paths:
    M block/file-posix.c
    M block/linux-aio.c
    M include/block/raw-aio.h

  Log Message:
  -----------
  linux-aio: add IO_CMD_FDSYNC command support

Libaio defines IO_CMD_FDSYNC command to sync all outstanding
asynchronous I/O operations, by flushing out file data to the
disk storage. Enable linux-aio to submit such aio request.

When using aio=native without fdsync() support, QEMU creates
pthreads, and destroying these pthreads results in TLB flushes.
In a real-time guest environment, TLB flushes cause a latency
spike. This patch helps to avoid such spikes.

Reviewed-by: Stefan Hajnoczi <[email protected]>
Signed-off-by: Prasad Pandit <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Kevin Wolf <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: af206c284e4c1b17cdfb0f17e898b288c0fc1751
      
https://github.com/qemu/qemu/commit/af206c284e4c1b17cdfb0f17e898b288c0fc1751
  Author: Stefan Hajnoczi <[email protected]>
  Date:   2024-06-10 (Mon, 10 Jun 2024)

  Changed paths:
    M crypto/block-luks.c
    M crypto/block-qcow.c
    M crypto/block.c
    M crypto/blockpriv.h

  Log Message:
  -----------
  block/crypto: create ciphers on demand

Ciphers are pre-allocated by qcrypto_block_init_cipher() depending on
the given number of threads. The -device
virtio-blk-pci,iothread-vq-mapping= feature allows users to assign
multiple IOThreads to a virtio-blk device, but the association between
the virtio-blk device and the block driver happens after the block
driver is already open.

When the number of threads given to qcrypto_block_init_cipher() is
smaller than the actual number of threads at runtime, the
block->n_free_ciphers > 0 assertion in qcrypto_block_pop_cipher() can
fail.

Get rid of qcrypto_block_init_cipher() n_thread's argument and allocate
ciphers on demand.

Reported-by: Qing Wang <[email protected]>
Buglink: https://issues.redhat.com/browse/RHEL-36159
Signed-off-by: Stefan Hajnoczi <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Kevin Wolf <[email protected]>
Acked-by: Daniel P. Berrangé <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: 3ab0f063e58ed9224237d69c4211ca83335164c4
      
https://github.com/qemu/qemu/commit/3ab0f063e58ed9224237d69c4211ca83335164c4
  Author: Stefan Hajnoczi <[email protected]>
  Date:   2024-06-10 (Mon, 10 Jun 2024)

  Changed paths:
    M block/crypto.c
    M block/qcow.c
    M block/qcow2.c
    M crypto/block-luks.c
    M crypto/block-qcow.c
    M crypto/block.c
    M crypto/blockpriv.h
    M include/crypto/block.h
    M tests/unit/test-crypto-block.c

  Log Message:
  -----------
  crypto/block: drop qcrypto_block_open() n_threads argument

The n_threads argument is no longer used since the previous commit.
Remove it.

Signed-off-by: Stefan Hajnoczi <[email protected]>
Message-ID: <[email protected]>
Reviewed-by: Kevin Wolf <[email protected]>
Acked-by: Daniel P. Berrangé <[email protected]>
Signed-off-by: Kevin Wolf <[email protected]>


  Commit: 36c1febe3f34ae38db375865b7841165d76cdae4
      
https://github.com/qemu/qemu/commit/36c1febe3f34ae38db375865b7841165d76cdae4
  Author: Richard Henderson <[email protected]>
  Date:   2024-06-12 (Wed, 12 Jun 2024)

  Changed paths:
    M block/copy-before-write.c
    M block/crypto.c
    M block/file-posix.c
    M block/linux-aio.c
    M block/qcow.c
    M block/qcow2.c
    M crypto/block-luks.c
    M crypto/block-qcow.c
    M crypto/block.c
    M crypto/blockpriv.h
    M include/block/aio.h
    M include/block/raw-aio.h
    M include/crypto/block.h
    M qapi/qmp-dispatch.c
    M qemu-io-cmds.c
    M tests/unit/test-crypto-block.c

  Log Message:
  -----------
  Merge tag 'for-upstream' of https://repo.or.cz/qemu/kevin into staging

Block layer patches

- crypto: Fix crash when used with multiqueue devices
- linux-aio: add IO_CMD_FDSYNC command support
- copy-before-write: Avoid integer overflows for timeout > 4s
- Fix crash with QMP block_resize and iothreads
- qemu-io: add cvtnum() error handling for zone commands
- Code cleanup

# -----BEGIN PGP SIGNATURE-----
#
# iQJFBAABCAAvFiEE3D3rFZqa+V09dFb+fwmycsiPL9YFAmZoitoRHGt3b2xmQHJl
# ZGhhdC5jb20ACgkQfwmycsiPL9Z2ng/+KVz0P1M6fjdI0yJSwAla3PVRfB0BjZ+k
# pwoUaHholVB4lmhU8OhtUHgEPK/jIZVdgwfG2se8WHR3eAzEVTWqt5mRIjOVUX4b
# N29G6gTHt8p64YKSbiqnyK2IC7qhY/o3hQ+d8frk+tqstc2tzFHDtjkWtYROdl/X
# iNW6zXy1rz5qIyJ80QWvBs7CfQuvElzK0GN2QusSZDEUJYiLhVS6QfjNmRfJI5yT
# /eDoHAjMJycxy+8YpEj1QEdEcFV7dS0BCr6qeWeAg50Gej1xlDeknejG+Cro2A1z
# MJu4blqMhzzjG9YIS90wCDOxXYdifa1VQSIpV6zpU1ExToXFOVtF3h06Hu0aHiBu
# hU4UnTsQSLmlQXbSbFwlVgRdGfAxvIxp6EuWtPteSAfnxAlxoQbqnV6uN/RsFnsr
# R+zSiNx+20IDj4befzcQWNWpWNnTloRR01/iucncEpZZEu0/E58Y4bFAWBexMOhz
# MgYTXTVgR+WPuyR8FXyXX32dQBQMb5grSnseXwOBhi3ULrMqjLinR60B+XbWgy/g
# mE/oLc+uttAk1EbHH/8od8vjvtDHdl9FrfsPaPDlJTiexqNZHxiDE3WVdhvaPsTF
# wJ0CB7pdvrWIAVwmSpfksVoyL2HQx2ILjGSQbKPvYEZqSoUMr7+7Z0SkTQ1i706b
# xODS2wm+h0Q=
# =hMLb
# -----END PGP SIGNATURE-----
# gpg: Signature made Tue 11 Jun 2024 10:35:22 AM PDT
# gpg:                using RSA key DC3DEB159A9AF95D3D7456FE7F09B272C88F2FD6
# gpg:                issuer "[email protected]"
# gpg: Good signature from "Kevin Wolf <[email protected]>" [full]

* tag 'for-upstream' of https://repo.or.cz/qemu/kevin:
  crypto/block: drop qcrypto_block_open() n_threads argument
  block/crypto: create ciphers on demand
  linux-aio: add IO_CMD_FDSYNC command support
  block/copy-before-write: use uint64_t for timeout in nanoseconds
  qemu-io: add cvtnum() error handling for zone commands
  aio: warn about iohandler_ctx special casing
  Revert "monitor: use aio_co_reschedule_self()"
  block: drop force_dup parameter of raw_reconfigure_getfd()

Signed-off-by: Richard Henderson <[email protected]>


Compare: https://github.com/qemu/qemu/compare/f3e8cc47de2b...36c1febe3f34

To unsubscribe from these emails, change your notification settings at 
https://github.com/qemu/qemu/settings/notifications

Reply via email to