qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 48d9ca: block: remove format defaults from Qe


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 48d9ca: block: remove format defaults from QemuOpts in bdr...
Date: Tue, 16 Mar 2021 05:37:27 -0700

  Branch: refs/heads/staging
  Home:   https://github.com/qemu/qemu
  Commit: 48d9ca2860491288e248724b68348a6b627dfa97
      
https://github.com/qemu/qemu/commit/48d9ca2860491288e248724b68348a6b627dfa97
  Author: Stefano Garzarella <sgarzare@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: remove format defaults from QemuOpts in bdrv_create_file()

QemuOpts is usually created merging the QemuOptsList of format
and protocol. So, when the format calls bdr_create_file(), the 'opts'
parameter contains a QemuOptsList with a combination of format and
protocol default values.

The format properly removes its options before calling
bdr_create_file(), but the default values remain in 'opts->list'.
So if the protocol has options with the same name (e.g. rbd has
'cluster_size' as qcow2), it will see the default values of the format,
since for overlapping options, the format wins.

To avoid this issue, lets convert QemuOpts to QDict, in this way we take
only the set options, and then convert it back to QemuOpts, using the
'create_opts' of the protocol. So the new QemuOpts, will contain only the
protocol defaults.

Suggested-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Message-Id: <20210308161232.248833-1-sgarzare@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 0eaa23947e4c5dca8547cc3c869bc4b92044cab2
      
https://github.com/qemu/qemu/commit/0eaa23947e4c5dca8547cc3c869bc4b92044cab2
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M storage-daemon/qemu-storage-daemon.c
    A tests/qemu-iotests/tests/qsd-jobs
    A tests/qemu-iotests/tests/qsd-jobs.out

  Log Message:
  -----------
  storage-daemon: Call job_cancel_sync_all() on shutdown

bdrv_close_all() asserts that no jobs are running any more, so we need
to cancel all jobs first to avoid failing the assertion.

Fixes: b55a3c8860b763b62b2cc2f4a6f55379977bbde5
Reported-by: Nini Gu <ngu@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20210309121814.31078-1-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 9fe401a0a1245a0fbe8173524ea0089b1df65c16
      
https://github.com/qemu/qemu/commit/9fe401a0a1245a0fbe8173524ea0089b1df65c16
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M block/stream.c
    M tests/qemu-iotests/tests/qsd-jobs
    M tests/qemu-iotests/tests/qsd-jobs.out

  Log Message:
  -----------
  stream: Don't crash when node permission is denied

The image streaming block job restricts shared permissions of the nodes
it accesses. This can obviously fail when other users already got these
permissions. &error_abort is therefore wrong and can crash. Handle these
errors gracefully and just fail starting the block job.

Reported-by: Nini Gu <ngu@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20210309173451.45152-1-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Alberto Garcia <berto@igalia.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 6eab3b20221be5249416197a999205bfddb8df0a
      
https://github.com/qemu/qemu/commit/6eab3b20221be5249416197a999205bfddb8df0a
  Author: Max Reitz <mreitz@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M block/curl.c

  Log Message:
  -----------
  curl: Store BDRVCURLState pointer in CURLSocket

A socket does not really belong to any specific state.  We do not need
to store a pointer to "its" state in it, a pointer to the common
BDRVCURLState is sufficient.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210309130541.37540-2-mreitz@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 209fd3e8d92a3bd23ff10e19be0eed80a23a9ce1
      
https://github.com/qemu/qemu/commit/209fd3e8d92a3bd23ff10e19be0eed80a23a9ce1
  Author: Max Reitz <mreitz@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M block/curl.c

  Log Message:
  -----------
  curl: Disconnect sockets from CURLState

When a curl transfer is finished, that does not mean that CURL lets go
of all the sockets it used for it.  We therefore must not free a
CURLSocket object before CURL has invoked curl_sock_cb() to tell us to
remove it.  Otherwise, we may get a use-after-free, as described in this
bug report: https://bugs.launchpad.net/qemu/+bug/1916501

