Skip to content
Snippets Groups Projects
  1. Aug 05, 2021
  2. Jul 21, 2021
    • Stefano Garzarella's avatar
      iothread: add aio-max-batch parameter · 1793ad02
      Stefano Garzarella authored
      
      The `aio-max-batch` parameter will be propagated to AIO engines
      and it will be used to control the maximum number of queued requests.
      
      When there are in queue a number of requests equal to `aio-max-batch`,
      the engine invokes the system call to forward the requests to the kernel.
      
      This parameter allows us to control the maximum batch size to reduce
      the latency that requests might accumulate while queued in the AIO
      engine queue.
      
      If `aio-max-batch` is equal to 0 (default value), the AIO engine will
      use its default maximum batch size value.
      
      Signed-off-by: default avatarStefano Garzarella <sgarzare@redhat.com>
      Message-id: 20210721094211.69853-3-sgarzare@redhat.com
      Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
      1793ad02
  3. Jul 12, 2021
  4. Jul 09, 2021
  5. Jun 15, 2021
  6. Jun 03, 2021
  7. Jun 02, 2021
  8. May 26, 2021
  9. May 13, 2021
  10. May 12, 2021
  11. May 02, 2021
  12. Mar 23, 2021
  13. Mar 19, 2021
    • Markus Armbruster's avatar
      qapi: Implement deprecated-output=hide for QMP introspection · 2df68d77
      Markus Armbruster authored
      
      This policy suppresses deprecated bits in output, and thus permits
      "testing the future".  Implement it for QMP command query-qmp-schema:
      suppress information on deprecated commands, events and object type
      members, i.e. anything that has the special feature flag "deprecated".
      
      Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
      Reviewed-by: default avatarEric Blake <eblake@redhat.com>
      Message-Id: <20210318155519.1224118-8-armbru@redhat.com>
      2df68d77
    • Markus Armbruster's avatar
      monitor: Drop query-qmp-schema 'gen': false hack · 624fa80c
      Markus Armbruster authored
      
      QMP commands return their response as a generated QAPI type, which the
      monitor core converts to JSON via QObject.
      
      query-qmp-schema's response is the generated introspection data.  This
      is a QLitObject since commit 7d0f982b "qapi: generate a literal
      qobject for introspection", v2.12).  Before, it was a string.  Instead
      of converting QLitObject / string -> QObject -> QAPI type
      SchemaInfoList -> QObject -> JSON, we take a shortcut: the command is
      'gen': false, so it can return the QObject instead of the QAPI type.
      Slightly simpler and more efficient.
      
      The next commit will filter the response for output policy, and this
      is easier in the SchemaInfoList representation.  Drop the shortcut.
      
      This replaces the manual command registration by a generated one.  The
      manual registration makes the command available before the machine is
      built by passing flag QCO_ALLOW_PRECONFIG.  To keep it available
      there, we need need to add 'allow-preconfig': true to its definition
      in the schema.
      
      Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
      Reviewed-by: default avatarEric Blake <eblake@redhat.com>
      Message-Id: <20210318155519.1224118-7-armbru@redhat.com>
      624fa80c
    • Kevin Wolf's avatar
      hmp: QAPIfy object_add · da0a932b
      Kevin Wolf authored
      
      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: default avatarKevin Wolf <kwolf@redhat.com>
      Acked-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      Acked-by: default avatarPeter Krempa <pkrempa@redhat.com>
      Reviewed-by: default avatarEric Blake <eblake@redhat.com>
      Reviewed-by: default avatarDr. David Alan Gilbert <dgilbert@redhat.com>
      da0a932b
    • Kevin Wolf's avatar
      qapi/qom: QAPIfy object-add · 9151e59a
      Kevin Wolf authored
      
      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: default avatarKevin Wolf <kwolf@redhat.com>
      Acked-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      Acked-by: default avatarPeter Krempa <pkrempa@redhat.com>
      Reviewed-by: default avatarEric Blake <eblake@redhat.com>
      9151e59a
  14. Mar 18, 2021
  15. Mar 15, 2021
  16. Feb 15, 2021
    • Kevin Wolf's avatar
      monitor/qmp: Stop processing requests when shutdown is requested · b248e616
      Kevin Wolf authored
      
      Before this patch, monitor_qmp_dispatcher_co() used to check whether
      shutdown is requested only when it would have to wait for new requests.
      If there were still some queued requests, it would try to execute all of
      them before shutting down.
      
      This can be surprising when the queued QMP commands take long or hang
      because Ctrl-C may not actually exit QEMU as soon as possible.
      
      Change monitor_qmp_dispatcher_co() so that it additionally checks
      whether shutdown is request before it gets a new request from the queue.
      
      Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
      Message-Id: <20210212172028.288825-3-kwolf@redhat.com>
      Tested-by: default avatarMarkus Armbruster <armbru@redhat.com>
      Reviewed-by: default avatarMarkus Armbruster <armbru@redhat.com>
      Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
      b248e616
    • Kevin Wolf's avatar
      monitor: Fix assertion failure on shutdown · c81219a7
      Kevin Wolf authored
      
      Commit 357bda95 already tried to fix the order in monitor_cleanup() by
      moving shutdown of the dispatcher coroutine further to the start.
      However, it didn't go far enough:
      
      iothread_stop() makes sure that all pending work (bottom halves) in the
      AioContext of the monitor iothread is completed. iothread_destroy()
      depends on this and fails an assertion if there is still a pending BH.
      
      While the dispatcher coroutine is running, it will try to resume the
      monitor after taking a request out of the queue, which involves a BH.
      The dispatcher is run until it terminates in the AIO_WAIT_WHILE() loop.
      However, adding new BHs between iothread_stop() and iothread_destroy()
      is forbidden.
      
      Fix this by stopping the dispatcher first before shutting down the other
      parts of the monitor. This means we can now receive requests that aren't
      handled any more when QEMU is shutting down, but this is unlikely to be
      a problem for QMP clients.
      
      Fixes: 357bda95
      Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
      Message-Id: <20210212172028.288825-2-kwolf@redhat.com>
      Tested-by: default avatarMarkus Armbruster <armbru@redhat.com>
      Reviewed-by: default avatarMarkus Armbruster <armbru@redhat.com>
      Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
      c81219a7
  17. Feb 08, 2021
  18. Feb 04, 2021
  19. Jan 28, 2021
Loading