From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Mjc1J-0003qz-4V for qemu-devel@nongnu.org; Fri, 04 Sep 2009 12:52:17 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Mjc1D-0003q7-TZ for qemu-devel@nongnu.org; Fri, 04 Sep 2009 12:52:16 -0400 Received: from [199.232.76.173] (port=37798 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Mjc1D-0003q4-C6 for qemu-devel@nongnu.org; Fri, 04 Sep 2009 12:52:11 -0400 Received: from mx1.redhat.com ([209.132.183.28]:24851) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Mjc1C-0005Vq-31 for qemu-devel@nongnu.org; Fri, 04 Sep 2009 12:52:10 -0400 Date: Fri, 4 Sep 2009 22:21:44 +0530 From: Amit Shah Subject: Re: [Qemu-devel] [PATCH] virtio-console: Have a static instance of virtconsole Message-ID: <20090904165144.GA31352@amit-x200.redhat.com> References: <1252055670-26958-1-git-send-email-amit.shah@redhat.com> <20090904163306.GA31086@amit-x200.redhat.com> <20090904164030.GA31240@amit-x200.redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Blue Swirl Cc: qemu-devel@nongnu.org On (Fri) Sep 04 2009 [19:45:41], Blue Swirl wrote: > On Fri, Sep 4, 2009 at 7:40 PM, Amit Shah wrote: > >> >> > Currently the VirtIOConsole struct is allocated from the call > >> >> > to virtio_common_init, also doing an UP_CAST implicitly. > >> >> > > >> >> > The new multiport functionality will need a few arrays and > >> >> > it's easier to move to the new VMState infrastructure by > >> >> > keeping it all within one struct. > >> >> > >> >> > +VirtIOConsole virtconsole; > >> >> > >> >> IMHO this is going to wrong direction. What kind of code would need a > >> >> static instance? > >> > > >> > Adding multiple ports to the console device, we'll have to store an > >> > array of ports here as well as config space. Both of these are > >> > device-specific. > >> > >> There could be a master device which managed all ports. > > > > There's only one instance of a virtio device created, and this device > > hosts multiple ports. And VirIOConsole is the master structure. > > But instead of this, you should have a separate structure for the > master one, if that way you can avoid the static instance. The problem with that is that the config space and the ports array have to be made static anyway (because they get used at command-line parsing time, before the virtio-console init function is called). So there's no net gain for doing it that way and we're just keeping things outside of the struct. And that doesn't fit well with the new proposed VMState handlers. Amit