(Reproducer from that report:
  $ qemu-img convert -f qcow2 -O raw \
  https://download.cirros-cloud.net/0.4.0/cirros-0.4.0-x86_64-disk.img \
  out.img
)

(Alternatively, it might seem logical to force-drop all sockets that
have been used for a state when the respective transfer is done, kind of
like it is done now, but including unsetting the AIO handlers.
Unfortunately, doing so makes the driver just hang instead of crashing,
which seems to evidence that CURL still uses those sockets.)

Make the CURLSocket object independent of "its" CURLState by putting all
sockets into a hash table belonging to the BDRVCURLState instead of a
list that belongs to a CURLState.  Do not touch any sockets in
curl_clean_state().

Testing, it seems like all sockets are indeed gone by the time the curl
BDS is closed, so it seems like there really was no point in freeing any
socket just because a transfer is done.  libcurl does invoke
curl_sock_cb() with CURL_POLL_REMOVE for every socket it has.

Buglink: https://bugs.launchpad.net/qemu/+bug/1916501
Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-Id: <20210309130541.37540-3-mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: b1cc869b1abd67a46823663a7caef80e805c7f90
      
https://github.com/qemu/qemu/commit/b1cc869b1abd67a46823663a7caef80e805c7f90
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M block/export/vhost-user-blk-server.c

  Log Message:
  -----------
  block/export: disable VHOST_USER_PROTOCOL_F_INFLIGHT_SHMFD for now

The vhost-user in-flight shmfd feature has not been tested with
qemu-storage-daemon's vhost-user-blk server. Disable this optional
feature for now because it requires MFD_ALLOW_SEALING, which is not
available in some CI environments.

If we need this feature in the future it can be re-enabled after
testing.

Reported-by: Peter Maydell <peter.maydell@linaro.org>
Cc: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20210309094106.196911-2-stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 39130ebe43144af7a6e6dea0e28ebbba043a1052
      
https://github.com/qemu/qemu/commit/39130ebe43144af7a6e6dea0e28ebbba043a1052
  Author: Coiby Xu <coiby.xu@gmail.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M MAINTAINERS
    M tests/qtest/libqos/meson.build
    A tests/qtest/libqos/vhost-user-blk.c
    A tests/qtest/libqos/vhost-user-blk.h
    M tests/qtest/meson.build
    A tests/qtest/vhost-user-blk-test.c

  Log Message:
  -----------
  test: new qTest case to test the vhost-user-blk-server

This test case has the same tests as tests/virtio-blk-test.c except for
tests have block_resize. Since the vhost-user-blk export only serves one
client one time, two exports are started by qemu-storage-daemon for the
hotplug test.

Suggested-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Coiby Xu <coiby.xu@gmail.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20210309094106.196911-3-stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 85f51460043b794a154f5df5613a331433dc91b0
      
https://github.com/qemu/qemu/commit/85f51460043b794a154f5df5613a331433dc91b0
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M tests/qtest/vhost-user-blk-test.c

  Log Message:
  -----------
  tests/qtest: add multi-queue test case to vhost-user-blk-test

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20210309094106.196911-4-stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: d568888d71283a1f08ef466b4564f2998baa913f
      
https://github.com/qemu/qemu/commit/d568888d71283a1f08ef466b4564f2998baa913f
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M tests/qtest/vhost-user-blk-test.c

  Log Message:
  -----------
  vhost-user-blk-test: test discard/write zeroes invalid inputs

Exercise input validation code paths in
block/export/vhost-user-blk-server.c.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20210309094106.196911-5-stefanha@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 918d2a2677670178fe6f05905615218b99373d4a
      
https://github.com/qemu/qemu/commit/918d2a2677670178fe6f05905615218b99373d4a
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M tests/qtest/qmp-cmd-test.c
    M tests/qtest/test-netfilter.c

  Log Message:
  -----------
  tests: Drop 'props' from object-add calls

