Commits on Apr 28, 2023

  1. qga/qapi-schema: Tidy up documentation of guest-fsfreeze-status

    Delete "error state indicates", because it doesn't make sense.
    I suspect it was an accident.
    
    Signed-off-by: Markus Armbruster <armbru@redhat.com>
    Reviewed-by: Konstantin Kostiuk <kkostiuk@redhat.com>
    Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
    Message-Id: <20230425064223.820979-2-armbru@redhat.com>
    Markus Armbruster committed Apr 28, 2023
    Copy the full SHA
    a36c865 View commit details
    Browse the repository at this point in the history
  2. qga/qapi-schema: Fix a misspelled reference

    Code returns a list of GuestNetworkInterface, documentation claims
    GuestNetworkInfo, which doesn't exist.  Fix the documentation.
    
    Fixes: 3424fc9 (qemu-ga: add guest-network-get-interfaces command)
    Signed-off-by: Markus Armbruster <armbru@redhat.com>
    Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
    Message-Id: <20230425064223.820979-3-armbru@redhat.com>
    Markus Armbruster committed Apr 28, 2023
    Copy the full SHA
    573a5fa View commit details
    Browse the repository at this point in the history
  3. qapi: Fix misspelled references

    query-cpu-definitions returns a list of CpuDefinitionInfo, but
    documentation claims CpuDefInfo, which doesn't exist.
    
    query-migrate-capabilities returns a list of
    MigrationCapabilityStatus, but documentation claims
    MigrationCapabilitiesStatus, which doesn't exist.
    
    balloon and query-balloon can fail with KVMMissingCap, but
    documentation claims KvmMissingCap, which doesn't exist.
    
    Fix the documentation.
    
    Fixes: e4e31c6 (qapi: add query-cpu-definitions command (v2))
    Fixes: bbf6da3 (Add migration capabilities)
    Fixes: d72f326 (qapi: Convert balloon)
    Fixes: 96637bc (qapi: Convert query-balloon)
    Signed-off-by: Markus Armbruster <armbru@redhat.com>
    Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
    Reviewed-by: David Hildenbrand <david@redhat.com>
    Message-Id: <20230425064223.820979-4-armbru@redhat.com>
    Reviewed-by: Juan Quintela <quintela@redhat.com>
    Markus Armbruster committed Apr 28, 2023
    Copy the full SHA
    d93ed1b View commit details
    Browse the repository at this point in the history
  4. qapi: Fix up references to long gone error classes

    Commit de253f1 (qmp: switch to the new error format on the
    wire) removed most error classes.  Several later commits mistakenly
    mentioned them in documentation.  Replace them by the actual error
    class there.
    
    Fixes: 44e3e05 (qmp: add interface blockdev-snapshot-delete-internal-sync)
    Fixes: f323bc9 (qmp: add interface blockdev-snapshot-internal-sync)
    Fixes: ba1c048 (qapi: Introduce add-fd, remove-fd, query-fdsets)
    Fixes: ed61fc1 (QAPI: add command for live block commit, 'block-commit')
    Fixes: e4c8f00 (qapi: convert sendkey)
    Signed-off-by: Markus Armbruster <armbru@redhat.com>
    Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
    Message-Id: <20230425064223.820979-5-armbru@redhat.com>
    Markus Armbruster committed Apr 28, 2023
    Copy the full SHA
    7156886 View commit details
    Browse the repository at this point in the history
  5. qapi/block-core: Clean up after removal of dirty bitmap @status

    Commit 81cbfd5 (block: remove dirty bitmaps 'status' field)
    removed deprecated BlockDirtyInfo member @status.  It neglected to
    remove references to its enumeration values from the documentation of
    its replacements.  Do that now.
    
    Signed-off-by: Markus Armbruster <armbru@redhat.com>
    Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
    Reviewed-by: John Snow <jsnow@redhat.com>
    Message-Id: <20230425064223.820979-6-armbru@redhat.com>
    Markus Armbruster committed Apr 28, 2023
    Copy the full SHA
    9a5af2f View commit details
    Browse the repository at this point in the history
  6. qapi: @foo should be used to reference, not foo

    Documentation suggests @foo is merely shorthand for ``foo``.  It's
    not, it carries additional meaning: it's a reference to a QAPI schema
    name.
    
    Reword the documentation to spell that out.
    
    Fix up the few ``foo`` that should be @foo.
    
    Signed-off-by: Markus Armbruster <armbru@redhat.com>
    Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
    Message-Id: <20230425064223.820979-7-armbru@redhat.com>
    Markus Armbruster committed Apr 28, 2023
    Copy the full SHA
    f1a787b View commit details
    Browse the repository at this point in the history
  7. qapi: Tidy up examples

    A few examples neglect to prefix QMP input with '->'.  Fix that.
    
    Two examples have extra space after '<-'.  Delete it.
    
    A few examples neglect to show output.  Provide some.  The example
    output for query-vcpu-dirty-limit could use further improvement.  Add
    a TODO comment.
    
    Use "Examples:" instead of "Example:" where multiple examples are
    given.
    
    One example section numbers its two examples.  Not done elsewhere;
    drop.
    
    Another example section separates them with "or".  Likewise.
    
    Signed-off-by: Markus Armbruster <armbru@redhat.com>
    Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
    Message-Id: <20230425064223.820979-8-armbru@redhat.com>
    Reviewed-by: Juan Quintela <quintela@redhat.com>
    Markus Armbruster committed Apr 28, 2023
    Copy the full SHA
    37fa48a View commit details
    Browse the repository at this point in the history
  8. qapi: Delete largely misleading "Stability Considerations"

    Documentation section "Stability Considerations" dates back to the
    early days of QMP (commit 82a56f0 (Monitor: Introduce the
    qmp-commands.hx file)).  It became largely misleading years ago.
    Delete it.
    
    Signed-off-by: Markus Armbruster <armbru@redhat.com>
    Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
    Message-Id: <20230425064223.820979-9-armbru@redhat.com>
    Markus Armbruster committed Apr 28, 2023
    Copy the full SHA
    5042854 View commit details
    Browse the repository at this point in the history
  9. qapi: Fix bullet list markup in documentation

    Peter Maydell's commit 100cc4f explains:
    
        rST insists on a blank line before and after a bulleted list [...]
        Add some extra blank lines in the doc comments so they're
        acceptable rST input.
    
    It missed one in qapi/trace.json.
    
    Paolo Bonzini later added another instance in qapi/stats.json,
    providing further, if unintended, evidence for his quip that rST is
    the Perl of ASCII-based markups.
    
    Both are parsed as ordinary paragraph, resulting in garbled output.
    
    John Snow missed the need for a blank line when converting
    docs/devel/qapi-code-gen.txt to rST.
    
    Add the blank lines we need to get the bullet lists recognized as
    such.
    
    Kevin Wolf and Lukas Straub added two more, but indented.  Sphinx
    recognizes them as (indented) bullet lists.  The indentation looks
    slightly off.
    
    Insert a blank line and delete the extra indentation.
    
    Fixes: 100cc4f (qapi: Add blank lines before bulleted lists)
    Fixes: 467ef82 (qmp: add filtering of statistics by target vCPU)
    Signed-off-by: Markus Armbruster <armbru@redhat.com>
    Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
    Message-Id: <20230425064223.820979-10-armbru@redhat.com>
    [Fix of docs/devel/qapi-code-gen.rst squashed, commit message adjusted]
    Markus Armbruster committed Apr 28, 2023
    Copy the full SHA
    c110102 View commit details
    Browse the repository at this point in the history
  10. qapi: Fix unintended definition lists in documentation

    rST parses something like
    
        first line
            second line
    
    as a definition list item, where "first line" is the term being
    defined by "second line".
    
    This bites us in a couple of places.  Here's one:
    
        # @bps_max: total throughput limit during bursts,
        #                     in bytes (Since 1.7)
    
    scripts/qapi/parser.py parses this into an "argument section" with
    name "bps_max" and text
    
        total throughput limit during bursts,
    	      in bytes (Since 1.7)
    
    docs/sphinx/qapidoc.py duly passes the text to the rST parser, which
    parses it as another definition list.  Comes out as nested
    definitions: term "bps_max: int (optional)" defined as term "total
    throughput limit during bursts," defined as "in bytes (Since 1.7)".
    
    rST truly is the Perl of ASCII-based markups.
    
    Fix by deleting the extra indentation.
    
    Fixes: 26ec4e5 (qapi: Fix indent level on doc comments in json files)
    Fixes: c0ac533 (qapi: Stop using whitespace for alignment in comments)
    Fixes: 81ad296 (net/vmnet: add vmnet backends to qapi/net)
    Reported-by: Peter Maydell <peter.maydell@linaro.org>
    Signed-off-by: Markus Armbruster <armbru@redhat.com>
    Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
    Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
    Message-Id: <20230425064223.820979-11-armbru@redhat.com>
    Markus Armbruster committed Apr 28, 2023
    Copy the full SHA
    f2de3b9 View commit details
    Browse the repository at this point in the history
  11. qga/qapi-schema: Fix member documentation markup

    GuestDiskStatsInfo's member documentation is parsed as ordinary text
    due to missing colons.  The generated documentation shows these
    members as "Not documented".
    
    The fix is obvious: add the missing colons.
    
    Signed-off-by: Markus Armbruster <armbru@redhat.com>
    Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
    Message-Id: <20230425064223.820979-12-armbru@redhat.com>
    Markus Armbruster committed Apr 28, 2023
    Copy the full SHA
    c0af9e1 View commit details
    Browse the repository at this point in the history
  12. qapi: Fix argument documentation markup

    Member / argument documentation of BlockdevAmendOptionsQcow2,
    job-resume, and RDMA_GID_STATUS_CHANGED is parsed as ordinary text due
    to missing colon or space before the colon.  The generated
    documentation shows these members / arguments as "Not documented".
    
    The fix is obvious: add missing colons, delete extra spaces.
    
    Signed-off-by: Markus Armbruster <armbru@redhat.com>
    Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
    Message-Id: <20230425064223.820979-13-armbru@redhat.com>
    Markus Armbruster committed Apr 28, 2023
    Copy the full SHA
    91577c4 View commit details
    Browse the repository at this point in the history
  13. qapi: Replace ad hoc "since" documentation by member documentation

    MemoryDeviceInfoKind, NetClientDriver, and GuestPanicAction mention
    some members only in ad hoc since documentation.  The generated
    documentation shows these members as "Not documented".
    
    Replace by formal member documentation.
    
    Add actual documentation text for the GuestPanicAction members, to
    match existing member documentation there.  For the others, merely
    move existing "since" information.
    
    Signed-off-by: Markus Armbruster <armbru@redhat.com>
    Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
    Message-Id: <20230425064223.820979-14-armbru@redhat.com>
    Markus Armbruster committed Apr 28, 2023
    Copy the full SHA
    86bf13a View commit details
    Browse the repository at this point in the history
  14. qapi: Fix misspelled section tags in doc comments

    Section tags are case sensitive and end with a colon.  Screwing up
    either gets them interpreted as ordinary paragraph.  Fix a few.
    
    Signed-off-by: Markus Armbruster <armbru@redhat.com>
    Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
    Message-Id: <20230425064223.820979-15-armbru@redhat.com>
    Markus Armbruster committed Apr 28, 2023
    Copy the full SHA
    7c3def9 View commit details
    Browse the repository at this point in the history
  15. qapi: Format since information the conventional way: (since X.Y)

    Signed-off-by: Markus Armbruster <armbru@redhat.com>
    Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
    Message-Id: <20230425064223.820979-16-armbru@redhat.com>
    Markus Armbruster committed Apr 28, 2023
    Copy the full SHA
    94546de View commit details
    Browse the repository at this point in the history
  16. qapi storage-daemon/qapi: Fix documentation section structure

    In the QEMU QMP Reference Manual, subsection "Block core (VM
    unrelated)" is empty.  Its contents is at the end of subsection
    "Background jobs" instead.  That's because qapi/job.json is included
    first from qapi/block-core.json, which makes qapi/job.json's
    documentation go between qapi/block-core.json's subsection heading and
    contents.
    
    In the QEMU Storage Daemon QMP Reference Manual, section "Block
    Devices" contains nothing but an empty subsection "Block core (VM
    unrelated)".  The latter's contents is at the end section "Socket data
    types", along with subsection "Block device exports".  Subsection
    "Background jobs" is at the end of section "Cryptography".  All this
    is because storage-daemon/qapi/qapi-schema.json includes modules in a
    confused order.
    
    Fix both as follows.
    
    Turn subsection "Background jobs" into a section.
    
    Move it before section "Block devices" in the QEMU QMP Reference
    Manual, by including qapi/jobs.json right before qapi/block.json.
    
    Reorder include directives in storage-daemon/qapi/qapi-schema.json to
    match the order in qapi/qapi-schema.json, so that the QEMU Storage
    Daemon QMP Reference Manual's section structure the QEMU QMP Reference
    Manual's.
    
    In the QEMU QMP Reference Manual, qapi/cryptodev.json's documentation
    is at the end of section "Virtio devices".  That's because it lacks a
    section heading, and therefore gets squashed into whatever section
    happens to precede it.
    
    Add section heading so it's in section "Cryptography devices".
    
    Signed-off-by: Markus Armbruster <armbru@redhat.com>
    Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
    Reviewed-by: Eric Blake <eblake@redhat.com>
    Acked-by: zhenwei pi <pizhenwei@bytedance.com>
    Message-Id: <20230425064223.820979-17-armbru@redhat.com>
    Markus Armbruster committed Apr 28, 2023
    Copy the full SHA
    4622c70 View commit details
    Browse the repository at this point in the history
  17. docs/devel/qapi-code-gen: Describe some doc markup pitfalls

    Signed-off-by: Markus Armbruster <armbru@redhat.com>
    Message-Id: <20230427095346.1238913-1-armbru@redhat.com>
    Reviewed-by: Juan Quintela <quintela@redhat.com>
    Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Markus Armbruster committed Apr 28, 2023
    Copy the full SHA
    e2e9e56 View commit details
    Browse the repository at this point in the history
  18. block/block-common: add zoned device structs

    Signed-off-by: Sam Li <faithilikerun@gmail.com>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
    Reviewed-by: Hannes Reinecke <hare@suse.de>
    Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
    Acked-by: Kevin Wolf <kwolf@redhat.com>
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Message-id: 20230427172019.3345-2-faithilikerun@gmail.com
    Message-id: 20230324090605.28361-2-faithilikerun@gmail.com
    [Adjust commit message prefix as suggested by Philippe Mathieu-Daudé
    <philmd@linaro.org>.
    --Stefan]
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    sgzerolc authored and Stefan Hajnoczi committed Apr 28, 2023
    Copy the full SHA
    290afd3 View commit details
    Browse the repository at this point in the history
  19. block/file-posix: introduce helper functions for sysfs attributes

    Use get_sysfs_str_val() to get the string value of device
    zoned model. Then get_sysfs_zoned_model() can convert it to
    BlockZoneModel type of QEMU.
    
    Use get_sysfs_long_val() to get the long value of zoned device
    information.
    
    Signed-off-by: Sam Li <faithilikerun@gmail.com>
    Reviewed-by: Hannes Reinecke <hare@suse.de>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
    Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
    Acked-by: Kevin Wolf <kwolf@redhat.com>
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Message-id: 20230427172019.3345-3-faithilikerun@gmail.com
    Message-id: 20230324090605.28361-3-faithilikerun@gmail.com
    [Adjust commit message prefix as suggested by Philippe Mathieu-Daudé
    <philmd@linaro.org>.
    --Stefan]
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    sgzerolc authored and Stefan Hajnoczi committed Apr 28, 2023
    Copy the full SHA
    4caf116 View commit details
    Browse the repository at this point in the history
  20. block/block-backend: add block layer APIs resembling Linux ZonedBlock…

    …Device ioctls
    
    Add zoned device option to host_device BlockDriver. It will be presented only
    for zoned host block devices. By adding zone management operations to the
    host_block_device BlockDriver, users can use the new block layer APIs
    including Report Zone and four zone management operations
    (open, close, finish, reset, reset_all).
    
    Qemu-io uses the new APIs to perform zoned storage commands of the device:
    zone_report(zrp), zone_open(zo), zone_close(zc), zone_reset(zrs),
    zone_finish(zf).
    
    For example, to test zone_report, use following command:
    $ ./build/qemu-io --image-opts -n driver=host_device, filename=/dev/nullb0
    -c "zrp offset nr_zones"
    
    Signed-off-by: Sam Li <faithilikerun@gmail.com>
    Reviewed-by: Hannes Reinecke <hare@suse.de>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
    Acked-by: Kevin Wolf <kwolf@redhat.com>
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Message-id: 20230427172019.3345-4-faithilikerun@gmail.com
    Message-id: 20230324090605.28361-4-faithilikerun@gmail.com
    [Adjust commit message prefix as suggested by Philippe Mathieu-Daudé
    <philmd@linaro.org> and remove spurious ret = -errno in
    raw_co_zone_mgmt().
    --Stefan]
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    sgzerolc authored and Stefan Hajnoczi committed Apr 28, 2023
    Copy the full SHA
    e973b9e View commit details
    Browse the repository at this point in the history
  21. block/raw-format: add zone operations to pass through requests

    raw-format driver usually sits on top of file-posix driver. It needs to
    pass through requests of zone commands.
    
    Signed-off-by: Sam Li <faithilikerun@gmail.com>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
    Reviewed-by: Hannes Reinecke <hare@suse.de>
    Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
    Acked-by: Kevin Wolf <kwolf@redhat.com>
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Message-id: 20230427172019.3345-5-faithilikerun@gmail.com
    Message-id: 20230324090605.28361-5-faithilikerun@gmail.com
    [Adjust commit message prefix as suggested by Philippe Mathieu-Daudé
    <philmd@linaro.org>.
    --Stefan]
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    sgzerolc authored and Stefan Hajnoczi committed Apr 28, 2023
    Copy the full SHA
    721f580 View commit details
    Browse the repository at this point in the history
  22. block: add zoned BlockDriver check to block layer

    Putting zoned/non-zoned BlockDrivers on top of each other is not
    allowed.
    
    Signed-off-by: Sam Li <faithilikerun@gmail.com>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    Reviewed-by: Hannes Reinecke <hare@suse.de>
    Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
    Acked-by: Kevin Wolf <kwolf@redhat.com>
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Message-id: 20230427172019.3345-6-faithilikerun@gmail.com
    Message-id: 20230324090605.28361-6-faithilikerun@gmail.com
    [Adjust commit message prefix as suggested by Philippe Mathieu-Daudé
    <philmd@linaro.org> and clarify that the check is about zoned
    BlockDrivers.
    --Stefan]
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    sgzerolc authored and Stefan Hajnoczi committed Apr 28, 2023
    Copy the full SHA
    46aa2a3 View commit details
    Browse the repository at this point in the history
  23. iotests: test new zone operations

    The new block layer APIs of zoned block devices can be tested by:
    $ tests/qemu-iotests/check zoned
    Run each zone operation on a newly created null_blk device
    and see whether it outputs the same zone information.
    
    Signed-off-by: Sam Li <faithilikerun@gmail.com>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    Acked-by: Kevin Wolf <kwolf@redhat.com>
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Message-id: 20230427172019.3345-7-faithilikerun@gmail.com
    Message-id: 20230324090605.28361-7-faithilikerun@gmail.com
    [Adjust commit message prefix as suggested by Philippe Mathieu-Daudé
    <philmd@linaro.org>.
    --Stefan]
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    sgzerolc authored and Stefan Hajnoczi committed Apr 28, 2023
    Copy the full SHA
    b8c274b View commit details
    Browse the repository at this point in the history
  24. block: add some trace events for new block layer APIs

    Signed-off-by: Sam Li <faithilikerun@gmail.com>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
    Acked-by: Kevin Wolf <kwolf@redhat.com>
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Message-id: 20230427172019.3345-8-faithilikerun@gmail.com
    Message-id: 20230324090605.28361-8-faithilikerun@gmail.com
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    sgzerolc authored and Stefan Hajnoczi committed Apr 28, 2023
    Copy the full SHA
    8d6164e View commit details
    Browse the repository at this point in the history
  25. docs/zoned-storage: add zoned device documentation

    Add the documentation about the zoned device support to virtio-blk
    emulation.
    
    Signed-off-by: Sam Li <faithilikerun@gmail.com>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
    Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
    Acked-by: Kevin Wolf <kwolf@redhat.com>
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Message-id: 20230427172019.3345-9-faithilikerun@gmail.com
    Message-id: 20230324090605.28361-9-faithilikerun@gmail.com
    [Add index-api.rst to fix "zoned-storage.rst:document isn't included in
    any toctree" error and fix pre-formatted command-line indentation.
    --Stefan]
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    sgzerolc authored and Stefan Hajnoczi committed Apr 28, 2023
    Copy the full SHA
    2ee9aa9 View commit details
    Browse the repository at this point in the history
  26. file-posix: add tracking of the zone write pointers

    Since Linux doesn't have a user API to issue zone append operations to
    zoned devices from user space, the file-posix driver is modified to add
    zone append emulation using regular writes. To do this, the file-posix
    driver tracks the wp location of all zones of the device. It uses an
    array of uint64_t. The most significant bit of each wp location indicates
    if the zone type is conventional zones.
    
    The zones wp can be changed due to the following operations issued:
    - zone reset: change the wp to the start offset of that zone
    - zone finish: change to the end location of that zone
    - write to a zone
    - zone append
    
    Signed-off-by: Sam Li <faithilikerun@gmail.com>
    Message-id: 20230427172339.3709-2-faithilikerun@gmail.com
    [Fix errno propagation from handle_aiocb_zone_mgmt()
    --Stefan]
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    sgzerolc authored and Stefan Hajnoczi committed Apr 28, 2023
    Copy the full SHA
    da7318d View commit details
    Browse the repository at this point in the history
  27. block: introduce zone append write for zoned devices

    A zone append command is a write operation that specifies the first
    logical block of a zone as the write position. When writing to a zoned
    block device using zone append, the byte offset of the call may point at
    any position within the zone to which the data is being appended. Upon
    completion the device will respond with the position where the data has
    been written in the zone.
    
    Signed-off-by: Sam Li <faithilikerun@gmail.com>
    Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    Message-id: 20230427172339.3709-3-faithilikerun@gmail.com
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    sgzerolc authored and Stefan Hajnoczi committed Apr 28, 2023
    Copy the full SHA
    881c8ec View commit details
    Browse the repository at this point in the history
  28. qemu-iotests: test zone append operation

    The patch tests zone append writes by reporting the zone wp after
    the completion of the call. "zap -p" option can print the sector
    offset value after completion, which should be the start sector
    where the append write begins.
    
    Signed-off-by: Sam Li <faithilikerun@gmail.com>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    Message-id: 20230427172339.3709-4-faithilikerun@gmail.com
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    sgzerolc authored and Stefan Hajnoczi committed Apr 28, 2023
    Copy the full SHA
    d7e90a6 View commit details
    Browse the repository at this point in the history
  29. block: add some trace events for zone append

    Signed-off-by: Sam Li <faithilikerun@gmail.com>
    Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    Message-id: 20230427172339.3709-5-faithilikerun@gmail.com
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    sgzerolc authored and Stefan Hajnoczi committed Apr 28, 2023
    Copy the full SHA
    9f99390 View commit details
    Browse the repository at this point in the history
  30. include: update virtio_blk headers to v6.3-rc1

    Use scripts/update-linux-headers.sh to update headers to 6.3-rc1.
    
    Signed-off-by: Sam Li <faithilikerun@gmail.com>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    [Reran scripts/update-linux-headers.sh on Linux v6.3. The only change
    was the use of __virtioXX types instead of uintXX_t.
    --Stefan]
    Message-Id: <20230407082528.18841-2-faithilikerun@gmail.com>
    sgzerolc authored and Stefan Hajnoczi committed Apr 28, 2023
    Copy the full SHA
    e730704 View commit details
    Browse the repository at this point in the history
  31. virtio-blk: add zoned storage emulation for zoned devices

    This patch extends virtio-blk emulation to handle zoned device commands
    by calling the new block layer APIs to perform zoned device I/O on
    behalf of the guest. It supports Report Zone, four zone oparations (open,
    close, finish, reset), and Append Zone.
    
    The VIRTIO_BLK_F_ZONED feature bit will only be set if the host does
    support zoned block devices. Regular block devices(conventional zones)
    will not be set.
    
    The guest os can use blktests, fio to test those commands on zoned devices.
    Furthermore, using zonefs to test zone append write is also supported.
    
    Signed-off-by: Sam Li <faithilikerun@gmail.com>
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Message-Id: <20230407082528.18841-3-faithilikerun@gmail.com>
    sgzerolc authored and Stefan Hajnoczi committed Apr 28, 2023
    Copy the full SHA
    bf3b8ac View commit details
    Browse the repository at this point in the history
  32. block: add accounting for zone append operation

    Taking account of the new zone append write operation for zoned devices,
    BLOCK_ACCT_ZONE_APPEND enum is introduced as other I/O request type (read,
    write, flush).
    
    Signed-off-by: Sam Li <faithilikerun@gmail.com>
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Message-Id: <20230407082528.18841-4-faithilikerun@gmail.com>
    sgzerolc authored and Stefan Hajnoczi committed Apr 28, 2023
    Copy the full SHA
    123225a View commit details
    Browse the repository at this point in the history
  33. virtio-blk: add some trace events for zoned emulation

    Signed-off-by: Sam Li <faithilikerun@gmail.com>
    Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Message-Id: <20230407082528.18841-5-faithilikerun@gmail.com>
    sgzerolc authored and Stefan Hajnoczi committed Apr 28, 2023
    Copy the full SHA
    820e26f View commit details
    Browse the repository at this point in the history
  34. docs/zoned-storage:add zoned emulation use case

    Add the documentation about the example of using virtio-blk driver
    to pass the zoned block devices through to the guest.
    
    Signed-off-by: Sam Li <faithilikerun@gmail.com>
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    [Fix rST syntax
    --Stefan]
    Message-Id: <20230407082528.18841-6-faithilikerun@gmail.com>
    sgzerolc authored and Stefan Hajnoczi committed Apr 28, 2023
    Copy the full SHA
    d3c760b View commit details
    Browse the repository at this point in the history
  35. multifd: We already account for this packet on the multifd thread

    Signed-off-by: Juan Quintela <quintela@redhat.com>
    Reviewed-by: Lukas Straub <lukasstraub2@web.de>
    Juan Quintela committed Apr 28, 2023
    Copy the full SHA
    291b612 View commit details
    Browse the repository at this point in the history
  36. migration: Move ram_stats to its own file migration-stats.[ch]

    There is already include/qemu/stats.h, so stats.h was a bad idea.
    We want this file to not depend on anything else, we will move all the
    migration counters/stats to this struct.
    
    Signed-off-by: Juan Quintela <quintela@redhat.com>
    Reviewed-by: Lukas Straub <lukasstraub2@web.de>
    Juan Quintela committed Apr 28, 2023
    Copy the full SHA
    3fb55f4 View commit details
    Browse the repository at this point in the history
  37. migration: Rename ram_counters to mig_stats

    migration_stats is just too long, and it is going to have more than
    ram counters in the near future.
    
    Signed-off-by: Juan Quintela <quintela@redhat.com>
    Reviewed-by: Lukas Straub <lukasstraub2@web.de>
    Juan Quintela committed Apr 28, 2023
    Copy the full SHA
    fc6fcdd View commit details
    Browse the repository at this point in the history
  38. migration: Rename RAMStats to MigrationAtomicStats

    It is lousely based on MigrationStats, but that name is taken, so this
    is the best one that I came with.
    
    Signed-off-by: Juan Quintela <quintela@redhat.com>
    Reviewed-by: Lukas Straub <lukasstraub2@web.de>
    
    ---
    
    If you have any good suggestion for the name, I am all ears.
    Juan Quintela committed Apr 28, 2023
    Copy the full SHA
    bb6a3af View commit details
    Browse the repository at this point in the history
  39. migration/rdma: Split the zero page case from acct_update_position

    Now that we have atomic counters, we can do it on the place that we
    need it, no need to do it inside ram.c.
    
    Signed-off-by: Juan Quintela <quintela@redhat.com>
    Reviewed-by: Lukas Straub <lukasstraub2@web.de>
    Juan Quintela committed Apr 28, 2023
    Copy the full SHA
    2585c1d View commit details
    Browse the repository at this point in the history
  40. migration/rdma: Unfold last user of acct_update_position()

    Signed-off-by: Juan Quintela <quintela@redhat.com>
    Reviewed-by: Lukas Straub <lukasstraub2@web.de>
    Juan Quintela committed Apr 28, 2023
    Copy the full SHA
    02c1fa1 View commit details
    Browse the repository at this point in the history
  41. migration: Drop unused parameter for migration_tls_get_creds()

    It is not needed since we moved the accessor for tls properties to
    options.c.
    
    Suggested-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Signed-off-by: Juan Quintela <quintela@redhat.com>
    Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Juan Quintela committed Apr 28, 2023
    Copy the full SHA
    32bcb96 View commit details
    Browse the repository at this point in the history
  42. migration: Drop unused parameter for migration_tls_client_create()

    It is not needed since we moved the accessor for tls properties to
    options.c.
    
    Suggested-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Signed-off-by: Juan Quintela <quintela@redhat.com>
    Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Juan Quintela committed Apr 28, 2023
    Copy the full SHA
    c20062e View commit details
    Browse the repository at this point in the history
  43. qtest/migration-test.c: Add tests with compress enabled

    There has never been tests for migration with compress enabled.
    
    Add suitable tests, testing with compress-wait-thread = false
    too.
    
    Signed-off-by: Lukas Straub <lukasstraub2@web.de>
    Acked-by: Peter Xu <peterx@redhat.com>
    Reviewed-by: Juan Quintela <quintela@redhat.com>
    Signed-off-by: Juan Quintela <quintela@redhat.com>
    Lukey3332 authored and Juan Quintela committed Apr 28, 2023
    Copy the full SHA
    5d3b094 View commit details
    Browse the repository at this point in the history
  44. qtest/migration-test.c: Add postcopy tests with compress enabled

    Add postcopy tests with compress enabled to ensure nothing breaks
    with the refactoring in the next commits.
    
    preempt+compress is blocked, so no test needed for that case.
    
    Signed-off-by: Lukas Straub <lukasstraub2@web.de>
    Reviewed-by: Juan Quintela <quintela@redhat.com>
    Signed-off-by: Juan Quintela <quintela@redhat.com>
    Lukey3332 authored and Juan Quintela committed Apr 28, 2023
    Copy the full SHA
    94c3c8d View commit details
    Browse the repository at this point in the history
  45. ram.c: Let the compress threads return a CompressResult enum

    This will be used in the next commits to move save_page_header()
    out of compress code.
    
    Signed-off-by: Lukas Straub <lukasstraub2@web.de>
    Reviewed-by: Juan Quintela <quintela@redhat.com>
    Signed-off-by: Juan Quintela <quintela@redhat.com>
    Lukey3332 authored and Juan Quintela committed Apr 28, 2023
    Copy the full SHA
    280304a View commit details
    Browse the repository at this point in the history
  46. ram.c: Dont change param->block in the compress thread

    Instead introduce a extra parameter to trigger the compress thread.
    Now, when the compress thread is done, we know what RAMBlock and
    offset it did compress.
    
    This will be used in the next commits to move save_page_header()
    out of compress code.
    
    Signed-off-by: Lukas Straub <lukasstraub2@web.de>
    Reviewed-by: Juan Quintela <quintela@redhat.com>
    Signed-off-by: Juan Quintela <quintela@redhat.com>
    Lukey3332 authored and Juan Quintela committed Apr 28, 2023
    Copy the full SHA
    7ab0eb0 View commit details
    Browse the repository at this point in the history
  47. ram.c: Reset result after sending queued data

    And take the param->mutex lock for the whole section to ensure
    thread-safety.
    Now, it is explicitly clear if there is no queued data to send.
    Before, this was handled by param->file stream being empty and thus
    qemu_put_qemu_file() not sending anything.
    
    This will be used in the next commits to move save_page_header()
    out of compress code.
    
    Signed-off-by: Lukas Straub <lukasstraub2@web.de>
    Reviewed-by: Juan Quintela <quintela@redhat.com>
    Signed-off-by: Juan Quintela <quintela@redhat.com>
    Lukey3332 authored and Juan Quintela committed Apr 28, 2023
    Copy the full SHA
    7fe37c4 View commit details
    Browse the repository at this point in the history
  48. ram.c: Do not call save_page_header() from compress threads

    save_page_header() accesses several global variables, so calling it
    from multiple threads is pretty ugly.
    
    Instead, call save_page_header() before writing out the compressed
    data from the compress buffer to the migration stream.
    
    This also makes the core compress code more independend from ram.c.
    
    Signed-off-by: Lukas Straub <lukasstraub2@web.de>
    Reviewed-by: Juan Quintela <quintela@redhat.com>
    Signed-off-by: Juan Quintela <quintela@redhat.com>
    Lukey3332 authored and Juan Quintela committed Apr 28, 2023
    Copy the full SHA
    b4be604 View commit details
    Browse the repository at this point in the history
  49. ram.c: Call update_compress_thread_counts from compress_send_queued_data

    This makes the core compress code more independend from ram.c.
    
    Signed-off-by: Lukas Straub <lukasstraub2@web.de>
    Reviewed-by: Juan Quintela <quintela@redhat.com>
    Signed-off-by: Juan Quintela <quintela@redhat.com>
    Lukey3332 authored and Juan Quintela committed Apr 28, 2023
    Copy the full SHA
    85f44f9 View commit details
    Browse the repository at this point in the history
  50. ram.c: Remove last ram.c dependency from the core compress code

    Make compression interfaces take send_queued_data() as an argument.
    Remove save_page_use_compression() from flush_compressed_data().
    
    This removes the last ram.c dependency from the core compress code.
    
    Signed-off-by: Lukas Straub <lukasstraub2@web.de>
    Reviewed-by: Juan Quintela <quintela@redhat.com>
    Signed-off-by: Juan Quintela <quintela@redhat.com>
    Lukey3332 authored and Juan Quintela committed Apr 28, 2023
    Copy the full SHA
    9b1efb4 View commit details
    Browse the repository at this point in the history