From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NKBV4-0004XX-Lm for qemu-devel@nongnu.org; Mon, 14 Dec 2009 09:02:10 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NKBUz-0004Tf-1r for qemu-devel@nongnu.org; Mon, 14 Dec 2009 09:02:09 -0500 Received: from [199.232.76.173] (port=42183 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NKBUy-0004TM-8Z for qemu-devel@nongnu.org; Mon, 14 Dec 2009 09:02:04 -0500 Received: from mx1.redhat.com ([209.132.183.28]:1025) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NKBUx-0007WS-L7 for qemu-devel@nongnu.org; Mon, 14 Dec 2009 09:02:04 -0500 Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id nBEE1wJO019919 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 14 Dec 2009 09:01:58 -0500 Date: Mon, 14 Dec 2009 15:59:15 +0200 From: "Michael S. Tsirkin" Subject: Re: [Qemu-devel] Re: [PATCH RFC] virtio: add features qdev property Message-ID: <20091214135915.GN973@redhat.com> References: <20091213204341.GA25823@redhat.com> <4B260846.9020503@redhat.com> <20091214094255.GA32140@redhat.com> <4B261269.7080801@redhat.com> <20091214111046.GB32355@redhat.com> <4B262379.1060009@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: Markus Armbruster Cc: Gerd Hoffmann , qemu-devel@nongnu.org On Mon, Dec 14, 2009 at 02:30:19PM +0100, Markus Armbruster wrote: > Gerd Hoffmann writes: > > > On 12/14/09 12:10, Michael S. Tsirkin wrote: > >> On Mon, Dec 14, 2009 at 11:24:41AM +0100, Gerd Hoffmann wrote: > >> for block: > >> if (strcmp(s->serial_str, "0")) > >> features |= 1<< VIRTIO_BLK_F_IDENTIFY; > >> > >> if (bdrv_is_read_only(s->bs)) > >> features |= 1<< VIRTIO_BLK_F_RO; > > > > Sure you want these be configurable? > > > >> Also, I'd like these things to be saved in bits and not add a ton > >> of fields in device. Ideas how to do this? > > > > I guess you only want disable features? It's not an easy quesiton. If we do it as disable bits, then we get incompatible machines when running on different hosts. Would it be better to fail instead? > > You could have a bitmap property then, which accepts names for the > > bits. It would need a table like this ... > > > > char *bitnames[] = { > > [ VIRTIO_BLK_F_IDENTIFY ] = "blk-identify", > > [ VIRTIO_BLK_F_RO [ = "blk-ro", > > [ ... ] > > }; > > > > Then the property parser would accepts strings such as 'bit1|bit2' and > > you can have > > > > -device 'virtio-blk-pci,disable=blk-identify|ring-indirect' > > > > The driver will just do 'vdev->host_features &= ~disable'. > > Use of '|' in option argument syntax is user-hostile, because it > requires quoting in the shell. What about '+'? I am guessing that '|' parsing is already there, but yes + would be a nice touch. -- MST