From: Alexey Kardashevskiy <aik@ozlabs.ru>
To: Greg Kurz <gkurz@linux.vnet.ibm.com>, qemu-devel@nongnu.org
Cc: agraf@suse.de, qemu-ppc@nongnu.org, anthony@codemonkey.ws,
pbonzini@redhat.com, paulus@samba.org,
david@gibson.dropbear.id.au
Subject: Re: [Qemu-devel] [PATCH] spapr-pci: remove io ports workaround
Date: Tue, 10 Dec 2013 13:43:05 +1100 [thread overview]
Message-ID: <52A67FB9.60109@ozlabs.ru> (raw)
In-Reply-To: <20131209163357.14448.60087.stgit@bahia.local>
On 12/10/2013 03:33 AM, Greg Kurz wrote:
> In the past, IO space could not be mapped into the memory address space
> so we introduced a workaround for that. Nowadays it does not look
> necessary so we can remove the workaround and make sPAPR PCI
> configuration simplier.
>
> This workaround has also an evil side effect with virtio devices: because
> all PHBs have their .io region at the same address, the devices
> get mapped in the .io-alias region of every PHB (AKA. mapped multiple times).
> This breaks the ioeventfd feature and causes qemu to abort() when running
> with KVM and asking for more than one PHB:
>
> $ qemu-system-ppc64 -machine type=pseries,accel=kvm -smp 1 -m 4G \
> -hda /local/greg/images/fedora-be.qcow2 \
> -device virtio-9p-pci,fsdev=fsdev0,mount_tag=share,bus=pci,ioeventfd=on \
> -fsdev local,security_model=none,id=fsdev0,path=$HOME/share1 \
> -device spapr-pci-host-bridge,index=15
> kvm_mem_ioeventfd_add: error adding ioeventfd: File exists
> Aborted
>
> This will prevent to use virtio and VFIO passthrough at the same time, since
> VFIO needs a dedicated PHB to work on ppc.
>
> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
I have not seen this version yet so please remove me from "SOB". The patch
you replied to was eventually reworked and went to upstream as
66aab867cedd2a2d81b4d64eff7c3e0f6f272bbf
This one might be correct too but I want to try this first :)
> Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
> ---
> hw/ppc/spapr_pci.c | 13 ++-----------
> 1 file changed, 2 insertions(+), 11 deletions(-)
>
> diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c
> index 7763149..7d29431 100644
> --- a/hw/ppc/spapr_pci.c
> +++ b/hw/ppc/spapr_pci.c
> @@ -564,23 +564,14 @@ static int spapr_phb_init(SysBusDevice *s)
> memory_region_add_subregion(get_system_memory(), sphb->mem_win_addr,
> &sphb->memwindow);
>
> - /* On ppc, we only have MMIO no specific IO space from the CPU
> - * perspective. In theory we ought to be able to embed the PCI IO
> - * memory region direction in the system memory space. However,
> - * if any of the IO BAR subregions use the old_portio mechanism,
> - * that won't be processed properly unless accessed from the
> - * system io address space. This hack to bounce things via
> - * system_io works around the problem until all the users of
> - * old_portion are updated */
> + /* Initialize IO regions */
> sprintf(namebuf, "%s.io", sphb->dtbusname);
> memory_region_init(&sphb->iospace, OBJECT(sphb),
> namebuf, SPAPR_PCI_IO_WIN_SIZE);
> - /* FIXME: fix to support multiple PHBs */
> - memory_region_add_subregion(get_system_io(), 0, &sphb->iospace);
>
> sprintf(namebuf, "%s.io-alias", sphb->dtbusname);
> memory_region_init_alias(&sphb->iowindow, OBJECT(sphb), namebuf,
> - get_system_io(), 0, SPAPR_PCI_IO_WIN_SIZE);
> + &sphb->iospace, 0, SPAPR_PCI_IO_WIN_SIZE);
> memory_region_add_subregion(get_system_memory(), sphb->io_win_addr,
> &sphb->iowindow);
> /*
>
--
Alexey
next prev parent reply other threads:[~2013-12-10 2:43 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-15 3:24 [Qemu-devel] [PATCH] spapr-pci: remove io ports workaround Alexey Kardashevskiy
2013-07-15 6:06 ` Alexander Graf
2013-07-15 9:44 ` Alexey Kardashevskiy
2013-07-16 5:19 ` Alexey Kardashevskiy
2013-07-16 6:20 ` Paolo Bonzini
2013-07-16 8:32 ` Alexander Graf
2013-07-16 8:37 ` Alexey Kardashevskiy
2013-07-16 8:41 ` Alexander Graf
2013-07-16 8:45 ` Benjamin Herrenschmidt
2013-07-16 9:01 ` Alexander Graf
2013-07-16 9:10 ` Alexey Kardashevskiy
2013-12-09 16:33 ` Greg Kurz
2013-12-10 2:43 ` Alexey Kardashevskiy [this message]
2013-12-10 7:47 ` Greg Kurz
2013-12-11 6:47 ` Alexey Kardashevskiy
2013-12-11 7:07 ` Alexey Kardashevskiy
2013-12-17 7:52 ` Greg Kurz
2013-12-17 8:33 ` Alexey Kardashevskiy
2014-01-02 21:04 ` Alexander Graf
2014-01-02 22:08 ` Alexey Kardashevskiy
2014-01-02 22:09 ` Alexander Graf
2014-01-03 7:29 ` Alexey Kardashevskiy
2014-01-06 11:12 ` Greg Kurz
2014-01-06 23:12 ` Alexey Kardashevskiy
-- strict thread matches above, loose matches on Subject: below --
2014-02-07 13:44 Greg Kurz
2014-02-07 14:06 ` Alexander Graf
2014-02-10 5:12 ` Alexey Kardashevskiy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=52A67FB9.60109@ozlabs.ru \
--to=aik@ozlabs.ru \
--cc=agraf@suse.de \
--cc=anthony@codemonkey.ws \
--cc=david@gibson.dropbear.id.au \
--cc=gkurz@linux.vnet.ibm.com \
--cc=paulus@samba.org \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).