The 'props' option has been deprecated in 5.0 in favour of a flattened
object-add command. Time to change our test cases to drop the deprecated
option.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>


  Commit: 2609504806914cd1c9edec6af89d0cb93f694328
      
https://github.com/qemu/qemu/commit/2609504806914cd1c9edec6af89d0cb93f694328
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M docs/system/deprecated.rst
    M docs/system/removed-features.rst
    M qapi/qom.json
    M qom/qom-qmp-cmds.c

  Log Message:
  -----------
  qapi/qom: Drop deprecated 'props' from object-add

The option has been deprecated in QEMU 5.0, remove it.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>


  Commit: 99d62a547fd873dccc5d02fdd9449cb147565ff1
      
https://github.com/qemu/qemu/commit/99d62a547fd873dccc5d02fdd9449cb147565ff1
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M qapi/qom.json

  Log Message:
  -----------
  qapi/qom: Add ObjectOptions for iothread

Add an ObjectOptions union that will eventually describe the options of
all user creatable object types. As unions can't exist without any
branches, also add the first object type.

This adds a QAPI schema for the properties of the iothread object.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>


  Commit: dc7a3801c958b631137ba7126dc1ea0688eecec2
      
https://github.com/qemu/qemu/commit/dc7a3801c958b631137ba7126dc1ea0688eecec2
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M qapi/authz.json
    M qapi/qom.json
    M storage-daemon/qapi/qapi-schema.json

  Log Message:
  -----------
  qapi/qom: Add ObjectOptions for authz-*

This adds a QAPI schema for the properties of the authz-* objects.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Acked-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>


  Commit: 7ec606da351361f3796ba97d8f5a4e26618c56dd
      
https://github.com/qemu/qemu/commit/7ec606da351361f3796ba97d8f5a4e26618c56dd
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M qapi/qom.json

  Log Message:
  -----------
  qapi/qom: Add ObjectOptions for cryptodev-*

This adds a QAPI schema for the properties of the cryptodev-* objects.

These interfaces have some questionable aspects (cryptodev-backend is
really an abstract base class without function, and the queues option
only makes sense for cryptodev-vhost-user), but as the goal is to
represent the existing interface in QAPI, leave these things in place.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>


  Commit: 1e4c63d08beed069ba46a6d0ae0cbe8c8c6662ea
      
https://github.com/qemu/qemu/commit/1e4c63d08beed069ba46a6d0ae0cbe8c8c6662ea
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M qapi/qom.json

  Log Message:
  -----------
  qapi/qom: Add ObjectOptions for dbus-vmstate

This adds a QAPI schema for the properties of the dbus-vmstate object.

A list represented as a comma separated string is clearly not very
QAPI-like, but for now just describe the existing interface.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>


  Commit: b76cf64be103c90a51eada28f3b4822a8bc3e8e9
      
https://github.com/qemu/qemu/commit/b76cf64be103c90a51eada28f3b4822a8bc3e8e9
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M qapi/common.json
    M qapi/machine.json
    M qapi/qom.json

  Log Message:
  -----------
  qapi/qom: Add ObjectOptions for memory-backend-*

This adds a QAPI schema for the properties of the memory-backend-*
objects.

HostMemPolicy has to be moved to an include file that can be used by the
storage daemon, too, because ObjectOptions must be the same in all
binaries if we don't want to compile the whole code multiple times.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>


  Commit: 18fcda5db5326d6a690bfac8989b0d71cd70a4c1
      
https://github.com/qemu/qemu/commit/18fcda5db5326d6a690bfac8989b0d71cd70a4c1
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M docs/system/deprecated.rst
    M qapi/qom.json

  Log Message:
  -----------
  qapi/qom: Add ObjectOptions for rng-*, deprecate 'opened'

This adds a QAPI schema for the properties of the rng-* objects.

