1f62f08abSKevin Wolf=== Launch VM === 2f62f08abSKevin WolfEnabling migration QMP events on VM... 3f62f08abSKevin Wolf{"return": {}} 4f62f08abSKevin Wolf 5f62f08abSKevin Wolf=== Migrate to file === 6f62f08abSKevin Wolf{"execute": "migrate", "arguments": {"uri": "exec:cat > /dev/null"}} 7f62f08abSKevin Wolf{"return": {}} 8f62f08abSKevin Wolf{"data": {"status": "setup"}, "event": "MIGRATION", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 9f62f08abSKevin Wolf{"data": {"status": "active"}, "event": "MIGRATION", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 10*48814111SPeter Xu{"data": {"status": "device"}, "event": "MIGRATION", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 11f62f08abSKevin Wolf{"data": {"status": "completed"}, "event": "MIGRATION", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 12f62f08abSKevin Wolf 13f62f08abSKevin WolfVM is now stopped: 14f62f08abSKevin Wolfcompleted 15f62f08abSKevin Wolf{"execute": "query-status", "arguments": {}} 16fe17522dSPhilippe Mathieu-Daudé{"return": {"running": false, "status": "postmigrate"}} 17f62f08abSKevin Wolf 18f62f08abSKevin Wolf=== Create a snapshot of the disk image === 19f62f08abSKevin Wolf{"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "file", "filename": "TEST_DIR/PID-top", "size": 0}}} 20f62f08abSKevin Wolf{"return": {}} 21f62f08abSKevin Wolf{"execute": "job-dismiss", "arguments": {"id": "job0"}} 22f62f08abSKevin Wolf{"return": {}} 23f62f08abSKevin Wolf 24f62f08abSKevin Wolf{"execute": "blockdev-add", "arguments": {"driver": "file", "filename": "TEST_DIR/PID-top", "node-name": "top-file"}} 25f62f08abSKevin Wolf{"return": {}} 26f62f08abSKevin Wolf{"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": {"driver": "qcow2", "file": "top-file", "size": 1048576}}} 27f62f08abSKevin Wolf{"return": {}} 28f62f08abSKevin Wolf{"execute": "job-dismiss", "arguments": {"id": "job0"}} 29f62f08abSKevin Wolf{"return": {}} 30f62f08abSKevin Wolf 31f62f08abSKevin Wolf{"execute": "blockdev-add", "arguments": {"driver": "qcow2", "file": "top-file", "node-name": "top-fmt"}} 32f62f08abSKevin Wolf{"return": {}} 33f62f08abSKevin Wolf{"execute": "blockdev-snapshot", "arguments": {"node": "base-fmt", "overlay": "top-fmt"}} 34f62f08abSKevin Wolf{"return": {}} 35f62f08abSKevin Wolf 36f62f08abSKevin Wolf=== Resume the VM and simulate a write request === 37f62f08abSKevin Wolf{"execute": "cont", "arguments": {}} 38f62f08abSKevin Wolf{"return": {}} 39f62f08abSKevin Wolf{"return": ""} 40f62f08abSKevin Wolf 41f62f08abSKevin Wolf=== Commit it to the backing file === 42f62f08abSKevin Wolf{"execute": "block-commit", "arguments": {"auto-dismiss": false, "device": "top-fmt", "job-id": "job0", "top-node": "top-fmt"}} 43f62f08abSKevin Wolf{"return": {}} 44f62f08abSKevin Wolf{"execute": "job-complete", "arguments": {"id": "job0"}} 45f62f08abSKevin Wolf{"return": {}} 46f62f08abSKevin Wolf{"data": {"device": "job0", "len": 65536, "offset": 65536, "speed": 0, "type": "commit"}, "event": "BLOCK_JOB_READY", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 47f62f08abSKevin Wolf{"data": {"device": "job0", "len": 65536, "offset": 65536, "speed": 0, "type": "commit"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} 48f62f08abSKevin Wolf{"execute": "job-dismiss", "arguments": {"id": "job0"}} 49f62f08abSKevin Wolf{"return": {}} 50