All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] QMP: RFC: I/O error info & query-stop-reason
@ 2011-06-01 21:12 Luiz Capitulino
  2011-06-01 21:35 ` Anthony Liguori
  0 siblings, 1 reply; 48+ messages in thread
From: Luiz Capitulino @ 2011-06-01 21:12 UTC (permalink / raw)
  To: qemu-devel; +Cc: Kevin Wolf, Stefan Hajnoczi, jdenemar, Markus Armbruster

Hi there,

There are people who want to use QMP for thin provisioning. That's, the VM is
started with a small storage and when a no space error is triggered, more space
is allocated and the VM is put to run again.

QMP has two limitations that prevent people from doing this today:

1. The BLOCK_IO_ERROR doesn't contain error information

2. Considering we solve item 1, we still have to provide a way for clients
   to query why a VM stopped. This is needed because clients may miss the
   BLOCK_IO_ERROR event or may connect to the VM while it's already stopped

A proposal to solve both problems follow.

A. BLOCK_IO_ERROR information
-----------------------------

We already have discussed this a lot, but didn't reach a consensus. My solution
is quite simple: to add a stringfied errno name to the BLOCK_IO_ERROR event,
for example (see the "reason" key):

{ "event": "BLOCK_IO_ERROR",
   "data": { "device": "ide0-hd1",
             "operation": "write",
             "action": "stop",
             "reason": "enospc", }
   "timestamp": { "seconds": 1265044230, "microseconds": 450486 } }

Valid error reasons could be: "enospc", "eio", etc.

B. query-stop-reason
--------------------

I also have a simple solution for item 2. The vm_stop() accepts a reason
argument, so we could store it somewhere and return it as a string, like:

-> { "execute": "query-stop-reason" }
<- { "return": { "reason": "user" } }

Valid reasons could be: "user", "debug", "shutdown", "diskfull" (hey,
this should be "ioerror", no?), "watchdog", "panic", "savevm", "loadvm",
"migrate".

Also note that we have a STOP event. It should be extended with the
stop reason too, for completeness.

^ permalink raw reply	[flat|nested] 48+ messages in thread

end of thread, other threads:[~2011-06-08 13:01 UTC | newest]

Thread overview: 48+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-06-01 21:12 [Qemu-devel] QMP: RFC: I/O error info & query-stop-reason Luiz Capitulino
2011-06-01 21:35 ` Anthony Liguori
2011-06-02  9:06   ` Daniel P. Berrange
2011-06-02 13:08     ` Anthony Liguori
2011-06-02 13:24       ` Jiri Denemark
2011-06-02 14:02         ` Anthony Liguori
2011-06-02 18:01           ` Luiz Capitulino
2011-06-02 18:32             ` Anthony Liguori
2011-06-02 18:57               ` Luiz Capitulino
2011-06-02 19:35                 ` Anthony Liguori
2011-06-03  9:26             ` Daniel P. Berrange
2011-06-03 12:43               ` Anthony Liguori
2011-06-03 12:57                 ` Daniel P. Berrange
2011-06-03 13:26                   ` Anthony Liguori
2011-06-03 13:39                     ` Daniel P. Berrange
2011-06-03 13:44                       ` Luiz Capitulino
2011-06-03 14:01                         ` Anthony Liguori
2011-06-03 13:41                     ` Jan Kiszka
2011-06-03 13:51                       ` Anthony Liguori
2011-06-03 13:59                         ` Jan Kiszka
2011-06-03 14:03                         ` Daniel P. Berrange
2011-06-06 11:21           ` Markus Armbruster
2011-06-02 17:57   ` Luiz Capitulino
2011-06-02 18:00     ` Anthony Liguori
2011-06-02 18:09       ` Luiz Capitulino
2011-06-02 18:33         ` Anthony Liguori
2011-06-02 19:13           ` Luiz Capitulino
2011-06-02 20:03             ` Anthony Liguori
2011-06-02 20:13               ` [Qemu-devel] [libvirt] " Eric Blake
2011-06-02 20:55                 ` Anthony Liguori
2011-06-06  9:25         ` [Qemu-devel] " Kevin Wolf
2011-06-06 11:27           ` Markus Armbruster
2011-06-06 13:09             ` Anthony Liguori
2011-06-06 13:08           ` Anthony Liguori
2011-06-06 15:27             ` Daniel P. Berrange
2011-06-06 15:30               ` Luiz Capitulino
2011-06-08 12:59                 ` Anthony Liguori
2011-06-07 14:46             ` Luiz Capitulino
2011-06-07 15:39               ` Anthony Liguori
2011-06-07 15:54                 ` Luiz Capitulino
2011-06-07 16:32                   ` Anthony Liguori
2011-06-07 17:43                     ` Luiz Capitulino
2011-06-07 18:43                       ` Anthony Liguori
2011-06-07 18:48                         ` Luiz Capitulino
2011-06-07 15:41               ` Markus Armbruster
2011-06-07 16:31                 ` Anthony Liguori
2011-06-06 11:13   ` Markus Armbruster
2011-06-06 11:28     ` Markus Armbruster

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.