From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MntPE-0003rh-TN for qemu-devel@nongnu.org; Wed, 16 Sep 2009 08:14:41 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MntPA-0003q8-CI for qemu-devel@nongnu.org; Wed, 16 Sep 2009 08:14:40 -0400 Received: from [199.232.76.173] (port=51176 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MntPA-0003q5-5H for qemu-devel@nongnu.org; Wed, 16 Sep 2009 08:14:36 -0400 Received: from mx1.redhat.com ([209.132.183.28]:28912) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MntP9-0003bC-Oe for qemu-devel@nongnu.org; Wed, 16 Sep 2009 08:14:36 -0400 From: Juan Quintela In-Reply-To: <20090916115224.GA4628@redhat.com> (Michael S. Tsirkin's message of "Wed, 16 Sep 2009 14:52:24 +0300") References: <20090916104620.GA4456@redhat.com> <20090916111845.GJ23157@redhat.com> <20090916115224.GA4628@redhat.com> Date: Wed, 16 Sep 2009 14:14:32 +0200 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Subject: [Qemu-devel] Re: optional feature List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Michael S. Tsirkin" Cc: qemu-devel@nongnu.org, Gleb Natapov "Michael S. Tsirkin" wrote: > On Wed, Sep 16, 2009 at 01:48:35PM +0200, Juan Quintela wrote: >> Gleb Natapov wrote: >> > On Wed, Sep 16, 2009 at 01:04:19PM +0200, Juan Quintela wrote: >> >> "Michael S. Tsirkin" wrote: >> >> > On Wed, Sep 09, 2009 at 10:47:27AM +0200, Juan Quintela wrote: >> >> >> How do we deal with optional features? >> >> > >> >> > Here's an idea that Gleb suggested in a private >> >> > conversation: make optional features into >> >> > separate, non-user-visible devices. >> >> > >> >> > Thus we would have vmstate for virtio and additionally, if msix is >> >> > enabled, vmstate for msix. This solves the problem of the number of >> >> > devices becoming exponential with the number of features: we have device >> >> > per feature. >> >> > >> >> > I understand that RTC does something like this. >> >> >> >> And it is wrong :) I sent a patch to fix it properly, but we have the >> >> problem of backward compatibility with kvm. >> >> >> >> Forget msix for virtio, virtio has the problem already with pci. >> > What is wrong about it? >> >> See below, we are changing the state to one table, and tables don't have >> neither if's or whiles (we have a limited for that just walks arrays). > > Let's just bite the bullet and add support for if's? It's not like it's > hard to invent 'struct vmstate_condition' or some such. I have to do it. The problem is not adding an optional field, is adding it conditionally on _what_, and that _what_ should also be ideally on vmstate. Later, Juan.