On Tue, Aug 27, 2013 at 8:13 AM, Daniel P. Berrange <berrange(a)redhat.com> wrote:
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.
Even if you ignore the watchdog aspect of this, having a portable
panic notifier and the ability to enhance it to include more
information (like the backtrace, etc.) is pretty darn useful.
Regards,
Anthony Liguori