The 'opened' property doesn't seem to make sense as an external
interface: It is automatically set to true in ucc->complete, and
explicitly setting it to true earlier just means that trying to set
additional options will result in an error. After the property has once
been set to true (i.e. when the object construction has completed), it
can never be reset to false. In other words, the 'opened' property is
useless. Mark it as deprecated in the schema from the start.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>


  Commit: 4a4becf630189fd350fafd04cb4afd3410c6044d
      
https://github.com/qemu/qemu/commit/4a4becf630189fd350fafd04cb4afd3410c6044d
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M qapi/block-core.json
    M qapi/qom.json

  Log Message:
  -----------
  qapi/qom: Add ObjectOptions for throttle-group

This adds a QAPI schema for the properties of the throttle-group object.

The only purpose of the x-* properties is to make the nested options in
'limits' available for a command line parser that doesn't support
structs. Any parser that will use the QAPI schema will supports structs,
though, so they will not be needed in the schema in the future.

To keep the conversion straightforward, add them to the schema anyway.
We can then remove the options and adjust documentation, test cases etc.
in a separate patch.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>


  Commit: 0a3af58e7c99ce8bd3a137641c073d9cc4702a3f
      
https://github.com/qemu/qemu/commit/0a3af58e7c99ce8bd3a137641c073d9cc4702a3f
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M docs/system/deprecated.rst
    M qapi/crypto.json
    M qapi/qom.json

  Log Message:
  -----------
  qapi/qom: Add ObjectOptions for secret*, deprecate 'loaded'

This adds a QAPI schema for the properties of the secret* objects.

The 'loaded' property doesn't seem to make sense as an external
interface: It is automatically set to true in ucc->complete, and
explicitly setting it to true earlier just means that additional options
will be silently ignored.

In other words, the 'loaded' property is useless. Mark it as deprecated
in the schema from the start.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Acked-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>


  Commit: 34f9459d5a0da5e656ffe7903cbbffb034704cc9
      
https://github.com/qemu/qemu/commit/34f9459d5a0da5e656ffe7903cbbffb034704cc9
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M qapi/crypto.json
    M qapi/qom.json

  Log Message:
  -----------
  qapi/qom: Add ObjectOptions for tls-*, deprecate 'loaded'

This adds a QAPI schema for the properties of the tls-* objects.

The 'loaded' property doesn't seem to make sense as an external
interface: It is automatically set to true in ucc->complete, and
explicitly setting it to true earlier just means that additional options
will be silently ignored.

In other words, the 'loaded' property is useless. Mark it as deprecated
in the schema from the start.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Acked-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>


  Commit: 7826d393e96c6fca09fa0f1219d9d8171bd4e310
      
https://github.com/qemu/qemu/commit/7826d393e96c6fca09fa0f1219d9d8171bd4e310
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M qapi/qom.json

  Log Message:
  -----------
  qapi/qom: Add ObjectOptions for can-*

This adds a QAPI schema for the properties of the can-* objects.

can-bus doesn't have any properties, so it only needs to be added to the
ObjectType enum without adding a new branch to ObjectOptions.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>


  Commit: 06d950359f026ed5985de751581eccee30c0fb68
      
https://github.com/qemu/qemu/commit/06d950359f026ed5985de751581eccee30c0fb68
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M qapi/qom.json

  Log Message:
  -----------
  qapi/qom: Add ObjectOptions for colo-compare

This adds a QAPI schema for the properties of the colo-compare object.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>


  Commit: a1113a669423f60b285ecd3fc8a64f8104dfc47d
      
https://github.com/qemu/qemu/commit/a1113a669423f60b285ecd3fc8a64f8104dfc47d
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M qapi/common.json
    M qapi/net.json
    M qapi/qom.json

  Log Message:
  -----------
  qapi/qom: Add ObjectOptions for filter-*

This adds a QAPI schema for the properties of the filter-* objects.

