<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bwlp/qemu.git/block/vxhs.c, branch spice_video_codecs</title>
<subtitle>Experimental fork of QEMU with video encoding patches</subtitle>
<id>https://git.openslx.org/bwlp/qemu.git/atom/block/vxhs.c?h=spice_video_codecs</id>
<link rel='self' href='https://git.openslx.org/bwlp/qemu.git/atom/block/vxhs.c?h=spice_video_codecs'/>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/'/>
<updated>2020-07-17T12:20:57+00:00</updated>
<entry>
<title>Remove VXHS block device</title>
<updated>2020-07-17T12:20:57+00:00</updated>
<author>
<name>Marc-André Lureau</name>
</author>
<published>2020-07-11T06:59:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=a08464521ccb302a24c7785f50ce32473904136c'/>
<id>urn:sha1:a08464521ccb302a24c7785f50ce32473904136c</id>
<content type='text'>
The vxhs code doesn't compile since v2.12.0. There's no point in fixing
and then adding CI for a config that our users have demonstrated that
they do not use; better to just remove it.

Signed-off-by: Marc-André Lureau &lt;marcandre.lureau@redhat.com&gt;
Reviewed-by: Markus Armbruster &lt;armbru@redhat.com&gt;
Message-Id: &lt;20200711065926.2204721-1-marcandre.lureau@redhat.com&gt;
Signed-off-by: Kevin Wolf &lt;kwolf@redhat.com&gt;
</content>
</entry>
<entry>
<title>error: Reduce unnecessary error propagation</title>
<updated>2020-07-10T13:18:08+00:00</updated>
<author>
<name>Markus Armbruster</name>
</author>
<published>2020-07-07T16:06:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=a5f9b9df252d0dfb407178ef4c3769f78a64b2ff'/>
<id>urn:sha1:a5f9b9df252d0dfb407178ef4c3769f78a64b2ff</id>
<content type='text'>
When all we do with an Error we receive into a local variable is
propagating to somewhere else, we can just as well receive it there
right away, even when we need to keep error_propagate() for other
error paths.

Signed-off-by: Markus Armbruster &lt;armbru@redhat.com&gt;
Reviewed-by: Eric Blake &lt;eblake@redhat.com&gt;
Message-Id: &lt;20200707160613.848843-38-armbru@redhat.com&gt;
</content>
</entry>
<entry>
<title>error: Avoid unnecessary error_propagate() after error_setg()</title>
<updated>2020-07-10T13:18:08+00:00</updated>
<author>
<name>Markus Armbruster</name>
</author>
<published>2020-07-07T16:06:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=dcfe480544eef72d666cb1695624449e2c22da2d'/>
<id>urn:sha1:dcfe480544eef72d666cb1695624449e2c22da2d</id>
<content type='text'>
Replace

    error_setg(&amp;err, ...);
    error_propagate(errp, err);

by

    error_setg(errp, ...);

Related pattern:

    if (...) {
        error_setg(&amp;err, ...);
        goto out;
    }
    ...
 out:
    error_propagate(errp, err);
    return;

When all paths to label out are that way, replace by

    if (...) {
        error_setg(errp, ...);
        return;
    }

and delete the label along with the error_propagate().

When we have at most one other path that actually needs to propagate,
and maybe one at the end that where propagation is unnecessary, e.g.

    foo(..., &amp;err);
    if (err) {
        goto out;
    }
    ...
    bar(..., &amp;err);
 out:
    error_propagate(errp, err);
    return;

move the error_propagate() to where it's needed, like

    if (...) {
        foo(..., &amp;err);
        error_propagate(errp, err);
        return;
    }
    ...
    bar(..., errp);
    return;

and transform the error_setg() as above.

In some places, the transformation results in obviously unnecessary
error_propagate().  The next few commits will eliminate them.

Bonus: the elimination of gotos will make later patches in this series
easier to review.

Candidates for conversion tracked down with this Coccinelle script:

    @@
    identifier err, errp;
    expression list args;
    @@
    -    error_setg(&amp;err, args);
    +    error_setg(errp, args);
         ... when != err
         error_propagate(errp, err);

Signed-off-by: Markus Armbruster &lt;armbru@redhat.com&gt;
Reviewed-by: Eric Blake &lt;eblake@redhat.com&gt;
Message-Id: &lt;20200707160613.848843-34-armbru@redhat.com&gt;
</content>
</entry>
<entry>
<title>qemu-option: Use returned bool to check for failure</title>
<updated>2020-07-10T13:17:35+00:00</updated>
<author>
<name>Markus Armbruster</name>
</author>
<published>2020-07-07T16:05:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=235e59cf03ed75d0ce96c97343194ed11c146231'/>
<id>urn:sha1:235e59cf03ed75d0ce96c97343194ed11c146231</id>
<content type='text'>
The previous commit enables conversion of

    foo(..., &amp;err);
    if (err) {
        ...
    }

