From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:38231) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S7l65-0006a1-2T for qemu-devel@nongnu.org; Wed, 14 Mar 2012 06:06:27 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S7l5y-0007pN-4e for qemu-devel@nongnu.org; Wed, 14 Mar 2012 06:06:20 -0400 Received: from [222.73.24.84] (port=54786 helo=song.cn.fujitsu.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S7l5x-0007pA-Pz for qemu-devel@nongnu.org; Wed, 14 Mar 2012 06:06:14 -0400 Message-ID: <4F606D38.2070107@cn.fujitsu.com> Date: Wed, 14 Mar 2012 18:04:40 +0800 From: Wen Congyang MIME-Version: 1.0 References: <4F58664D.1070800@cn.fujitsu.com> <4F58943E.1050402@redhat.com> <4F595B31.9090301@cn.fujitsu.com> <4F5DBC26.7060204@cn.fujitsu.com> <4F5DD0FD.9070904@redhat.com> <20120313091843.GB3800@redhat.com> <4F5F25BF.7060100@redhat.com> <4F6056FE.3020202@cn.fujitsu.com> <20120314095114.GA4136@amit.redhat.com> In-Reply-To: <20120314095114.GA4136@amit.redhat.com> Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=ISO-8859-1 Subject: Re: [Qemu-devel] [PATCH 0/2 v3] kvm: notify host when guest panicked List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Amit Shah Cc: Gleb Natapov , kvm list , Jan Kiszka , "linux-kernel@vger.kernel.org" , qemu-devel , Avi Kivity , KAMEZAWA Hiroyuki At 03/14/2012 05:51 PM, Amit Shah Wrote: > On (Wed) 14 Mar 2012 [16:29:50], Wen Congyang wrote: >> At 03/13/2012 06:47 PM, Avi Kivity Wrote: >>> On 03/13/2012 11:18 AM, Daniel P. Berrange wrote: >>>> On Mon, Mar 12, 2012 at 12:33:33PM +0200, Avi Kivity wrote: >>>>> On 03/12/2012 11:04 AM, Wen Congyang wrote: >>>>>> Do you have any other comments about this patch? >>>>>> >>>>> >>>>> Not really, but I'm not 100% convinced the patch is worthwhile. It's >>>>> likely to only be used by Linux, which has kexec facilities, and you can >>>>> put talk to management via virtio-serial and describe the crash in more >>>>> details than a simple hypercall. >>>> >>>> As mentioned before, I don't think virtio-serial is a good fit for this. >>>> We want something that is simple & guaranteed always available. Using >>>> virtio-serial requires significant setup work on both the host and guest. >>> >>> So what? It needs to be done anyway for the guest agent. >>> >>>> Many management application won't know to make a vioserial device available >>>> to all guests they create. >>> >>> Then they won't know to deal with the panic event either. >>> >>>> Most administrators won't even configure kexec, >>>> let alone virtio serial on top of it. >>> >>> It should be done by the OS vendor, not the individual admin. >>> >>>> The hypercall requires zero host >>>> side config, and zero guest side config, which IMHO is what we need for >>>> this feature. >>> >>> If it was this one feature, yes. But we keep getting more and more >>> features like that and we bloat the hypervisor. There's a reason we >>> have a host-to-guest channel, we should use it. >>> >> >> I donot know how to use virtio-serial. >> >> I start vm like this: >> qemu ...\ >> -device virtio-serial \ >> -chardev socket,path=/tmp/foo,server,nowait,id=foo \ >> -device virtserialport,chardev=foo,name=port1 ... > > This is sufficient. On the host, you can open /tmp/foo using a custom > program or nc (nc -U /tmp/foo). On the guest, you can just open > /dev/virtio-ports/port1 and read/write into it. I have two questions: 1. does it OK to open this device when the guest is panicked? 2. how to prevent the userspace's program using this device? Thanks Wen Congyang > > See the following links for more details. > > https://fedoraproject.org/wiki/Features/VirtioSerial#How_To_Test > http://www.linux-kvm.org/page/Virtio-serial_API > >> You said that there are too many channels. Does it mean /tmp/foo is a channel? > > You can have several such -device virtserialport. The -device part > describes what the guest will see. The -chardev part ties that to the > host-side part of the channel. > > /tmp/foo is the host end-point for the channel, in the example above, > and /dev/virtio-ports/port1 is the guest-side end-point. > > Amit >