Some parts of the interface (in particular NetfilterProperties.position)
are very unusual for QAPI, but for now just describe the existing
interface.

net.json can't be included in qom.json because the storage daemon
doesn't have it. NetFilterDirection is still required in the new object
property definitions in qom.json, so move this enum to common.json.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>


  Commit: cffc16c825aca272f9528b64ad6f342b7533a5e9
      
https://github.com/qemu/qemu/commit/cffc16c825aca272f9528b64ad6f342b7533a5e9
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M qapi/qom.json

  Log Message:
  -----------
  qapi/qom: Add ObjectOptions for pr-manager-helper

This adds a QAPI schema for the properties of the pr-manager-helper
object.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>


  Commit: bb151973e60d5b668428f3575fb19b60e87de644
      
https://github.com/qemu/qemu/commit/bb151973e60d5b668428f3575fb19b60e87de644
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M qapi/qom.json

  Log Message:
  -----------
  qapi/qom: Add ObjectOptions for confidential-guest-support

This adds a QAPI schema for the properties of the objects implementing
the confidential-guest-support interface.

pef-guest and s390x-pv-guest don't have any properties, so they only
need to be added to the ObjectType enum without adding a new branch to
ObjectOptions.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>


  Commit: fa1ce8ab25fd6b982997868f766cababed18d63a
      
https://github.com/qemu/qemu/commit/fa1ce8ab25fd6b982997868f766cababed18d63a
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M qapi/common.json
    M qapi/qom.json
    M qapi/ui.json

  Log Message:
  -----------
  qapi/qom: Add ObjectOptions for input-*

This adds a QAPI schema for the properties of the input-* objects.

ui.json cannot be included in qom.json because the storage daemon can't
use it, so move GrabToggleKeys to common.json.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>


  Commit: 17cdbea1d117307f5cb0f1e777b5d318a2af78b9
      
https://github.com/qemu/qemu/commit/17cdbea1d117307f5cb0f1e777b5d318a2af78b9
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M qapi/qom.json

  Log Message:
  -----------
  qapi/qom: Add ObjectOptions for x-remote-object

This adds a QAPI schema for the properties of the x-remote-object
object.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>


  Commit: 2ff24f6610a7acecd3ea4a32e555363a2ffecec1
      
https://github.com/qemu/qemu/commit/2ff24f6610a7acecd3ea4a32e555363a2ffecec1
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M hw/block/xen-block.c
    M include/qom/object_interfaces.h
    M monitor/misc.c
    M qapi/qom.json
    M qom/qom-qmp-cmds.c
    M storage-daemon/qemu-storage-daemon.c

  Log Message:
  -----------
  qapi/qom: QAPIfy object-add

This converts object-add from 'gen': false to the ObjectOptions QAPI
type. As an immediate benefit, clients can now use QAPI schema
introspection for user creatable QOM objects.

It is also the first step towards making the QAPI schema the only
external interface for the creation of user creatable objects. Once all
other places (HMP and command lines of the system emulator and all
tools) go through QAPI, too, some object implementations can be
simplified because some checks (e.g. that mandatory options are set) are
already performed by QAPI, and in another step, QOM boilerplate code
could be generated from the schema.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>


  Commit: 3641748c9b2c967519e7edbbe3d31fc292a04ed4
      
https://github.com/qemu/qemu/commit/3641748c9b2c967519e7edbbe3d31fc292a04ed4
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M qom/object_interfaces.c

  Log Message:
  -----------
  qom: Make "object" QemuOptsList optional

This code is going away anyway, but for a few more commits, we'll be in
a state where some binaries still use QemuOpts and others don't. If the
"object" QemuOptsList doesn't even exist, we don't have to remove (or
fail to remove, and therefore abort) a user creatable object from it.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>


  Commit: 1fc19d69dbaad6d0104df95bf66d64784ab2019c
      
