From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MpxaY-0000BX-U2 for qemu-devel@nongnu.org; Tue, 22 Sep 2009 01:06:54 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MpxaU-0000BK-BL for qemu-devel@nongnu.org; Tue, 22 Sep 2009 01:06:54 -0400 Received: from [199.232.76.173] (port=49950 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MpxaU-0000BH-4w for qemu-devel@nongnu.org; Tue, 22 Sep 2009 01:06:50 -0400 Received: from ozlabs.org ([203.10.76.45]:42491) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1MpxaT-0000ab-EZ for qemu-devel@nongnu.org; Tue, 22 Sep 2009 01:06:49 -0400 From: Rusty Russell Date: Tue, 22 Sep 2009 14:36:38 +0930 References: <20090907181436.GA8538@redhat.com> <4AA60A58.4090703@redhat.com> <20090914113958.GA14238@redhat.com> In-Reply-To: <20090914113958.GA14238@redhat.com> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200909221436.39376.rusty@rustcorp.com.au> 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: "Michael S. Tsirkin" Cc: john cooper , qemu-devel@nongnu.org, jens.axboe@oracle.com On Mon, 14 Sep 2009 09:09:59 pm Michael S. Tsirkin wrote: > 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. lguest uses the same workaround (since we don't support that feature anyway at the moment). Thanks! Rusty.