[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC 0/5]: QMP: Introduce GUEST_MEDIUM_EJECT & BLOCK_MEDIUM
From: |
Luiz Capitulino |
Subject: |
[Qemu-devel] [RFC 0/5]: QMP: Introduce GUEST_MEDIUM_EJECT & BLOCK_MEDIUM_CHANGED |
Date: |
Tue, 7 Feb 2012 16:09:44 -0200 |
I've tried to implement a BLOCK_MEDIUM_EJECT event that, as we discussed[1],
would be emitted by guest-initiated ejects and by the QMP/HMP eject and change
commands.
However, that turned to be a bit problematic, because the eject and change
commands don't exactly handle tray movements: they actually insert/purge a
medium from from the drive.
Consider this example: you have a medium inserted and locked; a first eject
from HMP will tell the guest to eject the medium; if the guest does eject, a
second eject from HMP will just purge the medium (in which case
BLOCK_MEDIUM_EJECT is a bad event to be emitted).
What we really want to do is to tell mngt that the medium was purged.
The same is valid for the change command: we want to inform mngt if a medium
was inserted or purged and not emulate tray movements with two eject events
as we discussed[1].
So, the solution I came up with is to have two events:
o GUEST_MEDIUM_EJECTED: emitted when the tray state is changed by the guest
o BLOCK_MEDIUM_CHANGED: emitted when there's a medium change. This should
happen when the eject and change QMP/HMP commands are used
QMP/qmp-events.txt | 38 ++++++++++++++++++++++++++++++++++++++
block.c | 33 ++++++++++++++++++++++++++++++---
block.h | 8 ++++----
block/raw-posix.c | 6 +++---
block/raw.c | 4 ++--
block_int.h | 2 +-
hw/ide/atapi.c | 2 +-
hw/ide/core.c | 8 ++++----
hw/scsi-disk.c | 8 ++++----
hw/virtio-blk.c | 6 +++---
monitor.c | 6 ++++++
monitor.h | 2 ++
12 files changed, 98 insertions(+), 25 deletions(-)
- [Qemu-devel] [RFC 0/5]: QMP: Introduce GUEST_MEDIUM_EJECT & BLOCK_MEDIUM_CHANGED,
Luiz Capitulino <=
- [Qemu-devel] [PATCH 2/5] block: bdrv_eject(): Make eject_flag a real bool, Luiz Capitulino, 2012/02/07
- [Qemu-devel] [PATCH 3/5] block: bdrv_eject(): Add tray_changed parameter, Luiz Capitulino, 2012/02/07
- [Qemu-devel] [PATCH 5/5] qmp: add the BLOCK_MEDIUM_CHANGED event, Luiz Capitulino, 2012/02/07
- [Qemu-devel] [PATCH 4/5] qmp: add the GUEST_MEDIUM_EJECTED event, Luiz Capitulino, 2012/02/07
- [Qemu-devel] [PATCH 1/5] block: Rename bdrv_mon_event() & BlockMonEventAction, Luiz Capitulino, 2012/02/07
- Re: [Qemu-devel] [RFC 0/5]: QMP: Introduce GUEST_MEDIUM_EJECT & BLOCK_MEDIUM_CHANGED, Markus Armbruster, 2012/02/09
- Re: [Qemu-devel] [RFC 0/5]: QMP: Introduce GUEST_MEDIUM_EJECT & BLOCK_MEDIUM_CHANGED, Paolo Bonzini, 2012/02/10