lkml.org 
[lkml]   [2012]   [Jul]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [Qemu-devel] [PATCH v7.5] kvm: notify host when the guest is panicked
    Date
    Sasha Levin <levinsasha928@gmail.com> writes:

    > On 07/22/2012 09:14 PM, Anthony Liguori wrote:
    >> Sasha Levin <levinsasha928@gmail.com> writes:
    >>
    >>> On 07/21/2012 10:44 AM, Wen Congyang wrote:
    >>>> We can know the guest is panicked when the guest runs on xen.
    >>>> But we do not have such feature on kvm.
    >>>>
    >>>> Another purpose of this feature is: management app(for example:
    >>>> libvirt) can do auto dump when the guest is panicked. If management
    >>>> app does not do auto dump, the guest's user can do dump by hand if
    >>>> he sees the guest is panicked.
    >>>>
    >>>> We have three solutions to implement this feature:
    >>>> 1. use vmcall
    >>>> 2. use I/O port
    >>>> 3. use virtio-serial.
    >>>>
    >>>> We have decided to avoid touching hypervisor. The reason why I choose
    >>>> choose the I/O port is:
    >>>> 1. it is easier to implememt
    >>>> 2. it does not depend any virtual device
    >>>> 3. it can work when starting the kernel
    >>>
    >>> Was the option of implementing a virtio-watchdog driver considered?
    >>>
    >>> You're basically re-implementing a watchdog, a guest-host interface and a set of protocols for guest-host communications.
    >>>
    >>> Why can't we re-use everything we have now, push a virtio watchdog
    >>> driver into drivers/watchdog/, and gain a more complete solution to
    >>> detecting hangs inside the guest.
    >>
    >> The purpose of virtio is not to reinvent every possible type of device.
    >> There are plenty of hardware watchdogs that are very suitable to be used
    >> for this purpose. QEMU implements quite a few already.
    >>
    >> Watchdogs are not performance sensitive so there's no point in using
    >> virtio.
    >
    > The issue here is not performance, but the adding of a brand new
    > guest-host interface.

    We have:

    1) Virtio--this is our preferred PV interface. It needs PCI to be fully
    initialized and probably will live as a module.

    2) Hypercalls--this a secondary PV interface but is available very
    early. It's terminated in kvm.ko which means it can only operate on
    things that are logically part of the CPU and/or APIC complex.

    This patch introduces a third interface which is available early like
    hypercalls but not necessarily terminated in kvm.ko. That means it can
    have a broader scope in functionality than (2).

    We could just as well use a hypercall and have multiple commands issued
    to that hypercall as a convention and add a new exit type to KVM that
    sent that specific hypercall to userspace for processing.

    But a PIO operation already has this behavior and requires no changes to kvm.ko.

    > virtio-rng isn't performance sensitive either, yet it was implemented
    > using virtio so there wouldn't be yet another interface to communicate
    > between guest and host.

    There isn't really an obvious discrete RNG that is widely supported.

    > This patch goes ahead to add a "arch pv features" interface using
    > ioports, without any idea what it might be used for beyond this
    > watchdog.

    It's not a watchdog--it's the opposite of a watchdog.

    You know such a thing already exists in the kernel, right? S390 has had
    a hypercall like this for years.

    Regards,

    Anthony Liguori


    \
     
     \ /
      Last update: 2012-07-23 01:21    [W:5.725 / U:0.076 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site