On 07/23/2012 12:36 AM, Anthony Liguori wrote: > Sasha Levin <levinsasha928@xxxxxxxxx> writes: > >> On 07/22/2012 09:14 PM, Anthony Liguori wrote: >>> Sasha Levin <levinsasha928@xxxxxxxxx> 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. I don't dispute that there may be a need for another guest-host interface, but this patch can basically be called "kvm: notify host when the guest is panicked, oh, btw, and add a brand new undocumented interface" The new interface should at least come in it's own patch, with documentation. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html