From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MqQzg-0003iL-VM for qemu-devel@nongnu.org; Wed, 23 Sep 2009 08:30:49 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MqQzc-0003dT-CL for qemu-devel@nongnu.org; Wed, 23 Sep 2009 08:30:48 -0400 Received: from [199.232.76.173] (port=43009 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MqQzc-0003dL-1M for qemu-devel@nongnu.org; Wed, 23 Sep 2009 08:30:44 -0400 Received: from mx1.redhat.com ([209.132.183.28]:48084) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MqQzb-0000Ik-Fn for qemu-devel@nongnu.org; Wed, 23 Sep 2009 08:30:43 -0400 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id n8NCUgLs004825 for ; Wed, 23 Sep 2009 08:30:42 -0400 Message-ID: <4ABA14EF.2050703@redhat.com> Date: Wed, 23 Sep 2009 14:30:39 +0200 From: Gerd Hoffmann MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH 3/4] virtio-console: Add support for multiple ports for generic guest-host communication References: <1253636627-12746-1-git-send-email-amit.shah@redhat.com> <1253636627-12746-2-git-send-email-amit.shah@redhat.com> <1253636627-12746-3-git-send-email-amit.shah@redhat.com> <1253636627-12746-4-git-send-email-amit.shah@redhat.com> <4AB9E536.4050001@redhat.com> <20090923094340.GA27483@amit-x200.redhat.com> <4ABA0481.6090603@redhat.com> <20090923115043.GA28088@amit-x200.redhat.com> In-Reply-To: <20090923115043.GA28088@amit-x200.redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Amit Shah Cc: qemu-devel@nongnu.org On 09/23/09 13:50, Amit Shah wrote: >> VirtConPortConsole (doesn't exist right now it seems ...). > > You're actually suggesting to split everything -- a console (in the > current sense) is a different device and a port (the new vmchannels) are > different devices. Right? Yes, you'll have two devices. #1 virtio-console which handles all virtio and is the master of the portbus. #2 VirtChanPortConsole, which links the port and the chardev. With this in place you'll have the current virtio-console functionality. And on top you can create multiple console ports. Then we can go enhance things and add more port drivers: #3: One driver which allows external users (i.e. libguestfs) by linking a chardev too and attach a name tag. That one can probably share all code except the init function with the console port driver. #4: the watchdog. #5: the vnc clipboard bits. #6: whatever else we might find useful. Ignoring backward-compatibility for now things should go like this: -device virtio-console Creates the portbus master. No ports (yet). -device vmport-console,chardev=$dev Creates a port named 'org.qemu.console' and links it to $dev. -device vmport-channel,chardev=$dev,name=$name Creates a port named $name, links it to $dev, for libguestfs and other external users. -device vmport-watchdog Creates a port named 'org.qemu.watchdog', start timer when the guest openes the device, restart the watchdog timer each time the guest writes something, trigger watchdog action when the timer expires. Note: No chardev needed here. -device vmport-clipboard vnc clipboard stuff goes here. Probably needs no chardev too. For backward-compatibility we'll allways have to create a vmport-console at port 0, so there will never be a virtio-console without a port. That is a minor bit we can fixup once the above works fine. cheers, Gerd