From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Mn9wQ-00024w-Un for qemu-devel@nongnu.org; Mon, 14 Sep 2009 07:41:55 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Mn9wM-00021g-89 for qemu-devel@nongnu.org; Mon, 14 Sep 2009 07:41:54 -0400 Received: from [199.232.76.173] (port=45887 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Mn9wM-00021W-0Y for qemu-devel@nongnu.org; Mon, 14 Sep 2009 07:41:50 -0400 Received: from mx1.redhat.com ([209.132.183.28]:49312) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Mn9wL-0004dH-GC for qemu-devel@nongnu.org; Mon, 14 Sep 2009 07:41:49 -0400 Date: Mon, 14 Sep 2009 14:39:59 +0300 From: "Michael S. Tsirkin" Message-ID: <20090914113958.GA14238@redhat.com> References: <20090907181436.GA8538@redhat.com> <4AA60A58.4090703@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4AA60A58.4090703@redhat.com> Subject: [Qemu-devel] Re: [PATCH] qemu: make virtio-blk PCI compliant by default List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: john cooper Cc: rusty@rustcorp.com.au, qemu-devel@nongnu.org, jens.axboe@oracle.com On Tue, Sep 08, 2009 at 03:40:08AM -0400, john cooper wrote: > Michael S. Tsirkin wrote: > > commit bf011293faaa7f87e4de83185931e7411b794128 made virtio-blk-pci not > > PCI-compliant, since it makes region 0 (which is an i/o region) > > size > 256, and, since PCI 2.1, i/o regions are limited to 256 bytes size. > > > > When the ATA serial number feature is off, which is the default, > > make the device spec compliant again, by making region 0 smaller. > > I'd hazard this is the cause of the breakage others > encountered -- even when the driver was initialized > but unused. For some odd reason I hadn't seen nor > been able to reproduce the failure. > > The mock-up of an entire ATA IDENTIFY page is really > overkill for what we're trying to accomplish here, > namely passing a 20 byte S/N from qemu to the guest. > However emulating and passing an IDENTIFY page allows > guest apps to interpret the information via an > existing interface, with the guest driver doing nothing > more than transferring the data as opaque. During > review, other defined fields of the IDENTIFY page were > speculated to be potentially useful thus the entire > 512 byte page was passed wholesale. But it is clearly > more trouble than benefit at this point. I'll rework > the patch or use an alternate mechanism. > > -john For now, what my patch does is fix the PCI compliance issue for everyone who uses the default setup (without the serial #). With serial disabled, we should not reserve any space in region 0 (not even 20 bytes). So I propose we apply this patch for now, and then your patch only has to handle the case of serial number enabled. Makes sense? If yes pls ack. > -- > john.cooper@redhat.com