From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:35890) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RLiho-0007Ao-0l for qemu-devel@nongnu.org; Wed, 02 Nov 2011 17:50:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RLihm-0006OQ-Rk for qemu-devel@nongnu.org; Wed, 02 Nov 2011 17:50:43 -0400 Received: from mx1.redhat.com ([209.132.183.28]:61178) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RLihm-0006OL-GY for qemu-devel@nongnu.org; Wed, 02 Nov 2011 17:50:42 -0400 Date: Wed, 2 Nov 2011 23:51:42 +0200 From: "Michael S. Tsirkin" Message-ID: <20111102215141.GA15271@redhat.com> References: <1317360376-12090-1-git-send-email-david@gibson.dropbear.id.au> <4EB07096.4070806@us.ibm.com> <87r51rtdgw.fsf@rustcorp.com.au> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <87r51rtdgw.fsf@rustcorp.com.au> Subject: Re: [Qemu-devel] [PATCH] virtio: Add PCI memory BAR in addition to PIO BAR List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Rusty Russell Cc: Alexey Kardashevskiy , Anthony Liguori , qemu-devel@nongnu.org, Sasha Levin , David Gibson On Wed, Nov 02, 2011 at 01:52:55PM +1030, Rusty Russell wrote: > On Tue, 01 Nov 2011 17:20:06 -0500, Anthony Liguori wrote: > > On 09/30/2011 12:26 AM, David Gibson wrote: > > > Currently, virtio devices are usually presented to the guest as an > > > emulated PCI device, virtio_pci. Although the actual IO operations > > > are done through system memory, the configuration of the virtio device > > > is done through the one PCI IO space BAR that virtio_pci presents. > > > > > > But PCI IO space (aka PIO) is deprecated for modern PCI devices, and > > > on some systems with many PCI domains accessing PIO space can be > > > problematic. For example on the existing PowerVM implementation of > > > the PAPR spec, PCI PIO access is not supported at all. We're hoping > > > that our KVM implementation will support PCI PIO (once we support PCI > > > at all), but it will probably have some irritating limitations. > > > > > > This patch, therefore, extends the virtio_pci device to have a PCI > > > memory space (MMIO) BAR as well as the IO BAR. The MMIO BAR contains > > > exactly the same registers, in exactly the same layout as the existing > > > PIO BAR. > > > > > > Because the PIO BAR is still present, existing guest drivers should > > > still work fine. With this change in place, future guest drivers can > > > check for an MMIO BAR and use that if present (falling back to PIO > > > when possible to support older qemu versions). > > > > > > Signed-off-by: David Gibson > > > > Seems harmless for QEMU, so applied. You should update the virtio-pci spec too. > > > > Regards, > > Can you revert this? We just reverted the kernel part, figuring we need > a rethink. > > Thanks, > Rusty. By the way, it looks like linux guests already do pci_iomap to get at the BAR. And that is supposed to work fine with both memory and IO. So a very simple solution, without touching linux guests, would be to allow changing BAR 0 type to memory in QEMU. It'll break non-linux guests unfortunately, but maybe that's not an issue for PowerVM? -- MST