From: Sasha Levin <levinsasha928@gmail.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: Gleb Natapov <gleb@redhat.com>,
Jan Kiszka <jan.kiszka@siemens.com>,
rusty@rustcorp.com.au, qemu-devel <qemu-devel@nongnu.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Avi Kivity <avi@redhat.com>, kvm list <kvm@vger.kernel.org>,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Subject: Re: [PATCH v7.5] kvm: notify host when the guest is panicked
Date: Mon, 23 Jul 2012 01:50:56 +0200 [thread overview]
Message-ID: <500C91E0.8090108@gmail.com> (raw)
In-Reply-To: <87txwzctje.fsf@codemonkey.ws>
On 07/23/2012 12:36 AM, Anthony Liguori wrote:
> 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.
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.
WARNING: multiple messages have this Message-ID (diff)
From: Sasha Levin <levinsasha928@gmail.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: Wen Congyang <wency@cn.fujitsu.com>,
Gleb Natapov <gleb@redhat.com>, kvm list <kvm@vger.kernel.org>,
Jan Kiszka <jan.kiszka@siemens.com>,
qemu-devel <qemu-devel@nongnu.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Avi Kivity <avi@redhat.com>,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
rusty@rustcorp.com.au
Subject: Re: [Qemu-devel] [PATCH v7.5] kvm: notify host when the guest is panicked
Date: Mon, 23 Jul 2012 01:50:56 +0200 [thread overview]
Message-ID: <500C91E0.8090108@gmail.com> (raw)
In-Reply-To: <87txwzctje.fsf@codemonkey.ws>
On 07/23/2012 12:36 AM, Anthony Liguori wrote:
> 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.
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.
WARNING: multiple messages have this Message-ID (diff)
From: Sasha Levin <levinsasha928@gmail.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: Gleb Natapov <gleb@redhat.com>,
Jan Kiszka <jan.kiszka@siemens.com>,
rusty@rustcorp.com.au, qemu-devel <qemu-devel@nongnu.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Avi Kivity <avi@redhat.com>, kvm list <kvm@vger.kernel.org>,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Subject: Re: [Qemu-devel] [PATCH v7.5] kvm: notify host when the guest is panicked
Date: Mon, 23 Jul 2012 01:50:56 +0200 [thread overview]
Message-ID: <500C91E0.8090108@gmail.com> (raw)
In-Reply-To: <87txwzctje.fsf@codemonkey.ws>
On 07/23/2012 12:36 AM, Anthony Liguori wrote:
> 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.
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.
next prev parent reply other threads:[~2012-07-22 23:50 UTC|newest]
Thread overview: 64+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-21 7:12 [PATCH v7] kvm: notify host when the guest is panicked Wen Congyang
2012-07-21 7:12 ` [Qemu-devel] " Wen Congyang
2012-07-21 7:14 ` [PATCH 1/6 v7] start vm after reseting it Wen Congyang
2012-07-21 7:14 ` [Qemu-devel] " Wen Congyang
2012-07-21 7:14 ` [PATCH 2/6 v7] kvm: Update kernel headers Wen Congyang
2012-07-21 7:14 ` [Qemu-devel] " Wen Congyang
2012-07-21 7:15 ` [PATCH 3/6 v7] add a new runstate: RUN_STATE_GUEST_PANICKED Wen Congyang
2012-07-21 7:15 ` [Qemu-devel] " Wen Congyang
2012-07-21 7:16 ` [PATCH 4/6 v7] add a new qevent: QEVENT_GUEST_PANICKED Wen Congyang
2012-07-21 7:16 ` [Qemu-devel] " Wen Congyang
2012-07-21 7:16 ` [PATCH 5/6 v7] introduce a new qom device to deal with panicked event Wen Congyang
2012-07-21 7:16 ` [Qemu-devel] " Wen Congyang
2012-07-21 7:19 ` [PATCH 6/6 v7] allow the user to disable pv event support Wen Congyang
2012-07-21 7:19 ` [Qemu-devel] " Wen Congyang
2012-07-21 7:19 ` [PATCH v7] kvm: notify host when the guest is panicked Jan Kiszka
2012-07-21 7:19 ` [Qemu-devel] " Jan Kiszka
2012-07-21 7:19 ` Jan Kiszka
2012-07-21 8:41 ` Wen Congyang
2012-07-21 8:41 ` [Qemu-devel] " Wen Congyang
2012-07-21 8:41 ` Wen Congyang
2012-07-21 8:44 ` [PATCH v7.5] " Wen Congyang
2012-07-21 8:44 ` [Qemu-devel] " Wen Congyang
2012-07-22 11:39 ` Sasha Levin
2012-07-22 11:39 ` [Qemu-devel] " Sasha Levin
2012-07-22 11:39 ` Sasha Levin
2012-07-22 19:14 ` Anthony Liguori
2012-07-22 19:14 ` Anthony Liguori
2012-07-22 20:03 ` Sasha Levin
2012-07-22 20:03 ` [Qemu-devel] " Sasha Levin
2012-07-22 20:03 ` Sasha Levin
2012-07-22 22:36 ` Anthony Liguori
2012-07-22 22:36 ` [Qemu-devel] " Anthony Liguori
2012-07-22 22:36 ` Anthony Liguori
2012-07-22 23:50 ` Sasha Levin [this message]
2012-07-22 23:50 ` Sasha Levin
2012-07-22 23:50 ` Sasha Levin
2012-07-23 2:08 ` Wen Congyang
2012-07-23 2:08 ` [Qemu-devel] " Wen Congyang
2012-07-23 2:08 ` Wen Congyang
2012-07-23 2:07 ` Wen Congyang
2012-07-23 2:07 ` [Qemu-devel] " Wen Congyang
2012-07-23 2:07 ` Wen Congyang
2012-07-21 10:50 ` [Qemu-devel] [PATCH v7] " Sasha Levin
2012-07-21 10:50 ` Sasha Levin
2012-07-22 19:22 ` Anthony Liguori
2012-07-22 19:22 ` [Qemu-devel] " Anthony Liguori
2012-07-22 19:22 ` Anthony Liguori
2012-07-22 20:19 ` Sasha Levin
2012-07-22 20:19 ` [Qemu-devel] " Sasha Levin
2012-07-22 20:19 ` Sasha Levin
2012-07-22 20:31 ` Sasha Levin
2012-07-22 20:31 ` [Qemu-devel] " Sasha Levin
2012-07-22 20:31 ` Sasha Levin
2012-07-22 22:29 ` Anthony Liguori
2012-07-22 22:29 ` [Qemu-devel] " Anthony Liguori
2012-07-22 22:29 ` Anthony Liguori
2012-07-22 23:35 ` Sasha Levin
2012-07-22 23:35 ` [Qemu-devel] " Sasha Levin
2012-07-22 23:35 ` Sasha Levin
2012-07-22 22:20 ` Anthony Liguori
2012-07-22 22:20 ` [Qemu-devel] " Anthony Liguori
2012-07-22 22:20 ` Anthony Liguori
2012-07-23 6:27 ` Wen Congyang
2012-07-23 6:27 ` Wen Congyang
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=500C91E0.8090108@gmail.com \
--to=levinsasha928@gmail.com \
--cc=anthony@codemonkey.ws \
--cc=avi@redhat.com \
--cc=gleb@redhat.com \
--cc=jan.kiszka@siemens.com \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=qemu-devel@nongnu.org \
--cc=rusty@rustcorp.com.au \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.