qemu with hax to log dma reads & writes jcs.org/2018/11/12/vfio

docs/bitmaps: use QMP lexer instead of json

The annotated style json we use in QMP documentation is not strict json
and depending on the version of Sphinx (2.0+) or Pygments installed,
might cause the build to fail.

Use the new QMP lexer.

Further, some versions of Sphinx can not apply custom lexers to "code"
directives and require the use of "code-block" directives instead, so
make that change at this time as well.

Tested under:
- Sphinx 1.3.6 and Pygments 2.4
- Sphinx 1.7.6 and Pygments 2.2 (Fedora 29 packages)
- Sphinx 2.0.1 and Pygments 2.4
- Sphinx 3.0.0+/f396b3a783 and Pygments 2.4 (From Sphinx git c4f44bdd)

Reported-by: Aarushi Mehta <mehta.aaru20@gmail.com>
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
Message-id: 20190603214653.29369-4-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>

+27 -27
+27 -27
docs/interop/bitmaps.rst
··· 199 199 200 200 to create a new, actively recording persistent bitmap: 201 201 202 - .. code:: json 202 + .. code-block:: QMP 203 203 204 204 -> { "execute": "block-dirty-bitmap-add", 205 205 "arguments": { ··· 220 220 To create a new, disabled (``-recording``), transient bitmap that tracks 221 221 changes in 32KiB segments: 222 222 223 - .. code:: json 223 + .. code-block:: QMP 224 224 225 225 -> { "execute": "block-dirty-bitmap-add", 226 226 "arguments": { ··· 254 254 255 255 Remove a bitmap named ``bitmap0`` from node ``drive0``: 256 256 257 - .. code:: json 257 + .. code-block:: QMP 258 258 259 259 -> { "execute": "block-dirty-bitmap-remove", 260 260 "arguments": { ··· 280 280 281 281 Clear all dirty bits from bitmap ``bitmap0`` on node ``drive0``: 282 282 283 - .. code:: json 283 + .. code-block:: QMP 284 284 285 285 -> { "execute": "block-dirty-bitmap-clear", 286 286 "arguments": { ··· 309 309 310 310 To set ``+recording`` on bitmap ``bitmap0`` on node ``drive0``: 311 311 312 - .. code:: json 312 + .. code-block:: QMP 313 313 314 314 -> { "execute": "block-dirty-bitmap-enable", 315 315 "arguments": { ··· 347 347 348 348 To set ``-recording`` on bitmap ``bitmap0`` on node ``drive0``: 349 349 350 - .. code:: json 350 + .. code-block:: QMP 351 351 352 352 -> { "execute": "block-dirty-bitmap-disable", 353 353 "arguments": { ··· 393 393 ``drive0``. If ``new_bitmap`` was empty prior to this command, this achieves 394 394 a copy. 395 395 396 - .. code:: json 396 + .. code-block:: QMP 397 397 398 398 -> { "execute": "block-dirty-bitmap-merge", 399 399 "arguments": { ··· 424 424 API. This result highlights a bitmap ``bitmap0`` attached to the root node of 425 425 device ``drive0``. 426 426 427 - .. code:: json 427 + .. code-block:: QMP 428 428 429 429 -> { 430 430 "execute": "query-block", ··· 562 562 destination. These writes will be recorded in the bitmap 563 563 accordingly. 564 564 565 - .. code:: json 565 + .. code-block:: QMP 566 566 567 567 -> { 568 568 "execute": "transaction", ··· 650 650 If we want to start a new backup chain with an existing bitmap, we can also 651 651 use a transaction to reset the bitmap while making a new full backup: 652 652 653 - .. code:: json 653 + .. code-block:: QMP 654 654 655 655 -> { 656 656 "execute": "transaction", ··· 730 730 731 731 #. Issue an incremental backup command: 732 732 733 - .. code:: json 733 + .. code-block:: QMP 734 734 735 735 -> { 736 736 "execute": "drive-backup", ··· 788 788 #. Issue a new incremental backup command. The only difference here is that we 789 789 have changed the target image below. 790 790 791 - .. code:: json 791 + .. code-block:: QMP 792 792 793 793 -> { 794 794 "execute": "drive-backup", ··· 869 869 #. Issue a new incremental backup command. Apart from the new destination 870 870 image, there is no difference from the last two examples. 871 871 872 - .. code:: json 872 + .. code-block:: QMP 873 873 874 874 -> { 875 875 "execute": "drive-backup", ··· 932 932 933 933 #. Create a full (anchor) backup for each drive, with accompanying bitmaps: 934 934 935 - .. code:: json 935 + .. code-block:: QMP 936 936 937 937 -> { 938 938 "execute": "transaction", ··· 1018 1018 1019 1019 #. Issue a multi-drive incremental push backup transaction: 1020 1020 1021 - .. code:: json 1021 + .. code-block:: QMP 1022 1022 1023 1023 -> { 1024 1024 "execute": "transaction", ··· 1121 1121 1122 1122 #. Attempt to create an incremental backup via QMP: 1123 1123 1124 - .. code:: json 1124 + .. code-block:: QMP 1125 1125 1126 1126 -> { 1127 1127 "execute": "drive-backup", ··· 1139 1139 1140 1140 #. Receive a pair of events indicating failure: 1141 1141 1142 - .. code:: json 1142 + .. code-block:: QMP 1143 1143 1144 1144 <- { 1145 1145 "timestamp": {...}, ··· 1175 1175 #. Retry the command after fixing the underlying problem, such as 1176 1176 freeing up space on the backup volume: 1177 1177 1178 - .. code:: json 1178 + .. code-block:: QMP 1179 1179 1180 1180 -> { 1181 1181 "execute": "drive-backup", ··· 1193 1193 1194 1194 #. Receive confirmation that the job completed successfully: 1195 1195 1196 - .. code:: json 1196 + .. code-block:: QMP 1197 1197 1198 1198 <- { 1199 1199 "timestamp": {...}, ··· 1233 1233 1234 1234 #. Issue the transaction to start a backup of both drives. 1235 1235 1236 - .. code:: json 1236 + .. code-block:: QMP 1237 1237 1238 1238 -> { 1239 1239 "execute": "transaction", ··· 1267 1267 #. Receive notice that the Transaction was accepted, and jobs were 1268 1268 launched: 1269 1269 1270 - .. code:: json 1270 + .. code-block:: QMP 1271 1271 1272 1272 <- { "return": {} } 1273 1273 1274 1274 #. Receive notice that the first job has completed: 1275 1275 1276 - .. code:: json 1276 + .. code-block:: QMP 1277 1277 1278 1278 <- { 1279 1279 "timestamp": {...}, ··· 1289 1289 1290 1290 #. Receive notice that the second job has failed: 1291 1291 1292 - .. code:: json 1292 + .. code-block:: QMP 1293 1293 1294 1294 <- { 1295 1295 "timestamp": {...}, ··· 1365 1365 1366 1366 #. Issue the multi-drive incremental backup transaction: 1367 1367 1368 - .. code:: json 1368 + .. code-block:: QMP 1369 1369 1370 1370 -> { 1371 1371 "execute": "transaction", ··· 1401 1401 1402 1402 #. Receive notice that the Transaction was accepted, and jobs were launched: 1403 1403 1404 - .. code:: json 1404 + .. code-block:: QMP 1405 1405 1406 1406 <- { "return": {} } 1407 1407 1408 1408 #. Receive notification that the backup job for ``drive1`` has failed: 1409 1409 1410 - .. code:: json 1410 + .. code-block:: QMP 1411 1411 1412 1412 <- { 1413 1413 "timestamp": {...}, ··· 1434 1434 1435 1435 #. Receive notification that the job for ``drive0`` has been cancelled: 1436 1436 1437 - .. code:: json 1437 + .. code-block:: QMP 1438 1438 1439 1439 <- { 1440 1440 "timestamp": {...},