to

    if (!foo(..., &amp;err)) {
        ...
    }

for QemuOpts functions that now return true / false on success /
error.  Coccinelle script:

    @@
    identifier fun = {
        opts_do_parse, parse_option_bool, parse_option_number,
        parse_option_size, qemu_opt_parse, qemu_opt_rename, qemu_opt_set,
        qemu_opt_set_bool, qemu_opt_set_number, qemu_opts_absorb_qdict,
        qemu_opts_do_parse, qemu_opts_from_qdict_entry, qemu_opts_set,
        qemu_opts_validate
    };
    expression list args, args2;
    typedef Error;
    Error *err;
    @@
    -    fun(args, &amp;err, args2);
    -    if (err)
    +    if (!fun(args, &amp;err, args2))
         {
             ...
         }

A few line breaks tidied up manually.

Signed-off-by: Markus Armbruster &lt;armbru@redhat.com&gt;
Reviewed-by: Eric Blake &lt;eblake@redhat.com&gt;
Reviewed-by: Vladimir Sementsov-Ogievskiy &lt;vsementsov@virtuozzo.com&gt;
Message-Id: &lt;20200707160613.848843-15-armbru@redhat.com&gt;
[Conflict with commit 0b6786a9c1 "block/amend: refactor qcow2 amend
options" resolved by rerunning Coccinelle on master's version]
</content>
</entry>
<entry>
<title>replay: add BH oneshot event for block layer</title>
<updated>2019-10-14T15:12:48+00:00</updated>
<author>
<name>Pavel Dovgalyuk</name>
</author>
<published>2019-09-17T11:58:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=e4ec5ad464e48ab8d978b4dd8aacd05c1c4a87cc'/>
<id>urn:sha1:e4ec5ad464e48ab8d978b4dd8aacd05c1c4a87cc</id>
<content type='text'>
Replay is capable of recording normal BH events, but sometimes
there are single use callbacks scheduled with aio_bh_schedule_oneshot
function. This patch enables recording and replaying such callbacks.
Block layer uses these events for calling the completion function.
Replaying these calls makes the execution deterministic.

Signed-off-by: Pavel Dovgalyuk &lt;Pavel.Dovgaluk@ispras.ru&gt;
Acked-by: Kevin Wolf &lt;kwolf@redhat.com&gt;
Signed-off-by: Kevin Wolf &lt;kwolf@redhat.com&gt;
</content>
</entry>
<entry>
<title>Include qemu/module.h where needed, drop it from qemu-common.h</title>
<updated>2019-06-12T11:18:33+00:00</updated>
<author>
<name>Markus Armbruster</name>
</author>
<published>2019-05-23T14:35:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=0b8fa32f551e863bb548a11394239239270dd3dc'/>
<id>urn:sha1:0b8fa32f551e863bb548a11394239239270dd3dc</id>
<content type='text'>
Signed-off-by: Markus Armbruster &lt;armbru@redhat.com&gt;
Message-Id: &lt;20190523143508.25387-4-armbru@redhat.com&gt;
[Rebased with conflicts resolved automatically, except for
hw/usb/dev-hub.c hw/misc/exynos4210_rng.c hw/misc/bcm2835_rng.c
hw/misc/aspeed_scu.c hw/display/virtio-vga.c hw/arm/stm32f205_soc.c;
ui/cocoa.m fixed up]
</content>
</entry>
<entry>
<title>block: Add strong_runtime_opts to BlockDriver</title>
<updated>2019-02-25T14:11:27+00:00</updated>
<author>
<name>Max Reitz</name>
</author>
<published>2019-02-01T19:29:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=2654267cc163083f4fb9a6d719468d9dd1bea455'/>
<id>urn:sha1:2654267cc163083f4fb9a6d719468d9dd1bea455</id>
<content type='text'>
This new field can be set by block drivers to list the runtime options
they accept that may influence the contents of the respective BDS. As of
a follow-up patch, this list will be used by the common
bdrv_refresh_filename() implementation to decide which options to put
into BDS.full_open_options (and consequently whether a JSON filename has
to be created), thus freeing the drivers of having to implement that
logic themselves.

Additionally, this patch adds the field to all of the block drivers that
need it and sets it accordingly.

Signed-off-by: Max Reitz &lt;mreitz@redhat.com&gt;
Reviewed-by: Alberto Garcia &lt;berto@igalia.com&gt;
Message-id: 20190201192935.18394-22-mreitz@redhat.com
Signed-off-by: Max Reitz &lt;mreitz@redhat.com&gt;
</content>
</entry>
<entry>
<title>block: Add block-specific QDict header</title>
<updated>2018-06-15T12:49:44+00:00</updated>
<author>
<name>Max Reitz</name>
</author>
<published>2018-06-14T19:14:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=609f45ea9507fc1603eaeda7f5066b99beac6721'/>
<id>urn:sha1:609f45ea9507fc1603eaeda7f5066b99beac6721</id>
<content type='text'>
There are numerous QDict functions that have been introduced for and are
used only by the block layer.  Move their declarations into an own
header file to reflect that.

While qdict_extract_subqdict() is in fact used outside of the block
layer (in util/qemu-config.c), it is still a function related very
closely to how the block layer works with nested QDicts, namely by
sometimes flattening them.  Therefore, its declaration is put into this
header as well and util/qemu-config.c includes it with a comment stating
exactly which function it needs.

Suggested-by: Markus Armbruster &lt;armbru@redhat.com&gt;
Signed-off-by: Max Reitz &lt;mreitz@redhat.com&gt;
Message-Id: &lt;20180509165530.29561-7-mreitz@redhat.com&gt;
[Copyright note tweaked, superfluous includes dropped]
Signed-off-by: Markus Armbruster &lt;armbru@redhat.com&gt;
Reviewed-by: Kevin Wolf &lt;kwolf@redhat.com&gt;
Signed-off-by: Kevin Wolf &lt;kwolf@redhat.com&gt;
</content>
</entry>
<entry>
<title>vxhs: Switch to byte-based callbacks</title>
<updated>2018-05-15T14:11:41+00:00</updated>
<author>
<name>Eric Blake</name>
</author>
<published>2018-04-24T19:25:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=918889b291dfb8f55d537e01ecbb082d27c2737a'/>
<id>urn:sha1:918889b291dfb8f55d537e01ecbb082d27c2737a</id>
<content type='text'>
We are gradually moving away from sector-based interfaces, towards
byte-based.  Make the change for the last few sector-based callbacks
in the vxhs driver.

Note that the driver was already using byte-based calls for
performing actual I/O, so this just gets rid of a round trip
of scaling; however, as I don't know if VxHS is tolerant of
non-sector AIO operations, I went with the conservative approach
of adding .bdrv_refresh_limits to override the block layer
defaults back to the pre-patch value of 512.

Signed-off-by: Eric Blake &lt;eblake@redhat.com&gt;
Signed-off-by: Kevin Wolf &lt;kwolf@redhat.com&gt;
</content>
</entry>
<entry>
<title>qobject: Replace qobject_incref/QINCREF qobject_decref/QDECREF</title>
<updated>2018-05-04T06:27:53+00:00</updated>
<author>
<name>Marc-André Lureau</name>
</author>
<published>2018-04-19T15:01:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.openslx.org/bwlp/qemu.git/commit/?id=cb3e7f08aeaab0ab13e629ce8496dca150a449ba'/>
<id>urn:sha1:cb3e7f08aeaab0ab13e629ce8496dca150a449ba</id>
<content type='text'>
Now that we can safely call QOBJECT() on QObject * as well as its
subtypes, we can have macros qobject_ref() / qobject_unref() that work
everywhere instead of having to use QINCREF() / QDECREF() for QObject
and qobject_incref() / qobject_decref() for its subtypes.

The replacement is mechanical, except I broke a long line, and added a
cast in monitor_qmp_cleanup_req_queue_locked().  Unlike
qobject_decref(), qobject_unref() doesn't accept void *.

Note that the new macros evaluate their argument exactly once, thus no
need to shout them.

Signed-off-by: Marc-André Lureau &lt;marcandre.lureau@redhat.com&gt;
Reviewed-by: Eric Blake &lt;eblake@redhat.com&gt;
Message-Id: &lt;20180419150145.24795-4-marcandre.lureau@redhat.com&gt;
Reviewed-by: Markus Armbruster &lt;armbru@redhat.com&gt;
[Rebased, semantic conflict resolved, commit message improved]
Signed-off-by: Markus Armbruster &lt;armbru@redhat.com&gt;
</content>
</entry>
</feed>