https://github.com/qemu/qemu/commit/1fc19d69dbaad6d0104df95bf66d64784ab2019c
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M storage-daemon/qemu-storage-daemon.c

  Log Message:
  -----------
  qemu-storage-daemon: Implement --object with qmp_object_add()

This QAPIfies --object and ensures that QMP and the command line option
behave the same.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>


  Commit: 866ab41d3e12fe26a216feef0a5c1f5018991559
      
https://github.com/qemu/qemu/commit/866ab41d3e12fe26a216feef0a5c1f5018991559
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M include/qom/object_interfaces.h
    M qom/object_interfaces.c

  Log Message:
  -----------
  qom: Remove user_creatable_add_dict()

This function is now unused and can be removed.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>


  Commit: 715ce7367acead8c16609990f83a4f4c96275666
      
https://github.com/qemu/qemu/commit/715ce7367acead8c16609990f83a4f4c96275666
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M include/qom/object_interfaces.h
    M qom/object_interfaces.c
    M qom/qom-qmp-cmds.c
    M storage-daemon/qemu-storage-daemon.c

  Log Message:
  -----------
  qom: Factor out user_creatable_process_cmdline()

The implementation for --object can be shared between
qemu-storage-daemon and other binaries, so move it into a function in
qom/object_interfaces.c that is accessible from everywhere.

This also requires moving the implementation of qmp_object_add() into a
new user_creatable_add_qapi(), because qom/qom-qmp-cmds.c is not linked
for tools.

user_creatable_print_help_from_qdict() can become static now.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>


  Commit: 47b776cc1b563558606973e7b0aad319edc5530e
      
https://github.com/qemu/qemu/commit/47b776cc1b563558606973e7b0aad319edc5530e
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M qemu-io.c

  Log Message:
  -----------
  qemu-io: Use user_creatable_process_cmdline() for --object

This switches qemu-io from a QemuOpts-based parser for --object to
user_creatable_process_cmdline() which uses a keyval parser and enforces
the QAPI schema.

Apart from being a cleanup, this makes non-scalar properties accessible.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>


  Commit: 1ccc89f44a9cf62fe16c975a9891506d12d0690b
      
https://github.com/qemu/qemu/commit/1ccc89f44a9cf62fe16c975a9891506d12d0690b
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M qemu-nbd.c

  Log Message:
  -----------
  qemu-nbd: Use user_creatable_process_cmdline() for --object

This switches qemu-nbd from a QemuOpts-based parser for --object to
user_creatable_process_cmdline() which uses a keyval parser and enforces
the QAPI schema.

Apart from being a cleanup, this makes non-scalar properties accessible.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>


  Commit: d3cc008ee02827c6fc1cb47187ae206149faf1b8
      
https://github.com/qemu/qemu/commit/d3cc008ee02827c6fc1cb47187ae206149faf1b8
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M include/qom/object_interfaces.h
    M qom/object_interfaces.c

  Log Message:
  -----------
  qom: Add user_creatable_add_from_str()

This is a version of user_creatable_process_cmdline() with an Error
parameter that never calls exit() and is therefore usable in HMP.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>


  Commit: 5bed51710f3029de99699b37dcf1374ca3eccbfa
      
https://github.com/qemu/qemu/commit/5bed51710f3029de99699b37dcf1374ca3eccbfa
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M docs/tools/qemu-img.rst
    M qemu-img.c

  Log Message:
  -----------
  qemu-img: Use user_creatable_process_cmdline() for --object

This switches qemu-img from a QemuOpts-based parser for --object to
user_creatable_process_cmdline() which uses a keyval parser and enforces
the QAPI schema.

Apart from being a cleanup, this makes non-scalar properties accessible.

As a side effect, fix wrong exit codes in the object parsing error path
of 'qemu-img compare'. This was broken in commit 334c43e2c3 because
&error_fatal exits with an exit code of 1, while it should have been 2.

