On Tue, 02 Feb 2010 10:25:19 +0100 Kevin Wolf <kw...@redhat.com> wrote:
> Hi Luiz, > > Am 01.02.2010 19:07, schrieb Luiz Capitulino: > > Hi there, > > > > I've been requested by libvirt guys to add a QMP event for disk I/O errors, > > this is what this series is about. > > > > It's a RFC because I need feedback on the following: > > > > 1. drive_get_on_error() is called on all disk errors, right? > > Well, yes, it is for all devices that support rerror/werror. But it also > might be called in other situations. Look at the "get" in the function > name, it's really a getter function and not a event handler. > > > 2. I've tested only ENOSPC errors, is there a way to test other errors? Like > > read ones? > > So you'll probably want some EIO. Some recent bugs I've been handling > were a about images on NFS when the NFS server want away. It's a > reliable way to get EIO (mount with -osoft and small timeouts). I guess > qemu-nbd and the nbd: protocol might work, too. > > Or maybe copy the start of a qcow2 image to a too small device. Thanks! > > 3. Is this the right approach at all? :) > > Yes and no. As I said above, drive_get_on_error() is not the right place > to do it. Unfortunately it looks like there isn't a single generic place > where it can be done, but the call to the event handler must be added to > every device. Can't it be added to subsystems? Like ide, virtio etc? Maybe in the same function that calls driver_get_on_error()?