Devices created using '-device' JSON syntax don't emit DEVICE_DELETED when unplugged
Host environment
- QEMU version: QEMU emulator version 6.2.50 (v6.2.0-103-ge68034b1d6-dirty)
Emulated/Virtualized environment
- Operating system: (Windows 10 21H1, Fedora 34, etc.)
- OS/kernel version: (For POSIX guests, use
uname -a
.) - Architecture: (x86, ARM, s390x, etc.)
Description of problem
Run the following sequence:
$ ./qemu-system-x86_64 -qmp stdio \
-device '{"driver": "virtio-mouse-pci", "id": "dev0"}' \
-device virtio-mouse-pci,id=dev1
{"QMP": {"version": {"qemu": {"micro": 50, "minor": 2, "major": 6}, "package": "v6.2.0-105-g7494244ffc-dirty"}, "capabilities": ["oob"]}}
{ "execute": "qmp_capabilities" }
{"return": {}}
{ "execute": "device_del", "arguments": { "id": "dev0"} }
{"return": {}}
{ "execute": "device_del", "arguments": { "id": "dev1"} }
{"return": {}}
{ "execute": "system_reset" }
{"return": {}}
{"timestamp": {"seconds": 1641385071, "microseconds": 120178}, "event": "RESET", "data": {"guest": false, "reason": "host-qmp-system-reset"}}
{"timestamp": {"seconds": 1641385071, "microseconds": 121431}, "event": "DEVICE_DELETED", "data": {"path": "/machine/peripheral/dev1/virtio-backend"}}
{"timestamp": {"seconds": 1641385071, "microseconds": 121684}, "event": "DEVICE_DELETED", "data": {"device": "dev1", "path": "/machine/peripheral/dev1"}}
{"timestamp": {"seconds": 1641385071, "microseconds": 122297}, "event": "DEVICE_DELETED", "data": {"path": "/machine/peripheral/dev0/virtio-backend"}}
{"timestamp": {"seconds": 1641385071, "microseconds": 198581}, "event": "RESET", "data": {"guest": true, "reason": "guest-reset"}}
Notice the lack of a "DEVICE_DELETED" event with path "/machine/peripheral/dev0" - the device created with JSON syntax