Document that exit code 0 is also returned when just requested help was
printed instead of comparing images. This is preexisting behaviour that
isn't changed by this patch, though another instance of it is added with
'--object help'.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>


  Commit: 2202f38dbacd7744bda2800a9d4f7b0fb1fc461c
      
https://github.com/qemu/qemu/commit/2202f38dbacd7744bda2800a9d4f7b0fb1fc461c
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M hmp-commands.hx
    M monitor/hmp-cmds.c
    M qom/object_interfaces.c

  Log Message:
  -----------
  hmp: QAPIfy object_add

This switches the HMP command object_add from a QemuOpts-based parser to
user_creatable_add_from_str() which uses a keyval parser and enforces
the QAPI schema.

Apart from being a cleanup, this makes non-scalar properties and help
accessible. In order for help to be printed to the monitor instead of
stdout, the printf() calls in the help functions are changed to
qemu_printf().

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>


  Commit: a1f468d66bbee55582e26a57910f2a93700d41b0
      
https://github.com/qemu/qemu/commit/a1f468d66bbee55582e26a57910f2a93700d41b0
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M include/qom/object_interfaces.h
    M qom/object_interfaces.c

  Log Message:
  -----------
  qom: Add user_creatable_parse_str()

The system emulator has a more complicated way of handling command line
options in that it reorders options before it processes them. This means
that parsing object options and creating the object happen at two
different points. Split the parsing part into a separate function that
can be reused by the system emulator command line.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Acked-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>


  Commit: 11abf88cf0638a4d2773d04a7872ac947563e037
      
https://github.com/qemu/qemu/commit/11abf88cf0638a4d2773d04a7872ac947563e037
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M chardev/char.c

  Log Message:
  -----------
  char: Skip CLI aliases in query-chardev-backends

The aliases "tty" and "parport" are only valid on the command line, QMP
commands like chardev-add don't know them. query-chardev-backends should
describe QMP and therefore not include them in the list of available
backends.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20210311164253.338723-2-kwolf@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 3eda32b74e7bd72d4b7ae1c9ad9e92a8c3788ee9
      
https://github.com/qemu/qemu/commit/3eda32b74e7bd72d4b7ae1c9ad9e92a8c3788ee9
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M chardev/char.c
    M docs/system/deprecated.rst
    M tests/unit/test-char.c

  Log Message:
  -----------
  char: Deprecate backend aliases 'tty' and 'parport'

QAPI doesn't know the aliases 'tty' and 'parport' and there is no
reason to prefer them to the real names of the backends 'serial' and
'parallel'.

Since warnings are not allowed in 'make check' output, we can't test
the deprecated alias any more. Remove it from test-char.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20210311164253.338723-3-kwolf@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 086646e3526701cb45acc59f0e0cbcc64ed571d6
      
https://github.com/qemu/qemu/commit/086646e3526701cb45acc59f0e0cbcc64ed571d6
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M chardev/char.c

  Log Message:
  -----------
  char: Simplify chardev_name_foreach()

Both callers use callbacks that don't do anything when they are called
for CLI aliases. Instead of passing the cli_alias parameter, just don't
call the callbacks for aliases in the first place.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20210311164253.338723-4-kwolf@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 078ee48ef7d172df1b3ad020255d1eb6beda2daf
      
https://github.com/qemu/qemu/commit/078ee48ef7d172df1b3ad020255d1eb6beda2daf
  Author: Kevin Wolf <kwolf@redhat.com>
  Date:   2021-03-15 (Mon, 15 Mar 2021)

  Changed paths:
    M qom/object_interfaces.c

  Log Message:
  -----------
  qom: Support JSON in HMP object_add and tools --object

Support JSON for --object in all tools and in HMP object_add in the same
way as it is supported in qobject_input_visitor_new_str().

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Message-Id: <20210312131921.421023-1-kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>


  Commit: 0f8247d843768e9bba98dd42e5527035d3a580b4
      
