On Thu, Aug 22, 2013 at 09:16:57PM +0200, Paolo Bonzini wrote:
Il 22/08/2013 19:53, Laszlo Ersek ha scritto:
>> > We should just introduce a simple watchdog device based on virtio and
>> > call it a day. Then it's cross platform, solves the guest enumeration
>> > problem, and libvirt can detect the presence of the new device.
> If the guest doesn't initialize the proposed virtio-panic device, then
> it will lie dormant too, just like the current pvpanic device. That's good.
>
> However a new (standalone) virtio device will take up yet another PCI
> function (a full device if you want it to be hotpluggable). PCI
> functions are scarcer than ioports.
Not just that. Panic notifiers are called in a substantially unknown
environment, with locks taken or interrupts already set up.
This is why we went for a simple ISA device. Configuration via ACPI
follows naturally from there, and anyway any other standard of the day
would have had the same problem with Windows. At some point we had ACPI
methods instead of a simple ioport write, but we had to remove that
because the ACPI subsystem might have had its lock taken.
Also, a virtio watchdog device makes little sense, IMHO. PV makes sense
if emulation has insufficient performance, excessive CPU usage, or
excessive complexity. We already have both an ISA and a PCI watchdog,
and they serve their purpose wonderfully.
I also don't think that panic notifiers & watchdogs are really
serving the same purpose. The panic notifier is an alert to a
specific known kernel crash. A watchdog is merely a timeout,
which is inferred to mean /something/ went wrong. Both have
their uses IMHO & we should not conflate the two.
Daniel
--
|:
http://berrange.com -o-
http://www.flickr.com/photos/dberrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|:
http://entangle-photo.org -o-
http://live.gnome.org/gtk-vnc :|