qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Anthony Liguori <anthony@codemonkey.ws>
To: Paolo Bonzini <pbonzini@redhat.com>, Laszlo Ersek <lersek@redhat.com>
Cc: pkrempa@redhat.com, marcel.a@redhat.com, libvir-list@redhat.com,
	hutao@cn.fujitsu.com, mst@redhat.com, qemu-devel@nongnu.org,
	armbru@redhat.com, rhod@redhat.com, kraxel@redhat.com,
	lcapitulino@redhat.com, afaerber@suse.de
Subject: Re: [Qemu-devel] pvpanic plans?
Date: Thu, 22 Aug 2013 15:09:06 -0500	[thread overview]
Message-ID: <87eh9lqyhp.fsf@codemonkey.ws> (raw)
In-Reply-To: <521663A9.6040207@redhat.com>

Paolo Bonzini <pbonzini@redhat.com> writes:

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

If you make the panic notify a config space write, then on virtio-pci,
it's an outb to a fixed offset within a io address that after boot is
static.

So the address could be stored in a global and accessed without a lock.

> This is why we went for a simple ISA device.

"Simple ISA device" doesn't exist outside of x86 and as we are learning,
it's not all that simple.

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

The difference is that ACPI or platform devices in general are
unexpected to be added.  By definition it means that the motherboard has
most likely been changed.

OTOH, a new PCI device is expected and most OSes will deal gracefully
with it.

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

Neither of which actually work with modern versions of Windows FWIW.

Plus emulated watchdogs do not take into account steal time or
overcommit in general.  I've seen multiple cases where a naive watchdog
has a problem in the field when the system is under heavy load.

A PV watchdog actually makes sense because it can be defined based on
guest run time instead of wall clock time.

Regards,

Anthony Liguori

>
> Paolo

  reply	other threads:[~2013-08-22 20:09 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-22 16:10 [Qemu-devel] pvpanic plans? Paolo Bonzini
2013-08-22 16:44 ` Anthony Liguori
2013-08-22 17:53   ` Laszlo Ersek
2013-08-22 18:25     ` Anthony Liguori
2013-08-27  8:42       ` Richard W.M. Jones
2013-08-22 19:16     ` Paolo Bonzini
2013-08-22 20:09       ` Anthony Liguori [this message]
2013-08-22 20:36         ` Laszlo Ersek
2013-08-22 20:39           ` Anthony Liguori
2013-08-23  8:52             ` Paolo Bonzini
2013-08-22 21:08         ` Peter Maydell
2013-08-27  8:06         ` Richard W.M. Jones
2013-08-27 13:08           ` Ronen Hod
2013-08-27 13:20             ` Richard W.M. Jones
2013-08-27 13:26               ` Anthony Liguori
2013-08-27 13:57                 ` Richard W.M. Jones
2013-08-27 13:13       ` [Qemu-devel] [libvirt] " Daniel P. Berrange
2013-08-27 13:17         ` Anthony Liguori
2013-08-27 13:21         ` Richard W.M. Jones
2013-08-22 17:15 ` [Qemu-devel] " Laszlo Ersek
2013-08-22 18:33   ` Anthony Liguori
2013-08-22 19:44     ` Christian Borntraeger
2013-08-22 19:19   ` Paolo Bonzini
2013-08-22 19:41     ` Laszlo Ersek
2013-08-22 20:02       ` [Qemu-devel] [libvirt] " Eric Blake
2013-10-24  2:39 ` [Qemu-devel] " Hu Tao
2013-10-29 16:01   ` Markus Armbruster
2013-10-31 14:30   ` Michael S. Tsirkin
2013-10-31 14:32     ` Eric Blake
2013-10-31 14:34       ` Anthony Liguori
2013-10-31 14:39       ` Paolo Bonzini
2013-10-31 14:52         ` Michael S. Tsirkin
2013-10-31 14:56           ` Paolo Bonzini
2013-10-31 15:09             ` Michael S. Tsirkin
2013-10-31 15:26               ` Paolo Bonzini
2013-10-31 15:45                 ` Michael S. Tsirkin
2013-10-31 15:56                   ` Paolo Bonzini
2013-10-31 16:14                     ` Michael S. Tsirkin
2013-10-31 16:17                       ` Paolo Bonzini
2013-10-31 16:26                         ` Michael S. Tsirkin
2013-10-31 16:38                           ` Paolo Bonzini
2013-10-31 16:48                             ` Michael S. Tsirkin
2013-10-31 16:52                               ` Paolo Bonzini
2013-10-31 17:00                                 ` Michael S. Tsirkin
2013-10-31 17:09                                   ` Paolo Bonzini
2013-10-31 17:01                             ` Michael S. Tsirkin
2013-10-31 17:10                               ` Paolo Bonzini
2013-10-31 17:18                                 ` Michael S. Tsirkin
2013-10-31 18:03                                   ` Paolo Bonzini
2013-10-31 16:28                         ` Michael S. Tsirkin
2013-10-31 14:47       ` Michael S. Tsirkin
2013-10-31 14:49         ` Eric Blake
2013-10-31 15:07           ` Michael S. Tsirkin
2013-11-04  9:25     ` Christian Borntraeger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87eh9lqyhp.fsf@codemonkey.ws \
    --to=anthony@codemonkey.ws \
    --cc=afaerber@suse.de \
    --cc=armbru@redhat.com \
    --cc=hutao@cn.fujitsu.com \
    --cc=kraxel@redhat.com \
    --cc=lcapitulino@redhat.com \
    --cc=lersek@redhat.com \
    --cc=libvir-list@redhat.com \
    --cc=marcel.a@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=pkrempa@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=rhod@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).