https://github.com/qemu/qemu/commit/0f8247d843768e9bba98dd42e5527035d3a580b4
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2021-03-16 (Tue, 16 Mar 2021)

  Changed paths:
    M MAINTAINERS
    M block.c
    M block/curl.c
    M block/export/vhost-user-blk-server.c
    M block/stream.c
    M chardev/char.c
    M docs/system/deprecated.rst
    M docs/system/removed-features.rst
    M docs/tools/qemu-img.rst
    M hmp-commands.hx
    M hw/block/xen-block.c
    M include/qom/object_interfaces.h
    M monitor/hmp-cmds.c
    M monitor/misc.c
    M qapi/authz.json
    M qapi/block-core.json
    M qapi/common.json
    M qapi/crypto.json
    M qapi/machine.json
    M qapi/net.json
    M qapi/qom.json
    M qapi/ui.json
    M qemu-img.c
    M qemu-io.c
    M qemu-nbd.c
    M qom/object_interfaces.c
    M qom/qom-qmp-cmds.c
    M storage-daemon/qapi/qapi-schema.json
    M storage-daemon/qemu-storage-daemon.c
    A tests/qemu-iotests/tests/qsd-jobs
    A tests/qemu-iotests/tests/qsd-jobs.out
    M tests/qtest/libqos/meson.build
    A tests/qtest/libqos/vhost-user-blk.c
    A tests/qtest/libqos/vhost-user-blk.h
    M tests/qtest/meson.build
    M tests/qtest/qmp-cmd-test.c
    M tests/qtest/test-netfilter.c
    A tests/qtest/vhost-user-blk-test.c
    M tests/unit/test-char.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into staging

Block layer patches and object-add QAPIfication

- QAPIfy object-add and --object for tools (keyval and JSON support)
- Add vhost-user-blk-test
- stream: Fail gracefully if permission is denied
- storage-daemon: Fix crash on quit when job is still running
- curl: Fix use after free
- char: Deprecate backend aliases, fix QMP query-chardev-backends
- Fix image creation option defaults that exist in both the format and
  the protocol layer (e.g. 'cluster_size' in qcow2 and rbd; the qcow2
  default was incorrectly applied to the rbd layer)

# gpg: Signature made Mon 15 Mar 2021 12:27:38 GMT
# gpg:                using RSA key DC3DEB159A9AF95D3D7456FE7F09B272C88F2FD6
# gpg:                issuer "kwolf@redhat.com"
# gpg: Good signature from "Kevin Wolf <kwolf@redhat.com>" [full]
# Primary key fingerprint: DC3D EB15 9A9A F95D 3D74  56FE 7F09 B272 C88F 2FD6

* remotes/kevin/tags/for-upstream: (42 commits)
  qom: Support JSON in HMP object_add and tools --object
  char: Simplify chardev_name_foreach()
  char: Deprecate backend aliases 'tty' and 'parport'
  char: Skip CLI aliases in query-chardev-backends
  qom: Add user_creatable_parse_str()
  hmp: QAPIfy object_add
  qemu-img: Use user_creatable_process_cmdline() for --object
  qom: Add user_creatable_add_from_str()
  qemu-nbd: Use user_creatable_process_cmdline() for --object
  qemu-io: Use user_creatable_process_cmdline() for --object
  qom: Factor out user_creatable_process_cmdline()
  qom: Remove user_creatable_add_dict()
  qemu-storage-daemon: Implement --object with qmp_object_add()
  qom: Make "object" QemuOptsList optional
  qapi/qom: QAPIfy object-add
  qapi/qom: Add ObjectOptions for x-remote-object
  qapi/qom: Add ObjectOptions for input-*
  qapi/qom: Add ObjectOptions for confidential-guest-support
  qapi/qom: Add ObjectOptions for pr-manager-helper
  qapi/qom: Add ObjectOptions for filter-*
  ...

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


Compare: https://github.com/qemu/qemu/compare/6e31b3a5c34c...0f8247d84376



reply via email to

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