From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 61CF3C433EF for ; Thu, 7 Jul 2022 15:57:04 +0000 (UTC) Received: from localhost ([::1]:51006 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o9TsF-0005kF-2k for qemu-devel@archiver.kernel.org; Thu, 07 Jul 2022 11:57:03 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37954) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o9Tol-0003Om-14 for qemu-devel@nongnu.org; Thu, 07 Jul 2022 11:53:27 -0400 Received: from mail-wr1-x433.google.com ([2a00:1450:4864:20::433]:46712) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1o9Tog-00028U-0D for qemu-devel@nongnu.org; Thu, 07 Jul 2022 11:53:26 -0400 Received: by mail-wr1-x433.google.com with SMTP id v16so15490464wrd.13 for ; Thu, 07 Jul 2022 08:53:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=references:user-agent:from:to:cc:subject:date:in-reply-to :message-id:mime-version:content-transfer-encoding; bh=hxtK3Y+6i5itKycyY06Vq22zJvaNydAhsXpeIG/gbEI=; b=PLcSlGZERcVWHigxDOLQTQGlXbkiC4AFFHKTwEWbYFOmBThNFB2NyLslUw+3ZpzqD1 IomqmOcQVszuRW/FDCm/qzU40LLZIrhIb6g0bcK8QJh7idmrrpWLXUAhincddh8VwAlB RivlMpDgXVxOKvF975PwYCQn2PbNGZJhwCpvI7y3cHaodgKGLO5ikaNJkYKQtVCsihIy xWumuhjtTS1vMYd1GVarpsJsiW669dDHyMnecHo3L7AXKIIruCUPKTgqLgoZJXQEBq08 Kou9iiceXW13Cef50IJAf51YArDMYAVAtuF7a/ZYoZkMS2+48SN4iD0EgrRwWIcTE7ui x0XA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:references:user-agent:from:to:cc:subject:date :in-reply-to:message-id:mime-version:content-transfer-encoding; bh=hxtK3Y+6i5itKycyY06Vq22zJvaNydAhsXpeIG/gbEI=; b=gYnF9cbntyWo/P62YraR53tVNt6zEQ6ln4m8VfyAXHk5n+7kA/oKP7tWYakyONtEV3 uA0K3LmOxLzq+QObAIsOSGl6xm6egsYWEEf52c9L6jeEzI9kJNhuHut6944UVCU6tLue 4gar96vJUsfnsYY3mxLr2HOqDbi47nz3qE+oJUklGMg///JA9kmVTrwYMUSLG4ob9l+x H160vBHTnph36ysagP8bQ0uRhgK9+H4odgjgAoYDvu029Ar3OzabSCYI8kE0TybQJ8tE CqR1gN/MUvhBRGLod93NOS2vuP1hd+dwLCpgF22A7ilqSuZLqgDBLVjgQijsku1614IB lVgA== X-Gm-Message-State: AJIora/UO5vhb74WLYN9GqCOOnCwAtbTh7afLMn7oHaUKouKrk+ZJa9Q Qi0c10Aw40nIeyBXR/lBlSJ42A== X-Google-Smtp-Source: AGRyM1t8rUUrjx0tjhg7gZfgQUibSsD4SlF6uo795Ulz6d3pyxtvZsKTOGuDlRibWmKVZ7DOOPt7Pw== X-Received: by 2002:a05:6000:2a4:b0:21d:8646:37f6 with SMTP id l4-20020a05600002a400b0021d864637f6mr4015252wry.661.1657209199123; Thu, 07 Jul 2022 08:53:19 -0700 (PDT) Received: from zen.linaroharston ([51.148.130.216]) by smtp.gmail.com with ESMTPSA id bq25-20020a5d5a19000000b0021d6d74a0ecsm10391071wrb.96.2022.07.07.08.53.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Jul 2022 08:53:17 -0700 (PDT) Received: from zen (localhost [127.0.0.1]) by zen.linaroharston (Postfix) with ESMTP id 0CBBC1FFB7; Thu, 7 Jul 2022 16:53:17 +0100 (BST) References: <20220705095421.2455041-1-armbru@redhat.com> User-agent: mu4e 1.7.27; emacs 28.1.90 From: Alex =?utf-8?Q?Benn=C3=A9e?= To: Markus Armbruster Cc: kwolf@redhat.com, hreitz@redhat.com, peter.maydell@linaro.org, qemu-devel@nongnu.org Subject: Re: [RFC PATCH] qobject: Rewrite implementation of QDict for in-order traversal Date: Thu, 07 Jul 2022 16:52:13 +0100 In-reply-to: <20220705095421.2455041-1-armbru@redhat.com> Message-ID: <87v8s8j4wj.fsf@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Received-SPF: pass client-ip=2a00:1450:4864:20::433; envelope-from=alex.bennee@linaro.org; helo=mail-wr1-x433.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" Markus Armbruster writes: > QDict is implemented as a simple hash table of fixed size. Observe: > > * Slow for large n. Not sure this matters. > > * A QDict with n entries takes 4120 + n * 32 bytes on my box. Wastes > space for small n, which is a common case. > > * Order of traversal depends on the hash function and on insertion > order, because it iterates first over buckets, then collision > chains. > > * Special code ensures qdict_size() takes constant time. > > Replace the hash table by a linked list. Observe: > > * Even slower for large n. Might be bad enough to matter. > > * A QDict with n entries takes 32 + n * 24 bytes. > > * Traversal is in insertion order. > > * qdict_size() is linear in the number of entries. > > This is an experiment. Do not commit to master as is. Did you consider just using a straight array? What is the usual size of a QDict - how many entries do you expect to scale to? > The change of traversal order affects expected test output. I updated > only the tests covered by "make check" so far. I expect some more to > hide under tests/qemu-iotests/. > > Signed-off-by: Markus Armbruster > --- > include/qapi/qmp/qdict.h | 15 +- > qobject/qdict.c | 104 +-- > tests/unit/check-qdict.c | 2 +- > tests/unit/check-qobject.c | 2 +- > tests/qemu-iotests/043.out | 22 +- > tests/qemu-iotests/060.out | 16 +- > tests/qemu-iotests/061.out | 52 +- > tests/qemu-iotests/071.out | 4 +- > tests/qemu-iotests/099.out | 4 +- > tests/qemu-iotests/108.out | 14 +- > tests/qemu-iotests/117.out | 2 +- > tests/qemu-iotests/120.out | 2 +- > tests/qemu-iotests/127.out | 20 +- > tests/qemu-iotests/140.out | 4 +- > tests/qemu-iotests/141.out | 76 +-- > tests/qemu-iotests/143.out | 2 +- > tests/qemu-iotests/156.out | 20 +- > tests/qemu-iotests/161.out | 28 +- > tests/qemu-iotests/176.out | 16 +- > tests/qemu-iotests/184.out | 170 ++--- > tests/qemu-iotests/186.out | 82 +-- > tests/qemu-iotests/190.out | 4 +- > tests/qemu-iotests/191.out | 868 +++++++++++++------------- > tests/qemu-iotests/195.out | 4 +- > tests/qemu-iotests/229.out | 14 +- > tests/qemu-iotests/244.out | 12 +- > tests/qemu-iotests/249.out | 18 +- > tests/qemu-iotests/tests/qsd-jobs.out | 8 +- > 28 files changed, 776 insertions(+), 809 deletions(-) > > diff --git a/include/qapi/qmp/qdict.h b/include/qapi/qmp/qdict.h > index 82e90fc072..cf5c602286 100644 > --- a/include/qapi/qmp/qdict.h > +++ b/include/qapi/qmp/qdict.h > @@ -16,8 +16,7 @@ > #include "qapi/qmp/qobject.h" > #include "qemu/queue.h" >=20=20 > -#define QDICT_BUCKET_MAX 512 > - > +#if 0 > typedef struct QDictEntry { > char *key; > QObject *value; > @@ -29,6 +28,18 @@ struct QDict { > size_t size; > QLIST_HEAD(,QDictEntry) table[QDICT_BUCKET_MAX]; > }; > +#else > +typedef struct QDictEntry { > + char *key; > + QObject *value; > + QSIMPLEQ_ENTRY(QDictEntry) next; > +} QDictEntry; > + > +struct QDict { > + struct QObjectBase_ base; > + QSIMPLEQ_HEAD(, QDictEntry) entries; > +}; > +#endif >=20=20 > void qdict_unref(QDict *q); >=20=20 > diff --git a/qobject/qdict.c b/qobject/qdict.c > index 8faff230d3..444608cbc4 100644 > --- a/qobject/qdict.c > +++ b/qobject/qdict.c > @@ -29,27 +29,11 @@ QDict *qdict_new(void) >=20=20 > qdict =3D g_malloc0(sizeof(*qdict)); > qobject_init(QOBJECT(qdict), QTYPE_QDICT); > + QSIMPLEQ_INIT(&qdict->entries); >=20=20 > return qdict; > } >=20=20 > -/** > - * tdb_hash(): based on the hash algorithm from gdbm, via tdb > - * (from module-init-tools) > - */ > -static unsigned int tdb_hash(const char *name) > -{ > - unsigned value; /* Used to compute the hash value. */ > - unsigned i; /* Used to cycle through random values. */ > - > - /* Set the initial value from the key size. */ > - for (value =3D 0x238F13AF * strlen(name), i =3D 0; name[i]; i++) { > - value =3D (value + (((const unsigned char *)name)[i] << (i * 5 %= 24))); > - } > - > - return (1103515243 * value + 12345); > -} > - > /** > * alloc_entry(): allocate a new QDictEntry > */ > @@ -88,15 +72,14 @@ const char *qdict_entry_key(const QDictEntry *entry) > /** > * qdict_find(): List lookup function > */ > -static QDictEntry *qdict_find(const QDict *qdict, > - const char *key, unsigned int bucket) > +static QDictEntry *qdict_find(const QDict *qdict, const char *key) > { > QDictEntry *entry; >=20=20 > - QLIST_FOREACH(entry, &qdict->table[bucket], next) > - if (!strcmp(entry->key, key)) { > + QSIMPLEQ_FOREACH(entry, &qdict->entries, next) { > + if (!strcmp(key, entry->key)) > return entry; > - } > + } >=20=20 > return NULL; > } > @@ -114,11 +97,8 @@ static QDictEntry *qdict_find(const QDict *qdict, > */ > void qdict_put_obj(QDict *qdict, const char *key, QObject *value) > { > - unsigned int bucket; > - QDictEntry *entry; > + QDictEntry *entry =3D qdict_find(qdict, key); >=20=20 > - bucket =3D tdb_hash(key) % QDICT_BUCKET_MAX; > - entry =3D qdict_find(qdict, key, bucket); > if (entry) { > /* replace key's value */ > qobject_unref(entry->value); > @@ -126,8 +106,7 @@ void qdict_put_obj(QDict *qdict, const char *key, QOb= ject *value) > } else { > /* allocate a new entry */ > entry =3D alloc_entry(key, value); > - QLIST_INSERT_HEAD(&qdict->table[bucket], entry, next); > - qdict->size++; > + QSIMPLEQ_INSERT_TAIL(&qdict->entries, entry, next); > } > } >=20=20 > @@ -161,8 +140,8 @@ QObject *qdict_get(const QDict *qdict, const char *ke= y) > { > QDictEntry *entry; >=20=20 > - entry =3D qdict_find(qdict, key, tdb_hash(key) % QDICT_BUCKET_MAX); > - return (entry =3D=3D NULL ? NULL : entry->value); > + entry =3D qdict_find(qdict, key); > + return entry ? entry->value : NULL; > } >=20=20 > /** > @@ -172,8 +151,7 @@ QObject *qdict_get(const QDict *qdict, const char *ke= y) > */ > int qdict_haskey(const QDict *qdict, const char *key) > { > - unsigned int bucket =3D tdb_hash(key) % QDICT_BUCKET_MAX; > - return (qdict_find(qdict, key, bucket) =3D=3D NULL ? 0 : 1); > + return qdict_find(qdict, key) !=3D NULL; > } >=20=20 > /** > @@ -181,7 +159,14 @@ int qdict_haskey(const QDict *qdict, const char *key) > */ > size_t qdict_size(const QDict *qdict) > { > - return qdict->size; > + QDictEntry *entry; > + size_t sz =3D 0; > + > + QSIMPLEQ_FOREACH(entry, &qdict->entries, next) { > + sz++; > + } > + > + return sz; > } >=20=20 > /** > @@ -301,25 +286,13 @@ const char *qdict_get_try_str(const QDict *qdict, c= onst char *key) > return qstr ? qstring_get_str(qstr) : NULL; > } >=20=20 > -static QDictEntry *qdict_next_entry(const QDict *qdict, int first_bucket) > -{ > - int i; > - > - for (i =3D first_bucket; i < QDICT_BUCKET_MAX; i++) { > - if (!QLIST_EMPTY(&qdict->table[i])) { > - return QLIST_FIRST(&qdict->table[i]); > - } > - } > - > - return NULL; > -} > - > /** > * qdict_first(): Return first qdict entry for iteration. > */ > const QDictEntry *qdict_first(const QDict *qdict) > { > - return qdict_next_entry(qdict, 0); > + return QSIMPLEQ_FIRST(&qdict->entries); > + > } >=20=20 > /** > @@ -327,15 +300,7 @@ const QDictEntry *qdict_first(const QDict *qdict) > */ > const QDictEntry *qdict_next(const QDict *qdict, const QDictEntry *entry) > { > - QDictEntry *ret; > - > - ret =3D QLIST_NEXT(entry, next); > - if (!ret) { > - unsigned int bucket =3D tdb_hash(entry->key) % QDICT_BUCKET_MAX; > - ret =3D qdict_next_entry(qdict, bucket + 1); > - } > - > - return ret; > + return QSIMPLEQ_NEXT(entry, next); > } >=20=20 > /** > @@ -346,14 +311,11 @@ QDict *qdict_clone_shallow(const QDict *src) > { > QDict *dest; > QDictEntry *entry; > - int i; >=20=20 > dest =3D qdict_new(); >=20=20 > - for (i =3D 0; i < QDICT_BUCKET_MAX; i++) { > - QLIST_FOREACH(entry, &src->table[i], next) { > - qdict_put_obj(dest, entry->key, qobject_ref(entry->value)); > - } > + QSIMPLEQ_FOREACH(entry, &src->entries, next) { > + qdict_put_obj(dest, entry->key, qobject_ref(entry->value)); > } >=20=20 > return dest; > @@ -380,13 +342,11 @@ static void qentry_destroy(QDictEntry *e) > */ > void qdict_del(QDict *qdict, const char *key) > { > - QDictEntry *entry; > + QDictEntry *entry =3D qdict_find(qdict, key); >=20=20 > - entry =3D qdict_find(qdict, key, tdb_hash(key) % QDICT_BUCKET_MAX); > if (entry) { > - QLIST_REMOVE(entry, next); > + QSIMPLEQ_REMOVE(&qdict->entries, entry, QDictEntry, next); > qentry_destroy(entry); > - qdict->size--; > } > } >=20=20 > @@ -424,20 +384,16 @@ bool qdict_is_equal(const QObject *x, const QObject= *y) > */ > void qdict_destroy_obj(QObject *obj) > { > - int i; > QDict *qdict; >=20=20 > assert(obj !=3D NULL); > qdict =3D qobject_to(QDict, obj); >=20=20 > - for (i =3D 0; i < QDICT_BUCKET_MAX; i++) { > - QDictEntry *entry =3D QLIST_FIRST(&qdict->table[i]); > - while (entry) { > - QDictEntry *tmp =3D QLIST_NEXT(entry, next); > - QLIST_REMOVE(entry, next); > - qentry_destroy(entry); > - entry =3D tmp; > - } > + while (!QSIMPLEQ_EMPTY(&qdict->entries)) { > + QDictEntry *entry =3D QSIMPLEQ_FIRST(&qdict->entries); > + > + QSIMPLEQ_REMOVE_HEAD(&qdict->entries, next); > + qentry_destroy(entry); > } >=20=20 > g_free(qdict); > diff --git a/tests/unit/check-qdict.c b/tests/unit/check-qdict.c > index b5efa859b0..d7d3df5efb 100644 > --- a/tests/unit/check-qdict.c > +++ b/tests/unit/check-qdict.c > @@ -47,7 +47,7 @@ static void qdict_put_obj_test(void) > qdict_put_int(qdict, "", num); >=20=20 > g_assert(qdict_size(qdict) =3D=3D 1); > - ent =3D QLIST_FIRST(&qdict->table[12345 % QDICT_BUCKET_MAX]); > + ent =3D QSIMPLEQ_FIRST(&qdict->entries); > qn =3D qobject_to(QNum, ent->value); > g_assert_cmpint(qnum_get_int(qn), =3D=3D, num); >=20=20 > diff --git a/tests/unit/check-qobject.c b/tests/unit/check-qobject.c > index 022b7c74fe..0416762f80 100644 > --- a/tests/unit/check-qobject.c > +++ b/tests/unit/check-qobject.c > @@ -192,10 +192,10 @@ static void qobject_is_equal_dict_test(void) > qdict_put_int(dict_0, "baz", 3); > qdict_put_null(dict_0, "null"); >=20=20 > - qdict_put_int(dict_1, "f.o", 1); > qdict_put_int(dict_1, "bar", 2); > qdict_put_int(dict_1, "baz", 3); > qdict_put_null(dict_1, "null"); > + qdict_put_int(dict_1, "f.o", 1); >=20=20 > qdict_put_int(dict_different_key, "F.o", 1); > qdict_put_int(dict_different_key, "bar", 2); > diff --git a/tests/qemu-iotests/043.out b/tests/qemu-iotests/043.out > index 63ecb21816..d8fcff24e9 100644 > --- a/tests/qemu-iotests/043.out > +++ b/tests/qemu-iotests/043.out > @@ -40,29 +40,29 @@ cluster_size: 65536 > =3D=3D finite chain of length 3 (json) =3D=3D > [ > { > - "virtual-size": 134217728, > "filename": "TEST_DIR/t.IMGFMT", > - "cluster-size": 65536, > "format": "IMGFMT", > - "full-backing-filename": "TEST_DIR/t.IMGFMT.2.base", > + "dirty-flag": false, > + "virtual-size": 134217728, > + "cluster-size": 65536, > "backing-filename": "TEST_DIR/t.IMGFMT.2.base", > - "dirty-flag": false > + "full-backing-filename": "TEST_DIR/t.IMGFMT.2.base", > }, > { > - "virtual-size": 134217728, > "filename": "TEST_DIR/t.IMGFMT.2.base", > - "cluster-size": 65536, > "format": "IMGFMT", > - "full-backing-filename": "TEST_DIR/t.IMGFMT.1.base", > + "dirty-flag": false, > + "virtual-size": 134217728, > + "cluster-size": 65536, > "backing-filename": "TEST_DIR/t.IMGFMT.1.base", > - "dirty-flag": false > + "full-backing-filename": "TEST_DIR/t.IMGFMT.1.base", > }, > { > - "virtual-size": 134217728, > "filename": "TEST_DIR/t.IMGFMT.1.base", > - "cluster-size": 65536, > "format": "IMGFMT", > - "dirty-flag": false > + "dirty-flag": false, > + "virtual-size": 134217728, > + "cluster-size": 65536, > } > ] > *** done > diff --git a/tests/qemu-iotests/060.out b/tests/qemu-iotests/060.out > index 329977d9b9..f654a6579c 100644 > --- a/tests/qemu-iotests/060.out > +++ b/tests/qemu-iotests/060.out > @@ -17,11 +17,11 @@ virtual size: 64 MiB (67108864 bytes) > cluster_size: 65536 > Format specific information: > compat: 1.1 > - compression type: COMPRESSION_TYPE > - lazy refcounts: false > - refcount bits: 16 > - corrupt: true > extended l2: false > + lazy refcounts: false > + corrupt: true > + refcount bits: 16 > + compression type: COMPRESSION_TYPE > qemu-io: can't open device TEST_DIR/t.IMGFMT: IMGFMT: Image is corrupt; = cannot be opened read/write > no file open, try 'help open' > read 512/512 bytes at offset 0 > @@ -418,11 +418,11 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size= =3D67108864 > qcow2: Marking image as corrupt: Preventing invalid write on metadata (o= verlaps with refcount table); further corruption events will be suppressed > QMP_VERSION > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "BLOCK_IMAGE_CORRUPTED", "data": {"device": "none0", "msg": "Preventing= invalid write on metadata (overlaps with refcount table)", "offset": 65536= , "node-name": "drive", "fatal": true, "size": 65536}} > +{"event": "BLOCK_IMAGE_CORRUPTED", "timestamp": {"seconds": TIMESTAMP, = "microseconds": TIMESTAMP}, "data": {"device": "none0", "node-name": "driv= e", "msg": "Preventing invalid write on metadata (overlaps with refcount ta= ble)", "offset": 65536, "size": 65536, "fatal": true}} > write failed: Input/output error > {"return": ""} > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} > +{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds= ": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}} >=20=20 > =3D=3D=3D Testing incoming inactive corrupted image =3D=3D=3D >=20=20 > @@ -430,10 +430,10 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size= =3D67108864 > QMP_VERSION > {"return": {}} > qcow2: Image is corrupt: L2 table offset 0x2a2a2a00 unaligned (L1 index:= 0); further non-fatal corruption events will be suppressed > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "BLOCK_IMAGE_CORRUPTED", "data": {"device": "", "msg": "L2 table offset= 0x2a2a2a00 unaligned (L1 index: 0)", "node-name": "drive", "fatal": false}} > +{"event": "BLOCK_IMAGE_CORRUPTED", "timestamp": {"seconds": TIMESTAMP, = "microseconds": TIMESTAMP}, "data": {"device": "", "node-name": "drive", "= msg": "L2 table offset 0x2a2a2a00 unaligned (L1 index: 0)", "fatal": false}} > {"return": ""} > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} > +{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds= ": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}} >=20=20 > corrupt: false > *** done > diff --git a/tests/qemu-iotests/061.out b/tests/qemu-iotests/061.out > index 139fc68177..6a05d67378 100644 > --- a/tests/qemu-iotests/061.out > +++ b/tests/qemu-iotests/061.out > @@ -497,7 +497,7 @@ wrote 65536/65536 bytes at offset 2147483648 > 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > wrote 65536/65536 bytes at offset 3221225472 > 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > - (0.00/100%) > (12.50/100%) > (25.00/100%) > (37.50/100%) > (50.00/100%) > (62.50/100%) > (75.00/100%) > (87.50/100%) > (100.00/100%) > (100.00/100%) > + (0.00/100%) > (12.50/100%) > (25.00/100%) > (37.50/100%) > (50.00/100%) > (62.50/100%) > (75.00/100%) > (87.50/100%) > (100.00/100%) > (100.00/100%) > No errors were found on the image. >=20=20 > =3D=3D=3D Testing progress report with snapshot =3D=3D=3D > @@ -512,7 +512,7 @@ wrote 65536/65536 bytes at offset 2147483648 > 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > wrote 65536/65536 bytes at offset 3221225472 > 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > - (0.00/100%) > (6.25/100%) > (12.50/100%) > (18.75/100%) > (25.00/100%) > (31.25/100%) > (37.50/100%) > (43.75/100%) > (50.00/100%) > (56.25/100%) > (62.50/100%) > (68.75/100%) > (75.00/100%) > (81.25/100%) > (87.50/100%) > (93.75/100%) > (100.00/100%) > (100.00/100%) > + (0.00/100%) > (6.25/100%) > (12.50/100%) > (18.75/100%) > (25.00/100%) > (31.25/100%) > (37.50/100%) > (43.75/100%) > (50.00/100%) > (56.25/100%) > (62.50/100%) > (68.75/100%) > (75.00/100%) > (81.25/100%) > (87.50/100%) > (93.75/100%) > (100.00/100%) > (100.00/100%) > No errors were found on the image. >=20=20 > =3D=3D=3D Testing version downgrade with external data file =3D=3D=3D > @@ -525,13 +525,13 @@ virtual size: 64 MiB (67108864 bytes) > cluster_size: 65536 > Format specific information: > compat: 1.1 > - compression type: COMPRESSION_TYPE > - lazy refcounts: false > - refcount bits: 16 > data file: TEST_DIR/t.IMGFMT.data > data file raw: false > - corrupt: false > extended l2: false > + lazy refcounts: false > + corrupt: false > + refcount bits: 16 > + compression type: COMPRESSION_TYPE > No errors were found on the image. >=20=20 > =3D=3D=3D Testing version downgrade with extended L2 entries =3D=3D=3D > @@ -552,13 +552,13 @@ virtual size: 64 MiB (67108864 bytes) > cluster_size: 65536 > Format specific information: > compat: 1.1 > - compression type: COMPRESSION_TYPE > - lazy refcounts: false > - refcount bits: 16 > data file: foo > data file raw: false > - corrupt: false > extended l2: false > + lazy refcounts: false > + corrupt: false > + refcount bits: 16 > + compression type: COMPRESSION_TYPE >=20=20 > qemu-img: Could not open 'TEST_DIR/t.IMGFMT': 'data-file' is required fo= r this image > image: TEST_DIR/t.IMGFMT > @@ -567,12 +567,12 @@ virtual size: 64 MiB (67108864 bytes) > cluster_size: 65536 > Format specific information: > compat: 1.1 > - compression type: COMPRESSION_TYPE > - lazy refcounts: false > - refcount bits: 16 > data file raw: false > - corrupt: false > extended l2: false > + lazy refcounts: false > + corrupt: false > + refcount bits: 16 > + compression type: COMPRESSION_TYPE >=20=20 > =3D=3D=3D Clearing and setting data-file-raw =3D=3D=3D >=20=20 > @@ -583,13 +583,13 @@ virtual size: 64 MiB (67108864 bytes) > cluster_size: 65536 > Format specific information: > compat: 1.1 > - compression type: COMPRESSION_TYPE > - lazy refcounts: false > - refcount bits: 16 > data file: TEST_DIR/t.IMGFMT.data > data file raw: true > - corrupt: false > extended l2: false > + lazy refcounts: false > + corrupt: false > + refcount bits: 16 > + compression type: COMPRESSION_TYPE > No errors were found on the image. > image: TEST_DIR/t.IMGFMT > file format: IMGFMT > @@ -597,13 +597,13 @@ virtual size: 64 MiB (67108864 bytes) > cluster_size: 65536 > Format specific information: > compat: 1.1 > - compression type: COMPRESSION_TYPE > - lazy refcounts: false > - refcount bits: 16 > data file: TEST_DIR/t.IMGFMT.data > data file raw: false > - corrupt: false > extended l2: false > + lazy refcounts: false > + corrupt: false > + refcount bits: 16 > + compression type: COMPRESSION_TYPE > No errors were found on the image. > qemu-img: data-file-raw cannot be set on existing images > image: TEST_DIR/t.IMGFMT > @@ -612,12 +612,12 @@ virtual size: 64 MiB (67108864 bytes) > cluster_size: 65536 > Format specific information: > compat: 1.1 > - compression type: COMPRESSION_TYPE > - lazy refcounts: false > - refcount bits: 16 > data file: TEST_DIR/t.IMGFMT.data > data file raw: false > - corrupt: false > extended l2: false > + lazy refcounts: false > + corrupt: false > + refcount bits: 16 > + compression type: COMPRESSION_TYPE > No errors were found on the image. > *** done > diff --git a/tests/qemu-iotests/071.out b/tests/qemu-iotests/071.out > index bca0c02f5c..ff00da1ad1 100644 > --- a/tests/qemu-iotests/071.out > +++ b/tests/qemu-iotests/071.out > @@ -46,7 +46,7 @@ QMP_VERSION > read failed: Input/output error > {"return": ""} > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} > +{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds= ": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}} >=20=20 >=20=20 > =3D=3D=3D Testing blkverify on existing block device =3D=3D=3D > @@ -85,7 +85,7 @@ wrote 512/512 bytes at offset 0 > read failed: Input/output error > {"return": ""} > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} > +{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds= ": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}} > QEMU_PROG: Failed to flush the L2 table cache: Input/output error > QEMU_PROG: Failed to flush the refcount block cache: Input/output error >=20=20 > diff --git a/tests/qemu-iotests/099.out b/tests/qemu-iotests/099.out > index 8cce627529..5726466bc6 100644 > --- a/tests/qemu-iotests/099.out > +++ b/tests/qemu-iotests/099.out > @@ -12,11 +12,11 @@ blkverify:TEST_DIR/t.IMGFMT.compare:TEST_DIR/t.IMGFMT >=20=20 > =3D=3D=3D Testing JSON filename for blkdebug =3D=3D=3D >=20=20 > -json:{"driver": "IMGFMT", "file": {"image": {"driver": "file", "filename= ": "TEST_DIR/t.IMGFMT"}, "driver": "blkdebug", "inject-error.0.event": "l1_= update"}} > +json:{"driver": "IMGFMT", "file": {"driver": "blkdebug", "inject-error.0= .event": "l1_update", "image": {"driver": "file", "filename": "TEST_DIR/t.I= MGFMT"}}} >=20=20 > =3D=3D=3D Testing indirectly enforced JSON filename =3D=3D=3D >=20=20 > -json:{"driver": "raw", "file": {"test": {"driver": "IMGFMT", "file": {"i= mage": {"driver": "file", "filename": "TEST_DIR/t.IMGFMT"}, "driver": "blkd= ebug", "inject-error.0.event": "l1_update"}}, "driver": "blkverify", "raw":= {"driver": "file", "filename": "TEST_DIR/t.IMGFMT.compare"}}} > +json:{"driver": "raw", "file": {"driver": "blkverify", "test": {"driver"= : "IMGFMT", "file": {"driver": "blkdebug", "inject-error.0.event": "l1_upda= te", "image": {"driver": "file", "filename": "TEST_DIR/t.IMGFMT"}}}, "raw":= {"driver": "file", "filename": "TEST_DIR/t.IMGFMT.compare"}}} >=20=20 > =3D=3D=3D Testing plain filename for blkdebug =3D=3D=3D >=20=20 > diff --git a/tests/qemu-iotests/108.out b/tests/qemu-iotests/108.out > index b5401d788d..faaabbcdf3 100644 > --- a/tests/qemu-iotests/108.out > +++ b/tests/qemu-iotests/108.out > @@ -163,18 +163,18 @@ OK: Reftable is where we expect it > "size": 67108864, > "cluster-size": 512 > } } } > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "create"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "create"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "create", "status": "created"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "create", "status": "running"}} > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "waiting", "id": "create"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "pending", "id": "create"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "create"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "create", "status": "waiting"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "create", "status": "pending"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "create", "status": "concluded"}} > { "execute": "job-dismiss", "arguments": { "id": "create" } } > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "create"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "create", "status": "null"}} > {"return": {}} > { "execute": "quit" } > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} > +{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds= ": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}} >=20=20 > wrote 65536/65536 bytes at offset 0 > 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > diff --git a/tests/qemu-iotests/117.out b/tests/qemu-iotests/117.out > index 735ffd25c6..015c971197 100644 > --- a/tests/qemu-iotests/117.out > +++ b/tests/qemu-iotests/117.out > @@ -19,7 +19,7 @@ wrote 65536/65536 bytes at offset 0 > {"return": ""} > { 'execute': 'quit' } > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} > +{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds= ": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}} > No errors were found on the image. > read 65536/65536 bytes at offset 0 > 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > diff --git a/tests/qemu-iotests/120.out b/tests/qemu-iotests/120.out > index 0744c1f136..d677c72599 100644 > --- a/tests/qemu-iotests/120.out > +++ b/tests/qemu-iotests/120.out > @@ -6,7 +6,7 @@ wrote 65536/65536 bytes at offset 0 > 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > {"return": ""} > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} > +{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds= ": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}} > read 65536/65536 bytes at offset 0 > 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > read 65536/65536 bytes at offset 0 > diff --git a/tests/qemu-iotests/127.out b/tests/qemu-iotests/127.out > index 1685c4850a..863832d162 100644 > --- a/tests/qemu-iotests/127.out > +++ b/tests/qemu-iotests/127.out > @@ -14,20 +14,20 @@ wrote 42/42 bytes at offset 0 > 'mode': 'existing', > 'sync': 'top' > } } > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "mirror"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "mirror"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "mirror", "status": "created"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "mirror", "status": "running"}} > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "ready", "id": "mirror"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "BLOCK_JOB_READY", "data": {"device": "mirror", "len": 65536, "offset":= 65536, "speed": 0, "type": "mirror"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "mirror", "status": "ready"}} > +{"event": "BLOCK_JOB_READY", "timestamp": {"seconds": TIMESTAMP, "micro= seconds": TIMESTAMP}, "data": {"type": "mirror", "device": "mirror", "len"= : 65536, "offset": 65536, "speed": 0}} > { 'execute': 'block-job-complete', > 'arguments': { 'device': 'mirror' } } > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "waiting", "id": "mirror"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "pending", "id": "mirror"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "BLOCK_JOB_COMPLETED", "data": {"device": "mirror", "len": 65536, "offs= et": 65536, "speed": 0, "type": "mirror"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "mirror", "status": "waiting"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "mirror", "status": "pending"}} > +{"event": "BLOCK_JOB_COMPLETED", "timestamp": {"seconds": TIMESTAMP, "m= icroseconds": TIMESTAMP}, "data": {"type": "mirror", "device": "mirror", "= len": 65536, "offset": 65536, "speed": 0}} > { 'execute': 'quit' } > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "mirror"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "mirror"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "mirror", "status": "concluded"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "mirror", "status": "null"}} > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} > +{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds= ": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}} > *** done > diff --git a/tests/qemu-iotests/140.out b/tests/qemu-iotests/140.out > index 312f76d5da..586b64b24e 100644 > --- a/tests/qemu-iotests/140.out > +++ b/tests/qemu-iotests/140.out > @@ -15,10 +15,10 @@ read 65536/65536 bytes at offset 0 > 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > { 'execute': 'eject', > 'arguments': { 'device': 'drv' }} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "BLOCK_EXPORT_DELETED", "data": {"id": "drv"}} > +{"event": "BLOCK_EXPORT_DELETED", "timestamp": {"seconds": TIMESTAMP, "= microseconds": TIMESTAMP}, "data": {"id": "drv"}} > qemu-io: can't open device nbd+unix:///drv?socket=3DSOCK_DIR/nbd: Reques= ted export not available > server reported: export 'drv' not present > { 'execute': 'quit' } > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} > +{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds= ": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}} > *** done > diff --git a/tests/qemu-iotests/141.out b/tests/qemu-iotests/141.out > index 63203d9944..4d8c7b598c 100644 > --- a/tests/qemu-iotests/141.out > +++ b/tests/qemu-iotests/141.out > @@ -23,20 +23,20 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1= 048576 backing_file=3DTEST_DIR/m. > 'format': 'IMGFMT', > 'sync': 'none'}} > Formatting 'TEST_DIR/o.IMGFMT', fmt=3DIMGFMT size=3D1048576 backing_file= =3DTEST_DIR/t.IMGFMT backing_fmt=3DIMGFMT > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "job0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "job0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "paused", "id": "job0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "job0"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "created"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "running"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "paused"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "running"}} > {'execute': 'blockdev-del', > 'arguments': {'node-name': 'drv0'}} > {"error": {"class": "GenericError", "desc": "Node 'drv0' is busy: node i= s used as backing hd of 'NODE_NAME'"}} > {'execute': 'block-job-cancel', > 'arguments': {'device': 'job0'}} > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "aborting", "id": "job0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "BLOCK_JOB_CANCELLED", "data": {"device": "job0", "len": 1048576, "offs= et": 0, "speed": 0, "type": "backup"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "job0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "job0"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "aborting"}} > +{"event": "BLOCK_JOB_CANCELLED", "timestamp": {"seconds": TIMESTAMP, "m= icroseconds": TIMESTAMP}, "data": {"type": "backup", "device": "job0", "le= n": 1048576, "offset": 0, "speed": 0}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "concluded"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "null"}} > {'execute': 'blockdev-del', > 'arguments': {'node-name': 'drv0'}} > {"return": {}} > @@ -59,21 +59,21 @@ Formatting 'TEST_DIR/o.IMGFMT', fmt=3DIMGFMT size=3D1= 048576 backing_file=3DTEST_DIR/t. > 'format': 'IMGFMT', > 'sync': 'none'}} > Formatting 'TEST_DIR/o.IMGFMT', fmt=3DIMGFMT size=3D1048576 backing_file= =3DTEST_DIR/t.IMGFMT backing_fmt=3DIMGFMT > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "job0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "job0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "ready", "id": "job0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "BLOCK_JOB_READY", "data": {"device": "job0", "len": 0, "offset": 0, "s= peed": 0, "type": "mirror"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "created"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "running"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "ready"}} > +{"event": "BLOCK_JOB_READY", "timestamp": {"seconds": TIMESTAMP, "micro= seconds": TIMESTAMP}, "data": {"type": "mirror", "device": "job0", "len": = 0, "offset": 0, "speed": 0}} > {'execute': 'blockdev-del', > 'arguments': {'node-name': 'drv0'}} > {"error": {"class": "GenericError", "desc": "Node 'drv0' is busy: block = device is in use by block job: mirror"}} > {'execute': 'block-job-cancel', > 'arguments': {'device': 'job0'}} > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "waiting", "id": "job0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "pending", "id": "job0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "BLOCK_JOB_COMPLETED", "data": {"device": "job0", "len": 0, "offset": 0= , "speed": 0, "type": "mirror"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "job0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "job0"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "waiting"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "pending"}} > +{"event": "BLOCK_JOB_COMPLETED", "timestamp": {"seconds": TIMESTAMP, "m= icroseconds": TIMESTAMP}, "data": {"type": "mirror", "device": "job0", "le= n": 0, "offset": 0, "speed": 0}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "concluded"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "null"}} > {'execute': 'blockdev-del', > 'arguments': {'node-name': 'drv0'}} > {"return": {}} > @@ -91,21 +91,21 @@ Formatting 'TEST_DIR/o.IMGFMT', fmt=3DIMGFMT size=3D1= 048576 backing_file=3DTEST_DIR/t. > {"return": {}} > {'execute': 'block-commit', > 'arguments': {'job-id': 'job0', 'device': 'drv0'}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "job0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "job0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "ready", "id": "job0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "BLOCK_JOB_READY", "data": {"device": "job0", "len": 0, "offset": 0, "s= peed": 0, "type": "commit"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "created"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "running"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "ready"}} > +{"event": "BLOCK_JOB_READY", "timestamp": {"seconds": TIMESTAMP, "micro= seconds": TIMESTAMP}, "data": {"type": "commit", "device": "job0", "len": = 0, "offset": 0, "speed": 0}} > {'execute': 'blockdev-del', > 'arguments': {'node-name': 'drv0'}} > {"error": {"class": "GenericError", "desc": "Node 'drv0' is busy: block = device is in use by block job: commit"}} > {'execute': 'block-job-cancel', > 'arguments': {'device': 'job0'}} > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "waiting", "id": "job0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "pending", "id": "job0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "BLOCK_JOB_COMPLETED", "data": {"device": "job0", "len": 0, "offset": 0= , "speed": 0, "type": "commit"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "job0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "job0"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "waiting"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "pending"}} > +{"event": "BLOCK_JOB_COMPLETED", "timestamp": {"seconds": TIMESTAMP, "m= icroseconds": TIMESTAMP}, "data": {"type": "commit", "device": "job0", "le= n": 0, "offset": 0, "speed": 0}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "concluded"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "null"}} > {'execute': 'blockdev-del', > 'arguments': {'node-name': 'drv0'}} > {"return": {}} > @@ -128,18 +128,18 @@ wrote 1048576/1048576 bytes at offset 0 > 'device': 'drv0', > 'top': 'TEST_DIR/m.IMGFMT', > 'speed': 1}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "job0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "job0"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "created"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "running"}} > {'execute': 'blockdev-del', > 'arguments': {'node-name': 'drv0'}} > {"error": {"class": "GenericError", "desc": "Node 'drv0' is busy: block = device is in use by block job: commit"}} > {'execute': 'block-job-cancel', > 'arguments': {'device': 'job0'}} > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "aborting", "id": "job0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "BLOCK_JOB_CANCELLED", "data": {"device": "job0", "len": 1048576, "offs= et": 524288, "speed": 1, "type": "commit"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "job0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "job0"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "aborting"}} > +{"event": "BLOCK_JOB_CANCELLED", "timestamp": {"seconds": TIMESTAMP, "m= icroseconds": TIMESTAMP}, "data": {"type": "commit", "device": "job0", "le= n": 1048576, "offset": 524288, "speed": 1}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "concluded"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "null"}} > {'execute': 'blockdev-del', > 'arguments': {'node-name': 'drv0'}} > {"return": {}} > @@ -161,18 +161,18 @@ wrote 1048576/1048576 bytes at offset 0 > 'arguments': {'job-id': 'job0', > 'device': 'drv0', > 'speed': 1}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "job0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "job0"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "created"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "running"}} > {'execute': 'blockdev-del', > 'arguments': {'node-name': 'drv0'}} > {"error": {"class": "GenericError", "desc": "Node 'drv0' is busy: block = device is in use by block job: stream"}} > {'execute': 'block-job-cancel', > 'arguments': {'device': 'job0'}} > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "aborting", "id": "job0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "BLOCK_JOB_CANCELLED", "data": {"device": "job0", "len": 1048576, "offs= et": 524288, "speed": 1, "type": "stream"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "job0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "job0"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "aborting"}} > +{"event": "BLOCK_JOB_CANCELLED", "timestamp": {"seconds": TIMESTAMP, "m= icroseconds": TIMESTAMP}, "data": {"type": "stream", "device": "job0", "le= n": 1048576, "offset": 524288, "speed": 1}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "concluded"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "null"}} > {'execute': 'blockdev-del', > 'arguments': {'node-name': 'drv0'}} > {"return": {}} > diff --git a/tests/qemu-iotests/143.out b/tests/qemu-iotests/143.out > index 9ec5888e0e..ec58b08e43 100644 > --- a/tests/qemu-iotests/143.out > +++ b/tests/qemu-iotests/143.out > @@ -11,5 +11,5 @@ qemu-io: can't open device nbd+unix:///aa--aa1?socket= =3DSOCK_DIR/nbd: Requested ex > server reported: export 'aa--aa...' not present > { 'execute': 'quit' } > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} > +{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds= ": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}} > *** done > diff --git a/tests/qemu-iotests/156.out b/tests/qemu-iotests/156.out > index 4a22f0c41a..bb01818fc7 100644 > --- a/tests/qemu-iotests/156.out > +++ b/tests/qemu-iotests/156.out > @@ -26,11 +26,11 @@ Formatting 'TEST_DIR/t.IMGFMT.target.overlay', fmt=3D= IMGFMT size=3D1048576 backing_f > 'target': 'TEST_DIR/t.IMGFMT.target.overlay', > 'mode': 'existing', > 'sync': 'top' } } > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "source"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "source"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "source", "status": "created"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "source", "status": "running"}} > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "ready", "id": "source"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "BLOCK_JOB_READY", "data": {"device": "source", "len": 131072, "offset"= : 131072, "speed": 0, "type": "mirror"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "source", "status": "ready"}} > +{"event": "BLOCK_JOB_READY", "timestamp": {"seconds": TIMESTAMP, "micro= seconds": TIMESTAMP}, "data": {"type": "mirror", "device": "source", "len"= : 131072, "offset": 131072, "speed": 0}} > { 'execute': 'human-monitor-command', > 'arguments': { 'command-line': > 'qemu-io source "write -P 4 192k 64k"' } } > @@ -40,11 +40,11 @@ wrote 65536/65536 bytes at offset 196608 > { 'execute': 'block-job-complete', > 'arguments': { 'device': 'source' } } > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "waiting", "id": "source"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "pending", "id": "source"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "BLOCK_JOB_COMPLETED", "data": {"device": "source", "len": 196608, "off= set": 196608, "speed": 0, "type": "mirror"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "source"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "source"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "source", "status": "waiting"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "source", "status": "pending"}} > +{"event": "BLOCK_JOB_COMPLETED", "timestamp": {"seconds": TIMESTAMP, "m= icroseconds": TIMESTAMP}, "data": {"type": "mirror", "device": "source", "= len": 196608, "offset": 196608, "speed": 0}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "source", "status": "concluded"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "source", "status": "null"}} >=20=20 > { 'execute': 'human-monitor-command', > 'arguments': { 'command-line': > @@ -73,7 +73,7 @@ read 65536/65536 bytes at offset 196608 >=20=20 > { 'execute': 'quit' } > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} > +{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds= ": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}} >=20=20 > read 65536/65536 bytes at offset 0 > 64 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > diff --git a/tests/qemu-iotests/161.out b/tests/qemu-iotests/161.out > index 6cc285afcf..c62657639a 100644 > --- a/tests/qemu-iotests/161.out > +++ b/tests/qemu-iotests/161.out > @@ -18,17 +18,17 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1= 048576 backing_file=3DTEST_DIR/t. > {"return": {}} > { 'execute': 'block-stream', 'arguments': { 'device': 'none0', > 'base': 'TEST_DIR/t.IMGFMT.base' } } > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "none0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "none0"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "none0", "status": "created"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "none0", "status": "running"}} > {"return": {}} > { 'execute': 'human-monitor-command', > 'arguments': { 'command-line': > 'qemu-io none0 "reopen -o backing.detect-zeroes=3D= on"' } } > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "waiting", "id": "none0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "pending", "id": "none0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "BLOCK_JOB_COMPLETED", "data": {"device": "none0", "len": 1048576, "off= set": 1048576, "speed": 0, "type": "stream"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "none0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "none0"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "none0", "status": "waiting"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "none0", "status": "pending"}} > +{"event": "BLOCK_JOB_COMPLETED", "timestamp": {"seconds": TIMESTAMP, "m= icroseconds": TIMESTAMP}, "data": {"type": "stream", "device": "none0", "l= en": 1048576, "offset": 1048576, "speed": 0}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "none0", "status": "concluded"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "none0", "status": "null"}} > {"return": ""} >=20=20 > *** Commit and then change an option on the backing file > @@ -40,16 +40,16 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1= 048576 backing_file=3DTEST_DIR/t. > {"return": {}} > { 'execute': 'block-commit', 'arguments': { 'device': 'none0', > 'top': 'TEST_DIR/t.IMGFMT.int' } } > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "none0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "none0"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "none0", "status": "created"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "none0", "status": "running"}} > {"return": {}} > { 'execute': 'human-monitor-command', > 'arguments': { 'command-line': > 'qemu-io none0 "reopen -o backing.detect-zeroes=3D= on"' } } > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "waiting", "id": "none0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "pending", "id": "none0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "BLOCK_JOB_COMPLETED", "data": {"device": "none0", "len": 1048576, "off= set": 1048576, "speed": 0, "type": "commit"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "none0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "none0"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "none0", "status": "waiting"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "none0", "status": "pending"}} > +{"event": "BLOCK_JOB_COMPLETED", "timestamp": {"seconds": TIMESTAMP, "m= icroseconds": TIMESTAMP}, "data": {"type": "commit", "device": "none0", "l= en": 1048576, "offset": 1048576, "speed": 0}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "none0", "status": "concluded"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "none0", "status": "null"}} > {"return": ""} > *** done > diff --git a/tests/qemu-iotests/176.out b/tests/qemu-iotests/176.out > index 9d09b60452..b46b743850 100644 > --- a/tests/qemu-iotests/176.out > +++ b/tests/qemu-iotests/176.out > @@ -170,7 +170,7 @@ QMP_VERSION > {"return": {}} > {"return": {}} > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} > +{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds= ": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}} > wrote 196608/196608 bytes at offset 2147287040 > 192 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > wrote 131072/131072 bytes at offset 2147352576 > @@ -207,7 +207,7 @@ QMP_VERSION > {"return": {}} > {"return": {"sha256": HASH}} > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} > +{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds= ": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}} >=20=20 > =3D=3D=3D Test pass bitmap.1 =3D=3D=3D >=20=20 > @@ -219,7 +219,7 @@ QMP_VERSION > {"return": {}} > {"return": {}} > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} > +{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds= ": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}} > wrote 196608/196608 bytes at offset 2147287040 > 192 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > wrote 131072/131072 bytes at offset 2147352576 > @@ -257,7 +257,7 @@ QMP_VERSION > {"return": {}} > {"return": {"sha256": HASH}} > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} > +{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds= ": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}} >=20=20 > =3D=3D=3D Test pass bitmap.2 =3D=3D=3D >=20=20 > @@ -269,7 +269,7 @@ QMP_VERSION > {"return": {}} > {"return": {}} > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} > +{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds= ": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}} > wrote 196608/196608 bytes at offset 2147287040 > 192 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > wrote 131072/131072 bytes at offset 2147352576 > @@ -307,7 +307,7 @@ QMP_VERSION > {"return": {}} > {"return": {"sha256": HASH}} > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} > +{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds= ": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}} >=20=20 > =3D=3D=3D Test pass bitmap.3 =3D=3D=3D >=20=20 > @@ -319,7 +319,7 @@ QMP_VERSION > {"return": {}} > {"return": {}} > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} > +{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds= ": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}} > wrote 196608/196608 bytes at offset 2147287040 > 192 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) > wrote 131072/131072 bytes at offset 2147352576 > @@ -354,5 +354,5 @@ QMP_VERSION > {"return": {}} > {"return": {"sha256": HASH}} > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}} > +{"event": "SHUTDOWN", "timestamp": {"seconds": TIMESTAMP, "microseconds= ": TIMESTAMP}, "data": {"guest": false, "reason": "host-qmp-quit"}} > *** done > diff --git a/tests/qemu-iotests/184.out b/tests/qemu-iotests/184.out > index 77e5489d65..93e33ba20a 100644 > --- a/tests/qemu-iotests/184.out > +++ b/tests/qemu-iotests/184.out > @@ -24,64 +24,64 @@ Testing: > { > "return": [ > { > - "iops_rd": 0, > + "file": "json:{\"driver\": \"throttle\", \"throttle-group\":= \"group0\", \"file\": {\"driver\": \"null-co\"}}", > + "node-name": "throttle0", > + "ro": false, > + "drv": "throttle", > + "backing_file_depth": 1, > + "encrypted": false, > "detect_zeroes": "off", > + "bps": 0, > + "bps_rd": 0, > + "bps_wr": 0, > + "iops": 0, > + "iops_rd": 0, > + "iops_wr": 0, > "image": { > + "filename": "json:{\"driver\": \"throttle\", \"throttle-= group\": \"group0\", \"file\": {\"driver\": \"null-co\"}}", > + "format": "throttle", > + "actual-size": 0, > + "virtual-size": 1073741824, > "backing-image": { > - "virtual-size": 1073741824, > "filename": "null-co://", > "format": "null-co", > - "actual-size": 0 > - }, > - "virtual-size": 1073741824, > - "filename": "json:{\"throttle-group\": \"group0\", \"dri= ver\": \"throttle\", \"file\": {\"driver\": \"null-co\"}}", > - "format": "throttle", > - "actual-size": 0 > + "actual-size": 0, > + "virtual-size": 1073741824 > + } > }, > - "iops_wr": 0, > - "ro": false, > - "node-name": "throttle0", > - "backing_file_depth": 1, > - "drv": "throttle", > - "iops": 0, > - "bps_wr": 0, > - "write_threshold": 0, > - "encrypted": false, > - "bps": 0, > - "bps_rd": 0, > "cache": { > - "no-flush": false, > + "writeback": true, > "direct": false, > - "writeback": true > + "no-flush": false > }, > - "file": "json:{\"throttle-group\": \"group0\", \"driver\": \= "throttle\", \"file\": {\"driver\": \"null-co\"}}" > + "write_threshold": 0 > }, > { > - "iops_rd": 0, > - "detect_zeroes": "off", > - "image": { > - "virtual-size": 1073741824, > - "filename": "null-co://", > - "format": "null-co", > - "actual-size": 0 > - }, > - "iops_wr": 0, > - "ro": false, > + "file": "null-co://", > "node-name": "disk0", > - "backing_file_depth": 0, > + "ro": false, > "drv": "null-co", > - "iops": 0, > - "bps_wr": 0, > - "write_threshold": 0, > + "backing_file_depth": 0, > "encrypted": false, > + "detect_zeroes": "off", > "bps": 0, > "bps_rd": 0, > - "cache": { > - "no-flush": false, > - "direct": false, > - "writeback": true > + "bps_wr": 0, > + "iops": 0, > + "iops_rd": 0, > + "iops_wr": 0, > + "image": { > + "filename": "null-co://", > + "format": "null-co", > + "actual-size": 0, > + "virtual-size": 1073741824 > }, > - "file": "null-co://" > + "cache": { > + "writeback": true, > + "direct": false, > + "no-flush": false > + }, > + "write_threshold": 0 > } > ] > } > @@ -94,11 +94,11 @@ Testing: > } > } > { > + "event": "SHUTDOWN", > "timestamp": { > "seconds": TIMESTAMP, > "microseconds": TIMESTAMP > }, > - "event": "SHUTDOWN", > "data": { > "guest": false, > "reason": "host-qmp-quit" > @@ -121,52 +121,25 @@ Testing: > } > { > "return": { > - "bps-read-max-length": 1, > - "iops-read-max-length": 1, > - "bps-read-max": 0, > - "bps-total": 0, > - "iops-total-max-length": 1, > "iops-total": 1000, > - "iops-write-max": 0, > - "bps-write": 0, > - "bps-total-max": 0, > - "bps-write-max": 0, > - "iops-size": 0, > - "iops-read": 0, > - "iops-write-max-length": 1, > - "iops-write": 0, > - "bps-total-max-length": 1, > - "iops-read-max": 0, > - "bps-read": 0, > - "bps-write-max-length": 1, > - "iops-total-max": 0 > - } > -} > -{ > - "return": { > - } > -} > -{ > - "return": { > - "bps-read-max-length": 1, > - "iops-read-max-length": 1, > - "bps-read-max": 0, > - "bps-total": 0, > + "iops-total-max": 0, > "iops-total-max-length": 1, > - "iops-total": 0, > - "iops-write-max": 0, > - "bps-write": 0, > - "bps-total-max": 0, > - "bps-write-max": 0, > - "iops-size": 0, > "iops-read": 0, > - "iops-write-max-length": 1, > - "iops-write": 0, > - "bps-total-max-length": 1, > "iops-read-max": 0, > + "iops-read-max-length": 1, > + "iops-write": 0, > + "iops-write-max": 0, > + "iops-write-max-length": 1, > + "bps-total": 0, > + "bps-total-max": 0, > + "bps-total-max-length": 1, > "bps-read": 0, > + "bps-read-max": 0, > + "bps-read-max-length": 1, > + "bps-write": 0, > + "bps-write-max": 0, > "bps-write-max-length": 1, > - "iops-total-max": 0 > + "iops-size": 0 > } > } > { > @@ -174,11 +147,38 @@ Testing: > } > } > { > + "return": { > + "iops-total": 0, > + "iops-total-max": 0, > + "iops-total-max-length": 1, > + "iops-read": 0, > + "iops-read-max": 0, > + "iops-read-max-length": 1, > + "iops-write": 0, > + "iops-write-max": 0, > + "iops-write-max-length": 1, > + "bps-total": 0, > + "bps-total-max": 0, > + "bps-total-max-length": 1, > + "bps-read": 0, > + "bps-read-max": 0, > + "bps-read-max-length": 1, > + "bps-write": 0, > + "bps-write-max": 0, > + "bps-write-max-length": 1, > + "iops-size": 0 > + } > +} > +{ > + "return": { > + } > +} > +{ > + "event": "SHUTDOWN", > "timestamp": { > "seconds": TIMESTAMP, > "microseconds": TIMESTAMP > }, > - "event": "SHUTDOWN", > "data": { > "guest": false, > "reason": "host-qmp-quit" > @@ -216,11 +216,11 @@ Testing: > } > } > { > + "event": "SHUTDOWN", > "timestamp": { > "seconds": TIMESTAMP, > "microseconds": TIMESTAMP > }, > - "event": "SHUTDOWN", > "data": { > "guest": false, > "reason": "host-qmp-quit" > @@ -252,11 +252,11 @@ Testing: > } > } > { > + "event": "SHUTDOWN", > "timestamp": { > "seconds": TIMESTAMP, > "microseconds": TIMESTAMP > }, > - "event": "SHUTDOWN", > "data": { > "guest": false, > "reason": "host-qmp-quit" > diff --git a/tests/qemu-iotests/186.out b/tests/qemu-iotests/186.out > index 01530040e5..12ea630222 100644 > --- a/tests/qemu-iotests/186.out > +++ b/tests/qemu-iotests/186.out > @@ -57,7 +57,7 @@ qdev_id: [not inserted] > Testing: -blockdev driver=3Dnull-co,read-zeroes=3Don,node-name=3Dnull -d= evice ide-hd,drive=3Dnull > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -null: json:{"read-zeroes": true, "driver": "null-co"} (null-co) > +null: json:{"driver": "null-co", "read-zeroes": true} (null-co) > Attached to: /machine/peripheral-anon/device[N] > Cache mode: writeback > (qemu) quit > @@ -65,7 +65,7 @@ null: json:{"read-zeroes": true, "driver": "null-co"} (= null-co) > Testing: -blockdev driver=3Dnull-co,read-zeroes=3Don,node-name=3Dnull -d= evice ide-hd,drive=3Dnull,id=3Dqdev_id > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -null: json:{"read-zeroes": true, "driver": "null-co"} (null-co) > +null: json:{"driver": "null-co", "read-zeroes": true} (null-co) > Attached to: qdev_id > Cache mode: writeback > (qemu) quit > @@ -73,7 +73,7 @@ null: json:{"read-zeroes": true, "driver": "null-co"} (= null-co) > Testing: -blockdev driver=3Dnull-co,read-zeroes=3Don,node-name=3Dnull -d= evice scsi-hd,drive=3Dnull > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -null: json:{"read-zeroes": true, "driver": "null-co"} (null-co) > +null: json:{"driver": "null-co", "read-zeroes": true} (null-co) > Attached to: /machine/peripheral-anon/device[N] > Cache mode: writeback > (qemu) quit > @@ -81,7 +81,7 @@ null: json:{"read-zeroes": true, "driver": "null-co"} (= null-co) > Testing: -blockdev driver=3Dnull-co,read-zeroes=3Don,node-name=3Dnull -d= evice scsi-hd,drive=3Dnull,id=3Dqdev_id > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -null: json:{"read-zeroes": true, "driver": "null-co"} (null-co) > +null: json:{"driver": "null-co", "read-zeroes": true} (null-co) > Attached to: qdev_id > Cache mode: writeback > (qemu) quit > @@ -89,7 +89,7 @@ null: json:{"read-zeroes": true, "driver": "null-co"} (= null-co) > Testing: -blockdev driver=3Dnull-co,read-zeroes=3Don,node-name=3Dnull -d= evice virtio-blk-pci,drive=3Dnull > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -null: json:{"read-zeroes": true, "driver": "null-co"} (null-co) > +null: json:{"driver": "null-co", "read-zeroes": true} (null-co) > Attached to: /machine/peripheral-anon/device[N]/virtio-backend > Cache mode: writeback > (qemu) quit > @@ -97,7 +97,7 @@ null: json:{"read-zeroes": true, "driver": "null-co"} (= null-co) > Testing: -blockdev driver=3Dnull-co,read-zeroes=3Don,node-name=3Dnull -d= evice virtio-blk-pci,drive=3Dnull,id=3Dqdev_id > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -null: json:{"read-zeroes": true, "driver": "null-co"} (null-co) > +null: json:{"driver": "null-co", "read-zeroes": true} (null-co) > Attached to: /machine/peripheral/qdev_id/virtio-backend > Cache mode: writeback > (qemu) quit > @@ -105,7 +105,7 @@ null: json:{"read-zeroes": true, "driver": "null-co"}= (null-co) > Testing: -blockdev driver=3Dnull-co,read-zeroes=3Don,node-name=3Dnull -d= evice floppy,drive=3Dnull > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -null: json:{"read-zeroes": true, "driver": "null-co"} (null-co) > +null: json:{"driver": "null-co", "read-zeroes": true} (null-co) > Attached to: /machine/peripheral-anon/device[N] > Removable device: not locked, tray closed > Cache mode: writeback > @@ -114,7 +114,7 @@ null: json:{"read-zeroes": true, "driver": "null-co"}= (null-co) > Testing: -blockdev driver=3Dnull-co,read-zeroes=3Don,node-name=3Dnull -d= evice floppy,drive=3Dnull,id=3Dqdev_id > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -null: json:{"read-zeroes": true, "driver": "null-co"} (null-co) > +null: json:{"driver": "null-co", "read-zeroes": true} (null-co) > Attached to: qdev_id > Removable device: not locked, tray closed > Cache mode: writeback > @@ -123,7 +123,7 @@ null: json:{"read-zeroes": true, "driver": "null-co"}= (null-co) > Testing: -blockdev driver=3Dnull-co,read-zeroes=3Don,node-name=3Dnull -d= evice ide-cd,drive=3Dnull > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -null: json:{"read-zeroes": true, "driver": "null-co"} (null-co) > +null: json:{"driver": "null-co", "read-zeroes": true} (null-co) > Attached to: /machine/peripheral-anon/device[N] > Removable device: not locked, tray closed > Cache mode: writeback > @@ -132,7 +132,7 @@ null: json:{"read-zeroes": true, "driver": "null-co"}= (null-co) > Testing: -blockdev driver=3Dnull-co,read-zeroes=3Don,node-name=3Dnull -d= evice ide-cd,drive=3Dnull,id=3Dqdev_id > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -null: json:{"read-zeroes": true, "driver": "null-co"} (null-co) > +null: json:{"driver": "null-co", "read-zeroes": true} (null-co) > Attached to: qdev_id > Removable device: not locked, tray closed > Cache mode: writeback > @@ -141,7 +141,7 @@ null: json:{"read-zeroes": true, "driver": "null-co"}= (null-co) > Testing: -blockdev driver=3Dnull-co,read-zeroes=3Don,node-name=3Dnull -d= evice scsi-cd,drive=3Dnull > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -null: json:{"read-zeroes": true, "driver": "null-co"} (null-co) > +null: json:{"driver": "null-co", "read-zeroes": true} (null-co) > Attached to: /machine/peripheral-anon/device[N] > Removable device: not locked, tray closed > Cache mode: writeback > @@ -150,7 +150,7 @@ null: json:{"read-zeroes": true, "driver": "null-co"}= (null-co) > Testing: -blockdev driver=3Dnull-co,read-zeroes=3Don,node-name=3Dnull -d= evice scsi-cd,drive=3Dnull,id=3Dqdev_id > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -null: json:{"read-zeroes": true, "driver": "null-co"} (null-co) > +null: json:{"driver": "null-co", "read-zeroes": true} (null-co) > Attached to: qdev_id > Removable device: not locked, tray closed > Cache mode: writeback > @@ -162,11 +162,11 @@ null: json:{"read-zeroes": true, "driver": "null-co= "} (null-co) > Testing: -drive if=3Dnone,driver=3Dnull-co,read-zeroes=3Don,node-name=3D= null -device ide-hd,drive=3Dnull,id=3Dqdev_id > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) > +none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co) > Removable device: not locked, tray closed > Cache mode: writeback >=20=20 > -null: json:{"read-zeroes": "on", "driver": "null-co"} (null-co) > +null: json:{"driver": "null-co", "read-zeroes": "on"} (null-co) > Attached to: qdev_id > Cache mode: writeback > (qemu) quit > @@ -174,11 +174,11 @@ null: json:{"read-zeroes": "on", "driver": "null-co= "} (null-co) > Testing: -drive if=3Dnone,driver=3Dnull-co,read-zeroes=3Don,node-name=3D= null -device scsi-hd,drive=3Dnull,id=3Dqdev_id > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) > +none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co) > Removable device: not locked, tray closed > Cache mode: writeback >=20=20 > -null: json:{"read-zeroes": "on", "driver": "null-co"} (null-co) > +null: json:{"driver": "null-co", "read-zeroes": "on"} (null-co) > Attached to: qdev_id > Cache mode: writeback > (qemu) quit > @@ -186,11 +186,11 @@ null: json:{"read-zeroes": "on", "driver": "null-co= "} (null-co) > Testing: -drive if=3Dnone,driver=3Dnull-co,read-zeroes=3Don,node-name=3D= null -device virtio-blk-pci,drive=3Dnull,id=3Dqdev_id > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) > +none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co) > Removable device: not locked, tray closed > Cache mode: writeback >=20=20 > -null: json:{"read-zeroes": "on", "driver": "null-co"} (null-co) > +null: json:{"driver": "null-co", "read-zeroes": "on"} (null-co) > Attached to: /machine/peripheral/qdev_id/virtio-backend > Cache mode: writeback > (qemu) quit > @@ -198,11 +198,11 @@ null: json:{"read-zeroes": "on", "driver": "null-co= "} (null-co) > Testing: -drive if=3Dnone,driver=3Dnull-co,read-zeroes=3Don,node-name=3D= null -device floppy,drive=3Dnull,id=3Dqdev_id > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) > +none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co) > Removable device: not locked, tray closed > Cache mode: writeback >=20=20 > -null: json:{"read-zeroes": "on", "driver": "null-co"} (null-co) > +null: json:{"driver": "null-co", "read-zeroes": "on"} (null-co) > Attached to: qdev_id > Removable device: not locked, tray closed > Cache mode: writeback > @@ -211,11 +211,11 @@ null: json:{"read-zeroes": "on", "driver": "null-co= "} (null-co) > Testing: -drive if=3Dnone,driver=3Dnull-co,read-zeroes=3Don,node-name=3D= null -device ide-cd,drive=3Dnull,id=3Dqdev_id > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) > +none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co) > Removable device: not locked, tray closed > Cache mode: writeback >=20=20 > -null: json:{"read-zeroes": "on", "driver": "null-co"} (null-co) > +null: json:{"driver": "null-co", "read-zeroes": "on"} (null-co) > Attached to: qdev_id > Removable device: not locked, tray closed > Cache mode: writeback > @@ -224,11 +224,11 @@ null: json:{"read-zeroes": "on", "driver": "null-co= "} (null-co) > Testing: -drive if=3Dnone,driver=3Dnull-co,read-zeroes=3Don,node-name=3D= null -device scsi-cd,drive=3Dnull,id=3Dqdev_id > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) > +none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co) > Removable device: not locked, tray closed > Cache mode: writeback >=20=20 > -null: json:{"read-zeroes": "on", "driver": "null-co"} (null-co) > +null: json:{"driver": "null-co", "read-zeroes": "on"} (null-co) > Attached to: qdev_id > Removable device: not locked, tray closed > Cache mode: writeback > @@ -240,7 +240,7 @@ null: json:{"read-zeroes": "on", "driver": "null-co"}= (null-co) > Testing: -drive if=3Dnone,driver=3Dnull-co,read-zeroes=3Don,node-name=3D= null -device ide-hd,drive=3Dnone0 > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) > +none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co) > Attached to: /machine/peripheral-anon/device[N] > Cache mode: writeback > (qemu) quit > @@ -248,7 +248,7 @@ none0 (null): json:{"read-zeroes": "on", "driver": "n= ull-co"} (null-co) > Testing: -drive if=3Dnone,driver=3Dnull-co,read-zeroes=3Don,node-name=3D= null -device ide-hd,drive=3Dnone0,id=3Dqdev_id > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) > +none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co) > Attached to: qdev_id > Cache mode: writeback > (qemu) quit > @@ -256,7 +256,7 @@ none0 (null): json:{"read-zeroes": "on", "driver": "n= ull-co"} (null-co) > Testing: -drive if=3Dnone,driver=3Dnull-co,read-zeroes=3Don,node-name=3D= null -device scsi-hd,drive=3Dnone0 > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) > +none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co) > Attached to: /machine/peripheral-anon/device[N] > Cache mode: writeback > (qemu) quit > @@ -264,7 +264,7 @@ none0 (null): json:{"read-zeroes": "on", "driver": "n= ull-co"} (null-co) > Testing: -drive if=3Dnone,driver=3Dnull-co,read-zeroes=3Don,node-name=3D= null -device scsi-hd,drive=3Dnone0,id=3Dqdev_id > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) > +none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co) > Attached to: qdev_id > Cache mode: writeback > (qemu) quit > @@ -272,7 +272,7 @@ none0 (null): json:{"read-zeroes": "on", "driver": "n= ull-co"} (null-co) > Testing: -drive if=3Dnone,driver=3Dnull-co,read-zeroes=3Don,node-name=3D= null -device virtio-blk-pci,drive=3Dnone0 > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) > +none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co) > Attached to: /machine/peripheral-anon/device[N]/virtio-backend > Cache mode: writeback > (qemu) quit > @@ -280,7 +280,7 @@ none0 (null): json:{"read-zeroes": "on", "driver": "n= ull-co"} (null-co) > Testing: -drive if=3Dnone,driver=3Dnull-co,read-zeroes=3Don,node-name=3D= null -device virtio-blk-pci,drive=3Dnone0,id=3Dqdev_id > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) > +none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co) > Attached to: /machine/peripheral/qdev_id/virtio-backend > Cache mode: writeback > (qemu) quit > @@ -288,7 +288,7 @@ none0 (null): json:{"read-zeroes": "on", "driver": "n= ull-co"} (null-co) > Testing: -drive if=3Dnone,driver=3Dnull-co,read-zeroes=3Don,node-name=3D= null -device floppy,drive=3Dnone0 > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) > +none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co) > Attached to: /machine/peripheral-anon/device[N] > Removable device: not locked, tray closed > Cache mode: writeback > @@ -297,7 +297,7 @@ none0 (null): json:{"read-zeroes": "on", "driver": "n= ull-co"} (null-co) > Testing: -drive if=3Dnone,driver=3Dnull-co,read-zeroes=3Don,node-name=3D= null -device floppy,drive=3Dnone0,id=3Dqdev_id > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) > +none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co) > Attached to: qdev_id > Removable device: not locked, tray closed > Cache mode: writeback > @@ -306,7 +306,7 @@ none0 (null): json:{"read-zeroes": "on", "driver": "n= ull-co"} (null-co) > Testing: -drive if=3Dnone,driver=3Dnull-co,read-zeroes=3Don,node-name=3D= null -device ide-cd,drive=3Dnone0 > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) > +none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co) > Attached to: /machine/peripheral-anon/device[N] > Removable device: not locked, tray closed > Cache mode: writeback > @@ -315,7 +315,7 @@ none0 (null): json:{"read-zeroes": "on", "driver": "n= ull-co"} (null-co) > Testing: -drive if=3Dnone,driver=3Dnull-co,read-zeroes=3Don,node-name=3D= null -device ide-cd,drive=3Dnone0,id=3Dqdev_id > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) > +none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co) > Attached to: qdev_id > Removable device: not locked, tray closed > Cache mode: writeback > @@ -324,7 +324,7 @@ none0 (null): json:{"read-zeroes": "on", "driver": "n= ull-co"} (null-co) > Testing: -drive if=3Dnone,driver=3Dnull-co,read-zeroes=3Don,node-name=3D= null -device scsi-cd,drive=3Dnone0 > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) > +none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co) > Attached to: /machine/peripheral-anon/device[N] > Removable device: not locked, tray closed > Cache mode: writeback > @@ -333,7 +333,7 @@ none0 (null): json:{"read-zeroes": "on", "driver": "n= ull-co"} (null-co) > Testing: -drive if=3Dnone,driver=3Dnull-co,read-zeroes=3Don,node-name=3D= null -device scsi-cd,drive=3Dnone0,id=3Dqdev_id > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -none0 (null): json:{"read-zeroes": "on", "driver": "null-co"} (null-co) > +none0 (null): json:{"driver": "null-co", "read-zeroes": "on"} (null-co) > Attached to: qdev_id > Removable device: not locked, tray closed > Cache mode: writeback > @@ -411,7 +411,7 @@ floppy0: [not inserted] > Testing: -drive if=3Dfloppy,driver=3Dnull-co,read-zeroes=3Don > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -floppy0 (NODE_NAME): json:{"read-zeroes": "on", "driver": "null-co"} (nu= ll-co) > +floppy0 (NODE_NAME): json:{"driver": "null-co", "read-zeroes": "on"} (nu= ll-co) > Attached to: /machine/unattached/device[N] > Removable device: not locked, tray closed > Cache mode: writeback > @@ -420,7 +420,7 @@ floppy0 (NODE_NAME): json:{"read-zeroes": "on", "driv= er": "null-co"} (null-co) > Testing: -drive if=3Dide,driver=3Dnull-co,read-zeroes=3Don > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -ide0-hd0 (NODE_NAME): json:{"read-zeroes": "on", "driver": "null-co"} (n= ull-co) > +ide0-hd0 (NODE_NAME): json:{"driver": "null-co", "read-zeroes": "on"} (n= ull-co) > Attached to: /machine/unattached/device[N] > Cache mode: writeback > (qemu) quit > @@ -436,7 +436,7 @@ ide0-cd0: [not inserted] > Testing: -drive if=3Dide,driver=3Dnull-co,read-zeroes=3Don,media=3Dcdrom > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -ide0-cd0 (NODE_NAME): json:{"read-zeroes": "on", "driver": "null-co"} (n= ull-co, read-only) > +ide0-cd0 (NODE_NAME): json:{"driver": "null-co", "read-zeroes": "on"} (n= ull-co, read-only) > Attached to: /machine/unattached/device[N] > Removable device: not locked, tray closed > Cache mode: writeback > @@ -445,7 +445,7 @@ ide0-cd0 (NODE_NAME): json:{"read-zeroes": "on", "dri= ver": "null-co"} (null-co, > Testing: -drive if=3Dvirtio,driver=3Dnull-co,read-zeroes=3Don > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -virtio0 (NODE_NAME): json:{"read-zeroes": "on", "driver": "null-co"} (nu= ll-co) > +virtio0 (NODE_NAME): json:{"driver": "null-co", "read-zeroes": "on"} (nu= ll-co) > Attached to: /machine/peripheral-anon/device[N]/virtio-backend > Cache mode: writeback > (qemu) quit > @@ -453,7 +453,7 @@ virtio0 (NODE_NAME): json:{"read-zeroes": "on", "driv= er": "null-co"} (null-co) > Testing: -drive if=3Dpflash,driver=3Dnull-co,read-zeroes=3Don,size=3D1M > QEMU X.Y.Z monitor - type 'help' for more information > (qemu) info block > -pflash0 (NODE_NAME): json:{"read-zeroes": "on", "driver": "null-co", "si= ze": "1M"} (null-co) > +pflash0 (NODE_NAME): json:{"driver": "null-co", "size": "1M", "read-zero= es": "on"} (null-co) > Attached to: /machine/system.flash0 > Cache mode: writeback > (qemu) quit > diff --git a/tests/qemu-iotests/190.out b/tests/qemu-iotests/190.out > index ed9d8214eb..2acea9982c 100644 > --- a/tests/qemu-iotests/190.out > +++ b/tests/qemu-iotests/190.out > @@ -29,8 +29,8 @@ bitmaps size: 537198592 >=20=20 > expected bitmap 545259520 > { > - "bitmaps": 545259520, > "required": 18874368, > - "fully-allocated": 2199042129920 > + "fully-allocated": 2199042129920, > + "bitmaps": 545259520 > } > *** done > diff --git a/tests/qemu-iotests/191.out b/tests/qemu-iotests/191.out > index ea88777374..a7dfb22080 100644 > --- a/tests/qemu-iotests/191.out > +++ b/tests/qemu-iotests/191.out > @@ -22,25 +22,25 @@ wrote 65536/65536 bytes at offset 1048576 > 'base':'TEST_DIR/t.IMGFMT.base', > 'top': 'TEST_DIR/t.IMGFMT.mid' } } > { > + "event": "JOB_STATUS_CHANGE", > "timestamp": { > "seconds": TIMESTAMP, > "microseconds": TIMESTAMP > }, > - "event": "JOB_STATUS_CHANGE", > "data": { > - "status": "created", > - "id": "commit0" > + "id": "commit0", > + "status": "created" > } > } > { > + "event": "JOB_STATUS_CHANGE", > "timestamp": { > "seconds": TIMESTAMP, > "microseconds": TIMESTAMP > }, > - "event": "JOB_STATUS_CHANGE", > "data": { > - "status": "running", > - "id": "commit0" > + "id": "commit0", > + "status": "running" > } > } > { > @@ -48,61 +48,61 @@ wrote 65536/65536 bytes at offset 1048576 > } > } > { > + "event": "JOB_STATUS_CHANGE", > "timestamp": { > "seconds": TIMESTAMP, > "microseconds": TIMESTAMP > }, > - "event": "JOB_STATUS_CHANGE", > "data": { > - "status": "waiting", > - "id": "commit0" > + "id": "commit0", > + "status": "waiting" > } > } > { > + "event": "JOB_STATUS_CHANGE", > "timestamp": { > "seconds": TIMESTAMP, > "microseconds": TIMESTAMP > }, > - "event": "JOB_STATUS_CHANGE", > "data": { > - "status": "pending", > - "id": "commit0" > + "id": "commit0", > + "status": "pending" > } > } > { > - "timestamp": { > - "seconds": TIMESTAMP, > - "microseconds": TIMESTAMP > - }, > "event": "BLOCK_JOB_COMPLETED", > + "timestamp": { > + "seconds": TIMESTAMP, > + "microseconds": TIMESTAMP > + }, > "data": { > + "type": "commit", > "device": "commit0", > "len": 67108864, > "offset": 67108864, > - "speed": 0, > - "type": "commit" > + "speed": 0 > } > } > { > + "event": "JOB_STATUS_CHANGE", > "timestamp": { > "seconds": TIMESTAMP, > "microseconds": TIMESTAMP > }, > - "event": "JOB_STATUS_CHANGE", > "data": { > - "status": "concluded", > - "id": "commit0" > + "id": "commit0", > + "status": "concluded" > } > } > { > + "event": "JOB_STATUS_CHANGE", > "timestamp": { > "seconds": TIMESTAMP, > "microseconds": TIMESTAMP > }, > - "event": "JOB_STATUS_CHANGE", > "data": { > - "status": "null", > - "id": "commit0" > + "id": "commit0", > + "status": "null" > } > } >=20=20 > @@ -112,268 +112,268 @@ wrote 65536/65536 bytes at offset 1048576 > { > "return": [ > { > - "iops_rd": 0, > - "detect_zeroes": "off", > - "image": { > - "backing-image": { > - "virtual-size": 67108864, > - "filename": "TEST_DIR/t.IMGFMT.base", > - "cluster-size": 65536, > - "format": "IMGFMT", > - "actual-size": SIZE, > - "dirty-flag": false > - }, > - "backing-filename-format": "IMGFMT", > - "virtual-size": 67108864, > - "filename": "TEST_DIR/t.IMGFMT.ovl2", > - "cluster-size": 65536, > - "format": "IMGFMT", > - "actual-size": SIZE, > - "full-backing-filename": "TEST_DIR/t.IMGFMT.base", > - "backing-filename": "TEST_DIR/t.IMGFMT.base", > - "dirty-flag": false > - }, > - "iops_wr": 0, > - "ro": false, > + "file": "TEST_DIR/t.IMGFMT.ovl2", > "node-name": "top2", > - "backing_file_depth": 1, > + "ro": false, > "drv": "IMGFMT", > - "iops": 0, > - "bps_wr": 0, > - "write_threshold": 0, > "backing_file": "TEST_DIR/t.IMGFMT.base", > + "backing_file_depth": 1, > "encrypted": false, > + "detect_zeroes": "off", > "bps": 0, > "bps_rd": 0, > - "cache": { > - "no-flush": false, > - "direct": false, > - "writeback": true > + "bps_wr": 0, > + "iops": 0, > + "iops_rd": 0, > + "iops_wr": 0, > + "image": { > + "filename": "TEST_DIR/t.IMGFMT.ovl2", > + "format": "IMGFMT", > + "dirty-flag": false, > + "actual-size": SIZE, > + "virtual-size": 67108864, > + "cluster-size": 65536, > + "backing-filename": "TEST_DIR/t.IMGFMT.base", > + "full-backing-filename": "TEST_DIR/t.IMGFMT.base", > + "backing-filename-format": "IMGFMT", > + "backing-image": { > + "filename": "TEST_DIR/t.IMGFMT.base", > + "format": "IMGFMT", > + "dirty-flag": false, > + "actual-size": SIZE, > + "virtual-size": 67108864, > + "cluster-size": 65536, > + }, > }, > - "file": "TEST_DIR/t.IMGFMT.ovl2" > + "cache": { > + "writeback": true, > + "direct": false, > + "no-flush": false > + }, > + "write_threshold": 0 > }, > { > - "iops_rd": 0, > + "file": "TEST_DIR/t.IMGFMT.ovl2", > + "node-name": "NODE_NAME", > + "ro": false, > + "drv": "file", > + "backing_file_depth": 0, > + "encrypted": false, > "detect_zeroes": "off", > + "bps": 0, > + "bps_rd": 0, > + "bps_wr": 0, > + "iops": 0, > + "iops_rd": 0, > + "iops_wr": 0, > "image": { > - "virtual-size": 197120, > "filename": "TEST_DIR/t.IMGFMT.ovl2", > "format": "file", > + "dirty-flag": false, > "actual-size": SIZE, > - "dirty-flag": false > + "virtual-size": 197120 > }, > - "iops_wr": 0, > - "ro": false, > - "node-name": "NODE_NAME", > - "backing_file_depth": 0, > - "drv": "file", > - "iops": 0, > - "bps_wr": 0, > - "write_threshold": 0, > - "encrypted": false, > - "bps": 0, > - "bps_rd": 0, > "cache": { > - "no-flush": false, > + "writeback": true, > "direct": false, > - "writeback": true > + "no-flush": false > }, > - "file": "TEST_DIR/t.IMGFMT.ovl2" > + "write_threshold": 0 > }, > { > - "iops_rd": 0, > - "detect_zeroes": "off", > - "image": { > - "backing-image": { > - "virtual-size": 67108864, > - "filename": "TEST_DIR/t.IMGFMT.base", > - "cluster-size": 65536, > - "format": "IMGFMT", > - "actual-size": SIZE, > - "dirty-flag": false > - }, > - "backing-filename-format": "IMGFMT", > - "virtual-size": 67108864, > - "filename": "TEST_DIR/t.IMGFMT", > - "cluster-size": 65536, > - "format": "IMGFMT", > - "actual-size": SIZE, > - "full-backing-filename": "TEST_DIR/t.IMGFMT.base", > - "backing-filename": "TEST_DIR/t.IMGFMT.base", > - "dirty-flag": false > - }, > - "iops_wr": 0, > - "ro": false, > + "file": "TEST_DIR/t.IMGFMT", > "node-name": "top", > - "backing_file_depth": 1, > + "ro": false, > "drv": "IMGFMT", > - "iops": 0, > - "bps_wr": 0, > - "write_threshold": 0, > "backing_file": "TEST_DIR/t.IMGFMT.base", > + "backing_file_depth": 1, > "encrypted": false, > + "detect_zeroes": "off", > "bps": 0, > "bps_rd": 0, > - "cache": { > - "no-flush": false, > - "direct": false, > - "writeback": true > + "bps_wr": 0, > + "iops": 0, > + "iops_rd": 0, > + "iops_wr": 0, > + "image": { > + "filename": "TEST_DIR/t.IMGFMT", > + "format": "IMGFMT", > + "dirty-flag": false, > + "actual-size": SIZE, > + "virtual-size": 67108864, > + "cluster-size": 65536, > + "backing-filename": "TEST_DIR/t.IMGFMT.base", > + "full-backing-filename": "TEST_DIR/t.IMGFMT.base", > + "backing-filename-format": "IMGFMT", > + "backing-image": { > + "filename": "TEST_DIR/t.IMGFMT.base", > + "format": "IMGFMT", > + "dirty-flag": false, > + "actual-size": SIZE, > + "virtual-size": 67108864, > + "cluster-size": 65536, > + }, > }, > - "file": "TEST_DIR/t.IMGFMT" > + "cache": { > + "writeback": true, > + "direct": false, > + "no-flush": false > + }, > + "write_threshold": 0 > }, > { > - "iops_rd": 0, > + "file": "TEST_DIR/t.IMGFMT", > + "node-name": "NODE_NAME", > + "ro": false, > + "drv": "file", > + "backing_file_depth": 0, > + "encrypted": false, > "detect_zeroes": "off", > + "bps": 0, > + "bps_rd": 0, > + "bps_wr": 0, > + "iops": 0, > + "iops_rd": 0, > + "iops_wr": 0, > "image": { > - "virtual-size": 197120, > "filename": "TEST_DIR/t.IMGFMT", > "format": "file", > + "dirty-flag": false, > "actual-size": SIZE, > - "dirty-flag": false > + "virtual-size": 197120 > }, > - "iops_wr": 0, > - "ro": false, > - "node-name": "NODE_NAME", > - "backing_file_depth": 0, > - "drv": "file", > - "iops": 0, > - "bps_wr": 0, > - "write_threshold": 0, > - "encrypted": false, > - "bps": 0, > - "bps_rd": 0, > "cache": { > - "no-flush": false, > + "writeback": true, > "direct": false, > - "writeback": true > + "no-flush": false > }, > - "file": "TEST_DIR/t.IMGFMT" > + "write_threshold": 0 > }, > { > - "iops_rd": 0, > - "detect_zeroes": "off", > - "image": { > - "backing-image": { > - "virtual-size": 67108864, > - "filename": "TEST_DIR/t.IMGFMT.base", > - "cluster-size": 65536, > - "format": "IMGFMT", > - "actual-size": SIZE, > - "dirty-flag": false > - }, > - "backing-filename-format": "IMGFMT", > - "virtual-size": 67108864, > - "filename": "TEST_DIR/t.IMGFMT.mid", > - "cluster-size": 65536, > - "format": "IMGFMT", > - "actual-size": SIZE, > - "full-backing-filename": "TEST_DIR/t.IMGFMT.base", > - "backing-filename": "TEST_DIR/t.IMGFMT.base", > - "dirty-flag": false > - }, > - "iops_wr": 0, > - "ro": false, > + "file": "TEST_DIR/t.IMGFMT.mid", > "node-name": "mid", > - "backing_file_depth": 1, > + "ro": false, > "drv": "IMGFMT", > - "iops": 0, > - "bps_wr": 0, > - "write_threshold": 0, > "backing_file": "TEST_DIR/t.IMGFMT.base", > + "backing_file_depth": 1, > "encrypted": false, > + "detect_zeroes": "off", > "bps": 0, > "bps_rd": 0, > - "cache": { > - "no-flush": false, > - "direct": false, > - "writeback": true > + "bps_wr": 0, > + "iops": 0, > + "iops_rd": 0, > + "iops_wr": 0, > + "image": { > + "filename": "TEST_DIR/t.IMGFMT.mid", > + "format": "IMGFMT", > + "dirty-flag": false, > + "actual-size": SIZE, > + "virtual-size": 67108864, > + "cluster-size": 65536, > + "backing-filename": "TEST_DIR/t.IMGFMT.base", > + "full-backing-filename": "TEST_DIR/t.IMGFMT.base", > + "backing-filename-format": "IMGFMT", > + "backing-image": { > + "filename": "TEST_DIR/t.IMGFMT.base", > + "format": "IMGFMT", > + "dirty-flag": false, > + "actual-size": SIZE, > + "virtual-size": 67108864, > + "cluster-size": 65536, > + }, > }, > - "file": "TEST_DIR/t.IMGFMT.mid" > + "cache": { > + "writeback": true, > + "direct": false, > + "no-flush": false > + }, > + "write_threshold": 0 > }, > { > - "iops_rd": 0, > + "file": "TEST_DIR/t.IMGFMT.mid", > + "node-name": "NODE_NAME", > + "ro": false, > + "drv": "file", > + "backing_file_depth": 0, > + "encrypted": false, > "detect_zeroes": "off", > + "bps": 0, > + "bps_rd": 0, > + "bps_wr": 0, > + "iops": 0, > + "iops_rd": 0, > + "iops_wr": 0, > "image": { > - "virtual-size": 393216, > "filename": "TEST_DIR/t.IMGFMT.mid", > "format": "file", > + "dirty-flag": false, > "actual-size": SIZE, > - "dirty-flag": false > + "virtual-size": 393216 > }, > - "iops_wr": 0, > - "ro": false, > - "node-name": "NODE_NAME", > - "backing_file_depth": 0, > - "drv": "file", > - "iops": 0, > - "bps_wr": 0, > - "write_threshold": 0, > - "encrypted": false, > - "bps": 0, > - "bps_rd": 0, > "cache": { > - "no-flush": false, > + "writeback": true, > "direct": false, > - "writeback": true > + "no-flush": false > }, > - "file": "TEST_DIR/t.IMGFMT.mid" > + "write_threshold": 0 > }, > { > - "iops_rd": 0, > - "detect_zeroes": "off", > - "image": { > - "virtual-size": 67108864, > - "filename": "TEST_DIR/t.IMGFMT.base", > - "cluster-size": 65536, > - "format": "IMGFMT", > - "actual-size": SIZE, > - "dirty-flag": false > - }, > - "iops_wr": 0, > - "ro": false, > + "file": "TEST_DIR/t.IMGFMT.base", > "node-name": "base", > - "backing_file_depth": 0, > + "ro": false, > "drv": "IMGFMT", > - "iops": 0, > - "bps_wr": 0, > - "write_threshold": 0, > + "backing_file_depth": 0, > "encrypted": false, > + "detect_zeroes": "off", > "bps": 0, > "bps_rd": 0, > - "cache": { > - "no-flush": false, > - "direct": false, > - "writeback": true > + "bps_wr": 0, > + "iops": 0, > + "iops_rd": 0, > + "iops_wr": 0, > + "image": { > + "filename": "TEST_DIR/t.IMGFMT.base", > + "format": "IMGFMT", > + "dirty-flag": false, > + "actual-size": SIZE, > + "virtual-size": 67108864, > + "cluster-size": 65536, > }, > - "file": "TEST_DIR/t.IMGFMT.base" > + "cache": { > + "writeback": true, > + "direct": false, > + "no-flush": false > + }, > + "write_threshold": 0 > }, > { > - "iops_rd": 0, > + "file": "TEST_DIR/t.IMGFMT.base", > + "node-name": "NODE_NAME", > + "ro": false, > + "drv": "file", > + "backing_file_depth": 0, > + "encrypted": false, > "detect_zeroes": "off", > + "bps": 0, > + "bps_rd": 0, > + "bps_wr": 0, > + "iops": 0, > + "iops_rd": 0, > + "iops_wr": 0, > "image": { > - "virtual-size": 393216, > "filename": "TEST_DIR/t.IMGFMT.base", > "format": "file", > + "dirty-flag": false, > "actual-size": SIZE, > - "dirty-flag": false > + "virtual-size": 393216 > }, > - "iops_wr": 0, > - "ro": false, > - "node-name": "NODE_NAME", > - "backing_file_depth": 0, > - "drv": "file", > - "iops": 0, > - "bps_wr": 0, > - "write_threshold": 0, > - "encrypted": false, > - "bps": 0, > - "bps_rd": 0, > "cache": { > - "no-flush": false, > + "writeback": true, > "direct": false, > - "writeback": true > + "no-flush": false > }, > - "file": "TEST_DIR/t.IMGFMT.base" > + "write_threshold": 0 > } > ] > } > @@ -383,11 +383,11 @@ wrote 65536/65536 bytes at offset 1048576 > } > } > { > + "event": "SHUTDOWN", > "timestamp": { > "seconds": TIMESTAMP, > "microseconds": TIMESTAMP > }, > - "event": "SHUTDOWN", > "data": { > "guest": false, > "reason": "host-qmp-quit" > @@ -429,25 +429,25 @@ wrote 65536/65536 bytes at offset 1048576 > 'base':'TEST_DIR/t.IMGFMT.base', > 'top': 'TEST_DIR/t.IMGFMT.mid' } } > { > + "event": "JOB_STATUS_CHANGE", > "timestamp": { > "seconds": TIMESTAMP, > "microseconds": TIMESTAMP > }, > - "event": "JOB_STATUS_CHANGE", > "data": { > - "status": "created", > - "id": "commit0" > + "id": "commit0", > + "status": "created" > } > } > { > + "event": "JOB_STATUS_CHANGE", > "timestamp": { > "seconds": TIMESTAMP, > "microseconds": TIMESTAMP > }, > - "event": "JOB_STATUS_CHANGE", > "data": { > - "status": "running", > - "id": "commit0" > + "id": "commit0", > + "status": "running" > } > } > { > @@ -455,61 +455,61 @@ wrote 65536/65536 bytes at offset 1048576 > } > } > { > + "event": "JOB_STATUS_CHANGE", > "timestamp": { > "seconds": TIMESTAMP, > "microseconds": TIMESTAMP > }, > - "event": "JOB_STATUS_CHANGE", > "data": { > - "status": "waiting", > - "id": "commit0" > + "id": "commit0", > + "status": "waiting" > } > } > { > + "event": "JOB_STATUS_CHANGE", > "timestamp": { > "seconds": TIMESTAMP, > "microseconds": TIMESTAMP > }, > - "event": "JOB_STATUS_CHANGE", > "data": { > - "status": "pending", > - "id": "commit0" > + "id": "commit0", > + "status": "pending" > } > } > { > - "timestamp": { > - "seconds": TIMESTAMP, > - "microseconds": TIMESTAMP > - }, > "event": "BLOCK_JOB_COMPLETED", > + "timestamp": { > + "seconds": TIMESTAMP, > + "microseconds": TIMESTAMP > + }, > "data": { > + "type": "commit", > "device": "commit0", > "len": 67108864, > "offset": 67108864, > - "speed": 0, > - "type": "commit" > + "speed": 0 > } > } > { > + "event": "JOB_STATUS_CHANGE", > "timestamp": { > "seconds": TIMESTAMP, > "microseconds": TIMESTAMP > }, > - "event": "JOB_STATUS_CHANGE", > "data": { > - "status": "concluded", > - "id": "commit0" > + "id": "commit0", > + "status": "concluded" > } > } > { > + "event": "JOB_STATUS_CHANGE", > "timestamp": { > "seconds": TIMESTAMP, > "microseconds": TIMESTAMP > }, > - "event": "JOB_STATUS_CHANGE", > "data": { > - "status": "null", > - "id": "commit0" > + "id": "commit0", > + "status": "null" > } > } >=20=20 > @@ -519,279 +519,279 @@ wrote 65536/65536 bytes at offset 1048576 > { > "return": [ > { > - "iops_rd": 0, > - "detect_zeroes": "off", > - "image": { > - "backing-image": { > - "virtual-size": 67108864, > - "filename": "TEST_DIR/t.IMGFMT.base", > - "cluster-size": 65536, > - "format": "IMGFMT", > - "actual-size": SIZE, > - "dirty-flag": false > - }, > - "backing-filename-format": "IMGFMT", > - "virtual-size": 67108864, > - "filename": "TEST_DIR/t.IMGFMT.ovl2", > - "cluster-size": 65536, > - "format": "IMGFMT", > - "actual-size": SIZE, > - "full-backing-filename": "TEST_DIR/t.IMGFMT.base", > - "backing-filename": "TEST_DIR/t.IMGFMT.base", > - "dirty-flag": false > - }, > - "iops_wr": 0, > - "ro": true, > + "file": "TEST_DIR/t.IMGFMT.ovl2", > "node-name": "NODE_NAME", > - "backing_file_depth": 1, > + "ro": true, > "drv": "IMGFMT", > - "iops": 0, > - "bps_wr": 0, > - "write_threshold": 0, > "backing_file": "TEST_DIR/t.IMGFMT.base", > + "backing_file_depth": 1, > "encrypted": false, > + "detect_zeroes": "off", > "bps": 0, > "bps_rd": 0, > - "cache": { > - "no-flush": false, > - "direct": false, > - "writeback": true > + "bps_wr": 0, > + "iops": 0, > + "iops_rd": 0, > + "iops_wr": 0, > + "image": { > + "filename": "TEST_DIR/t.IMGFMT.ovl2", > + "format": "IMGFMT", > + "dirty-flag": false, > + "actual-size": SIZE, > + "virtual-size": 67108864, > + "cluster-size": 65536, > + "backing-filename": "TEST_DIR/t.IMGFMT.base", > + "full-backing-filename": "TEST_DIR/t.IMGFMT.base", > + "backing-filename-format": "IMGFMT", > + "backing-image": { > + "filename": "TEST_DIR/t.IMGFMT.base", > + "format": "IMGFMT", > + "dirty-flag": false, > + "actual-size": SIZE, > + "virtual-size": 67108864, > + "cluster-size": 65536, > + }, > }, > - "file": "TEST_DIR/t.IMGFMT.ovl2" > + "cache": { > + "writeback": true, > + "direct": false, > + "no-flush": false > + }, > + "write_threshold": 0 > }, > { > - "iops_rd": 0, > + "file": "TEST_DIR/t.IMGFMT.ovl2", > + "node-name": "NODE_NAME", > + "ro": true, > + "drv": "file", > + "backing_file_depth": 0, > + "encrypted": false, > "detect_zeroes": "off", > + "bps": 0, > + "bps_rd": 0, > + "bps_wr": 0, > + "iops": 0, > + "iops_rd": 0, > + "iops_wr": 0, > "image": { > - "virtual-size": 197120, > "filename": "TEST_DIR/t.IMGFMT.ovl2", > "format": "file", > + "dirty-flag": false, > "actual-size": SIZE, > - "dirty-flag": false > + "virtual-size": 197120 > }, > - "iops_wr": 0, > - "ro": true, > - "node-name": "NODE_NAME", > - "backing_file_depth": 0, > - "drv": "file", > - "iops": 0, > - "bps_wr": 0, > - "write_threshold": 0, > - "encrypted": false, > - "bps": 0, > - "bps_rd": 0, > "cache": { > - "no-flush": false, > + "writeback": true, > "direct": false, > - "writeback": true > + "no-flush": false > }, > - "file": "TEST_DIR/t.IMGFMT.ovl2" > + "write_threshold": 0 > }, > { > - "iops_rd": 0, > - "detect_zeroes": "off", > - "image": { > - "backing-image": { > - "backing-image": { > - "virtual-size": 67108864, > - "filename": "TEST_DIR/t.IMGFMT.base", > - "cluster-size": 65536, > - "format": "IMGFMT", > - "actual-size": SIZE, > - "dirty-flag": false > - }, > - "backing-filename-format": "IMGFMT", > - "virtual-size": 67108864, > - "filename": "TEST_DIR/t.IMGFMT.ovl2", > - "cluster-size": 65536, > - "format": "IMGFMT", > - "actual-size": SIZE, > - "full-backing-filename": "TEST_DIR/t.IMGFMT.base", > - "backing-filename": "TEST_DIR/t.IMGFMT.base", > - "dirty-flag": false > - }, > - "backing-filename-format": "IMGFMT", > - "virtual-size": 67108864, > - "filename": "TEST_DIR/t.IMGFMT.ovl3", > - "cluster-size": 65536, > - "format": "IMGFMT", > - "actual-size": SIZE, > - "full-backing-filename": "TEST_DIR/t.IMGFMT.ovl2", > - "backing-filename": "TEST_DIR/t.IMGFMT.ovl2", > - "dirty-flag": false > - }, > - "iops_wr": 0, > - "ro": false, > + "file": "TEST_DIR/t.IMGFMT.ovl3", > "node-name": "top2", > - "backing_file_depth": 2, > + "ro": false, > "drv": "IMGFMT", > - "iops": 0, > - "bps_wr": 0, > - "write_threshold": 0, > "backing_file": "TEST_DIR/t.IMGFMT.ovl2", > + "backing_file_depth": 2, > "encrypted": false, > + "detect_zeroes": "off", > "bps": 0, > "bps_rd": 0, > - "cache": { > - "no-flush": false, > - "direct": false, > - "writeback": true > + "bps_wr": 0, > + "iops": 0, > + "iops_rd": 0, > + "iops_wr": 0, > + "image": { > + "filename": "TEST_DIR/t.IMGFMT.ovl3", > + "format": "IMGFMT", > + "dirty-flag": false, > + "actual-size": SIZE, > + "virtual-size": 67108864, > + "cluster-size": 65536, > + "backing-filename": "TEST_DIR/t.IMGFMT.ovl2", > + "full-backing-filename": "TEST_DIR/t.IMGFMT.ovl2", > + "backing-filename-format": "IMGFMT", > + "backing-image": { > + "filename": "TEST_DIR/t.IMGFMT.ovl2", > + "format": "IMGFMT", > + "dirty-flag": false, > + "actual-size": SIZE, > + "virtual-size": 67108864, > + "cluster-size": 65536, > + "backing-filename": "TEST_DIR/t.IMGFMT.base", > + "full-backing-filename": "TEST_DIR/t.IMGFMT.base", > + "backing-filename-format": "IMGFMT", > + "backing-image": { > + "filename": "TEST_DIR/t.IMGFMT.base", > + "format": "IMGFMT", > + "dirty-flag": false, > + "actual-size": SIZE, > + "virtual-size": 67108864, > + "cluster-size": 65536, > + }, > + }, > }, > - "file": "TEST_DIR/t.IMGFMT.ovl3" > + "cache": { > + "writeback": true, > + "direct": false, > + "no-flush": false > + }, > + "write_threshold": 0 > }, > { > - "iops_rd": 0, > + "file": "TEST_DIR/t.IMGFMT.ovl3", > + "node-name": "NODE_NAME", > + "ro": false, > + "drv": "file", > + "backing_file_depth": 0, > + "encrypted": false, > "detect_zeroes": "off", > + "bps": 0, > + "bps_rd": 0, > + "bps_wr": 0, > + "iops": 0, > + "iops_rd": 0, > + "iops_wr": 0, > "image": { > - "virtual-size": 197120, > "filename": "TEST_DIR/t.IMGFMT.ovl3", > "format": "file", > + "dirty-flag": false, > "actual-size": SIZE, > - "dirty-flag": false > + "virtual-size": 197120 > }, > - "iops_wr": 0, > - "ro": false, > - "node-name": "NODE_NAME", > - "backing_file_depth": 0, > - "drv": "file", > - "iops": 0, > - "bps_wr": 0, > - "write_threshold": 0, > - "encrypted": false, > - "bps": 0, > - "bps_rd": 0, > "cache": { > - "no-flush": false, > + "writeback": true, > "direct": false, > - "writeback": true > + "no-flush": false > }, > - "file": "TEST_DIR/t.IMGFMT.ovl3" > + "write_threshold": 0 > }, > { > - "iops_rd": 0, > - "detect_zeroes": "off", > - "image": { > - "virtual-size": 67108864, > - "filename": "TEST_DIR/t.IMGFMT.base", > - "cluster-size": 65536, > - "format": "IMGFMT", > - "actual-size": SIZE, > - "dirty-flag": false > - }, > - "iops_wr": 0, > + "file": "TEST_DIR/t.IMGFMT.base", > + "node-name": "NODE_NAME", > "ro": true, > - "node-name": "NODE_NAME", > - "backing_file_depth": 0, > "drv": "IMGFMT", > - "iops": 0, > - "bps_wr": 0, > - "write_threshold": 0, > + "backing_file_depth": 0, > "encrypted": false, > + "detect_zeroes": "off", > "bps": 0, > "bps_rd": 0, > - "cache": { > - "no-flush": false, > - "direct": false, > - "writeback": true > + "bps_wr": 0, > + "iops": 0, > + "iops_rd": 0, > + "iops_wr": 0, > + "image": { > + "filename": "TEST_DIR/t.IMGFMT.base", > + "format": "IMGFMT", > + "dirty-flag": false, > + "actual-size": SIZE, > + "virtual-size": 67108864, > + "cluster-size": 65536, > }, > - "file": "TEST_DIR/t.IMGFMT.base" > + "cache": { > + "writeback": true, > + "direct": false, > + "no-flush": false > + }, > + "write_threshold": 0 > }, > { > - "iops_rd": 0, > + "file": "TEST_DIR/t.IMGFMT.base", > + "node-name": "NODE_NAME", > + "ro": true, > + "drv": "file", > + "backing_file_depth": 0, > + "encrypted": false, > "detect_zeroes": "off", > + "bps": 0, > + "bps_rd": 0, > + "bps_wr": 0, > + "iops": 0, > + "iops_rd": 0, > + "iops_wr": 0, > "image": { > - "virtual-size": 393216, > "filename": "TEST_DIR/t.IMGFMT.base", > "format": "file", > + "dirty-flag": false, > "actual-size": SIZE, > - "dirty-flag": false > + "virtual-size": 393216 > }, > - "iops_wr": 0, > - "ro": true, > - "node-name": "NODE_NAME", > - "backing_file_depth": 0, > - "drv": "file", > - "iops": 0, > - "bps_wr": 0, > - "write_threshold": 0, > - "encrypted": false, > - "bps": 0, > - "bps_rd": 0, > "cache": { > - "no-flush": false, > + "writeback": true, > "direct": false, > - "writeback": true > + "no-flush": false > }, > - "file": "TEST_DIR/t.IMGFMT.base" > + "write_threshold": 0 > }, > { > - "iops_rd": 0, > - "detect_zeroes": "off", > - "image": { > - "backing-image": { > - "virtual-size": 67108864, > - "filename": "TEST_DIR/t.IMGFMT.base", > - "cluster-size": 65536, > - "format": "IMGFMT", > - "actual-size": SIZE, > - "dirty-flag": false > - }, > - "backing-filename-format": "IMGFMT", > - "virtual-size": 67108864, > - "filename": "TEST_DIR/t.IMGFMT", > - "cluster-size": 65536, > - "format": "IMGFMT", > - "actual-size": SIZE, > - "full-backing-filename": "TEST_DIR/t.IMGFMT.base", > - "backing-filename": "TEST_DIR/t.IMGFMT.base", > - "dirty-flag": false > - }, > - "iops_wr": 0, > - "ro": false, > + "file": "TEST_DIR/t.IMGFMT", > "node-name": "top", > - "backing_file_depth": 1, > + "ro": false, > "drv": "IMGFMT", > - "iops": 0, > - "bps_wr": 0, > - "write_threshold": 0, > "backing_file": "TEST_DIR/t.IMGFMT.base", > + "backing_file_depth": 1, > "encrypted": false, > + "detect_zeroes": "off", > "bps": 0, > "bps_rd": 0, > - "cache": { > - "no-flush": false, > - "direct": false, > - "writeback": true > + "bps_wr": 0, > + "iops": 0, > + "iops_rd": 0, > + "iops_wr": 0, > + "image": { > + "filename": "TEST_DIR/t.IMGFMT", > + "format": "IMGFMT", > + "dirty-flag": false, > + "actual-size": SIZE, > + "virtual-size": 67108864, > + "cluster-size": 65536, > + "backing-filename": "TEST_DIR/t.IMGFMT.base", > + "full-backing-filename": "TEST_DIR/t.IMGFMT.base", > + "backing-filename-format": "IMGFMT", > + "backing-image": { > + "filename": "TEST_DIR/t.IMGFMT.base", > + "format": "IMGFMT", > + "dirty-flag": false, > + "actual-size": SIZE, > + "virtual-size": 67108864, > + "cluster-size": 65536, > + }, > }, > - "file": "TEST_DIR/t.IMGFMT" > + "cache": { > + "writeback": true, > + "direct": false, > + "no-flush": false > + }, > + "write_threshold": 0 > }, > { > - "iops_rd": 0, > - "detect_zeroes": "off", > - "image": { > - "virtual-size": 197120, > - "filename": "TEST_DIR/t.IMGFMT", > - "format": "file", > - "actual-size": SIZE, > - "dirty-flag": false > - }, > - "iops_wr": 0, > - "ro": false, > + "file": "TEST_DIR/t.IMGFMT", > "node-name": "NODE_NAME", > - "backing_file_depth": 0, > + "ro": false, > "drv": "file", > - "iops": 0, > - "bps_wr": 0, > - "write_threshold": 0, > + "backing_file_depth": 0, > "encrypted": false, > + "detect_zeroes": "off", > "bps": 0, > "bps_rd": 0, > - "cache": { > - "no-flush": false, > - "direct": false, > - "writeback": true > + "bps_wr": 0, > + "iops": 0, > + "iops_rd": 0, > + "iops_wr": 0, > + "image": { > + "filename": "TEST_DIR/t.IMGFMT", > + "format": "file", > + "dirty-flag": false, > + "actual-size": SIZE, > + "virtual-size": 197120 > }, > - "file": "TEST_DIR/t.IMGFMT" > + "cache": { > + "writeback": true, > + "direct": false, > + "no-flush": false > + }, > + "write_threshold": 0 > } > ] > } > @@ -801,11 +801,11 @@ wrote 65536/65536 bytes at offset 1048576 > } > } > { > + "event": "SHUTDOWN", > "timestamp": { > "seconds": TIMESTAMP, > "microseconds": TIMESTAMP > }, > - "event": "SHUTDOWN", > "data": { > "guest": false, > "reason": "host-qmp-quit" > diff --git a/tests/qemu-iotests/195.out b/tests/qemu-iotests/195.out > index ec84df5012..485d7a1115 100644 > --- a/tests/qemu-iotests/195.out > +++ b/tests/qemu-iotests/195.out > @@ -22,11 +22,11 @@ Testing: -drive if=3Dnone,file=3DTEST_DIR/t.IMGFMT,ba= cking.node-name=3Dmid > } > } > { > + "event": "SHUTDOWN", > "timestamp": { > "seconds": TIMESTAMP, > "microseconds": TIMESTAMP > }, > - "event": "SHUTDOWN", > "data": { > "guest": false, > "reason": "host-qmp-quit" > @@ -60,11 +60,11 @@ Testing: -drive if=3Dnone,file=3DTEST_DIR/t.IMGFMT,no= de-name=3Dtop > } > } > { > + "event": "SHUTDOWN", > "timestamp": { > "seconds": TIMESTAMP, > "microseconds": TIMESTAMP > }, > - "event": "SHUTDOWN", > "data": { > "guest": false, > "reason": "host-qmp-quit" > diff --git a/tests/qemu-iotests/229.out b/tests/qemu-iotests/229.out > index 7d2bfbfbe6..3f4391df6e 100644 > --- a/tests/qemu-iotests/229.out > +++ b/tests/qemu-iotests/229.out > @@ -16,19 +16,19 @@ wrote 2097152/2097152 bytes at offset 0 > 'mode': 'existing', > 'on-source-error': 'stop', > 'on-target-error': 'stop' }} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "testdisk"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "testdisk"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "testdisk", "status": "created"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "testdisk", "status": "running"}} > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "BLOCK_JOB_ERROR", "data": {"device": "testdisk", "operation": "write",= "action": "stop"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "paused", "id": "testdisk"}} > +{"event": "BLOCK_JOB_ERROR", "timestamp": {"seconds": TIMESTAMP, "micro= seconds": TIMESTAMP}, "data": {"device": "testdisk", "operation": "write",= "action": "stop"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "testdisk", "status": "paused"}} >=20=20 > =3D=3D=3D Force cancel job paused in error state =3D=3D=3D >=20=20 > {'execute': 'block-job-cancel', > 'arguments': { 'device': 'testdisk', > 'force': true}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "testdisk"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "testdisk", "status": "running"}} > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "aborting", "id": "testdisk"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "BLOCK_JOB_CANCELLED", "data": {"device": "testdisk", "len": 2097152, "= offset": OFFSET, "speed": 0, "type": "mirror"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "testdisk", "status": "aborting"}} > +{"event": "BLOCK_JOB_CANCELLED", "timestamp": {"seconds": TIMESTAMP, "m= icroseconds": TIMESTAMP}, "data": {"type": "mirror", "device": "testdisk",= "len": 2097152, "offset": OFFSET, "speed": 0}} > *** done > diff --git a/tests/qemu-iotests/244.out b/tests/qemu-iotests/244.out > index 5e03add054..57cffee1ea 100644 > --- a/tests/qemu-iotests/244.out > +++ b/tests/qemu-iotests/244.out > @@ -156,14 +156,14 @@ wrote 1048576/1048576 bytes at offset 0 > "data-file": "data", > "data-file-raw": true > } } } > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "create"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "create"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "create", "status": "created"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "create", "status": "running"}} > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "waiting", "id": "create"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "pending", "id": "create"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "create"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "create", "status": "waiting"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "create", "status": "pending"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "create", "status": "concluded"}} > { "execute": "job-dismiss", "arguments": { "id": "create" } } > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "create"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "create", "status": "null"}} > {"return": {}} >=20=20 > Comparing pattern: > diff --git a/tests/qemu-iotests/249.out b/tests/qemu-iotests/249.out > index d2bf9be85e..a1a1a1b851 100644 > --- a/tests/qemu-iotests/249.out > +++ b/tests/qemu-iotests/249.out > @@ -16,8 +16,8 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D104= 8576 backing_file=3DTEST_DIR/t. > { 'execute': 'block-commit', > 'arguments': {'job-id': 'job0', 'device': 'none1', 'top-node': 'i= nt', > 'filter-node-name': '1234'}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "job0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "job0"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "created"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "null"}} > {"error": {"class": "GenericError", "desc": "Invalid node-name: '1234'"}} >=20=20 > =3D=3D=3D Send a write command to a drive opened in read-only mode (2) > @@ -30,14 +30,14 @@ Formatting 'TEST_DIR/t.IMGFMT', fmt=3DIMGFMT size=3D1= 048576 backing_file=3DTEST_DIR/t. >=20=20 > { 'execute': 'block-commit', > 'arguments': {'job-id': 'job0', 'device': 'none1', 'top-node': 'i= nt'}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "job0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "job0"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "created"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "running"}} > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "waiting", "id": "job0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "pending", "id": "job0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "BLOCK_JOB_COMPLETED", "data": {"device": "job0", "len": 1048576, "offs= et": 1048576, "speed": 0, "type": "commit"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "job0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "job0"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "waiting"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "pending"}} > +{"event": "BLOCK_JOB_COMPLETED", "timestamp": {"seconds": TIMESTAMP, "m= icroseconds": TIMESTAMP}, "data": {"type": "commit", "device": "job0", "le= n": 1048576, "offset": 1048576, "speed": 0}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "concluded"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "null"}} >=20=20 > =3D=3D=3D Send a write command to a drive opened in read-only mode (3) >=20=20 > diff --git a/tests/qemu-iotests/tests/qsd-jobs.out b/tests/qemu-iotests/t= ests/qsd-jobs.out > index c1bc9b8356..336a5c3946 100644 > --- a/tests/qemu-iotests/tests/qsd-jobs.out > +++ b/tests/qemu-iotests/tests/qsd-jobs.out > @@ -8,15 +8,15 @@ QMP_VERSION > {"return": {}} > {"return": {}} > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "BLOCK_JOB_CANCELLED", "data": {"device": "job0", "len": 0, "offset": 0= , "speed": 0, "type": "commit"}} > +{"event": "BLOCK_JOB_CANCELLED", "timestamp": {"seconds": TIMESTAMP, "m= icroseconds": TIMESTAMP}, "data": {"type": "commit", "device": "job0", "le= n": 0, "offset": 0, "speed": 0}} >=20=20 > =3D=3D=3D Streaming can't get permission on base node =3D=3D=3D >=20=20 > QMP_VERSION > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "job0"}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "job0"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "created"}} > +{"event": "JOB_STATUS_CHANGE", "timestamp": {"seconds": TIMESTAMP, "mic= roseconds": TIMESTAMP}, "data": {"id": "job0", "status": "null"}} > {"error": {"class": "GenericError", "desc": "Permission conflict on node= 'fmt_base': permissions 'write' are both required by an unnamed block devi= ce (uses node 'fmt_base' as 'root' child) and unshared by stream job 'job0'= (uses node 'fmt_base' as 'intermediate node' child)."}} > {"return": {}} > -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "even= t": "BLOCK_EXPORT_DELETED", "data": {"id": "export1"}} > +{"event": "BLOCK_EXPORT_DELETED", "timestamp": {"seconds": TIMESTAMP, "= microseconds": TIMESTAMP}, "data": {"id": "export1"}} > *** done --=20 Alex Benn=C3=A9e