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.
Paolo