From: Alex Williamson <alex.williamson@redhat.com>
To: David Gibson <david@gibson.dropbear.id.au>
Cc: lvivier@redhat.com, thuth@redhat.com, aik@ozlabs.ru,
gwshan@linux.vnet.ibm.com, qemu-devel@nongnu.org,
qemu-ppc@nongnu.org, pbonzini@redhat.com
Subject: Re: [Qemu-devel] [RFC PATCH 08/10] spapr_iommu: Rename vfio_accel parameter
Date: Thu, 17 Sep 2015 10:54:38 -0600 [thread overview]
Message-ID: <1442508878.23936.209.camel@redhat.com> (raw)
In-Reply-To: <1442495357-26547-9-git-send-email-david@gibson.dropbear.id.au>
On Thu, 2015-09-17 at 23:09 +1000, David Gibson wrote:
> The vfio_accel parameter used when creating a new TCE table (guest IOMMU
> context) has a confusing name. What it really means is whether we need the
> TCE table created to be able to support VFIO devices.
>
> VFIO is relevant, because when available we use in-kernel acceleration of
> the TCE table, but that may not work with VFIO devices because updates to
> the table are handled in kernel, bypass qemu and so don't hit qemu's
> infrastructure for keeping the VFIO host IOMMU state in sync with the guest
> IOMMU state.
>
> Rename the parameter to "need_vfio" throughout. This is a cosmetic change,
> with no impact on the logic.
> There's a capability
nit, why entangle the technology you're using, vfio, with the feature
you want, visible iommu updates? You could rename this to something
even more self describing, like disable_in_kernel_updates, or whatever
more concise name you can come up with.
>
> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
> ---
> hw/ppc/spapr_iommu.c | 6 +++---
> include/hw/ppc/spapr.h | 4 ++--
> target-ppc/kvm.c | 4 ++--
> target-ppc/kvm_ppc.h | 2 +-
> 4 files changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/hw/ppc/spapr_iommu.c b/hw/ppc/spapr_iommu.c
> index f61504e..5166cde 100644
> --- a/hw/ppc/spapr_iommu.c
> +++ b/hw/ppc/spapr_iommu.c
> @@ -146,7 +146,7 @@ static int spapr_tce_table_realize(DeviceState *dev)
> tcet->table = kvmppc_create_spapr_tce(tcet->liobn,
> window_size,
> &tcet->fd,
> - tcet->vfio_accel);
> + tcet->need_vfio);
> }
>
> if (!tcet->table) {
> @@ -172,7 +172,7 @@ sPAPRTCETable *spapr_tce_new_table(DeviceState *owner, uint32_t liobn,
> uint64_t bus_offset,
> uint32_t page_shift,
> uint32_t nb_table,
> - bool vfio_accel)
> + bool need_vfio)
> {
> sPAPRTCETable *tcet;
> char tmp[64];
> @@ -192,7 +192,7 @@ sPAPRTCETable *spapr_tce_new_table(DeviceState *owner, uint32_t liobn,
> tcet->bus_offset = bus_offset;
> tcet->page_shift = page_shift;
> tcet->nb_table = nb_table;
> - tcet->vfio_accel = vfio_accel;
> + tcet->need_vfio = need_vfio;
>
> snprintf(tmp, sizeof(tmp), "tce-table-%x", liobn);
> object_property_add_child(OBJECT(owner), tmp, OBJECT(tcet), NULL);
> diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h
> index ffb108d..03a9804 100644
> --- a/include/hw/ppc/spapr.h
> +++ b/include/hw/ppc/spapr.h
> @@ -562,7 +562,7 @@ struct sPAPRTCETable {
> uint32_t page_shift;
> uint64_t *table;
> bool bypass;
> - bool vfio_accel;
> + bool need_vfio;
> int fd;
> MemoryRegion iommu;
> struct VIOsPAPRDevice *vdev; /* for @bypass migration compatibility only */
> @@ -587,7 +587,7 @@ sPAPRTCETable *spapr_tce_new_table(DeviceState *owner, uint32_t liobn,
> uint64_t bus_offset,
> uint32_t page_shift,
> uint32_t nb_table,
> - bool vfio_accel);
> + bool need_vfio);
> MemoryRegion *spapr_tce_get_iommu(sPAPRTCETable *tcet);
> int spapr_dma_dt(void *fdt, int node_off, const char *propname,
> uint32_t liobn, uint64_t window, uint32_t size);
> diff --git a/target-ppc/kvm.c b/target-ppc/kvm.c
> index 9cf5308..9191f13 100644
> --- a/target-ppc/kvm.c
> +++ b/target-ppc/kvm.c
> @@ -2071,7 +2071,7 @@ bool kvmppc_spapr_use_multitce(void)
> }
>
> void *kvmppc_create_spapr_tce(uint32_t liobn, uint32_t window_size, int *pfd,
> - bool vfio_accel)
> + bool need_vfio)
> {
> struct kvm_create_spapr_tce args = {
> .liobn = liobn,
> @@ -2085,7 +2085,7 @@ void *kvmppc_create_spapr_tce(uint32_t liobn, uint32_t window_size, int *pfd,
> * destroying the table, which the upper layers -will- do
> */
> *pfd = -1;
> - if (!cap_spapr_tce || (vfio_accel && !cap_spapr_vfio)) {
> + if (!cap_spapr_tce || (need_vfio && !cap_spapr_vfio)) {
> return NULL;
> }
>
> diff --git a/target-ppc/kvm_ppc.h b/target-ppc/kvm_ppc.h
> index 0714ba0..8b69e73 100644
> --- a/target-ppc/kvm_ppc.h
> +++ b/target-ppc/kvm_ppc.h
> @@ -38,7 +38,7 @@ int kvmppc_booke_watchdog_enable(PowerPCCPU *cpu);
> off_t kvmppc_alloc_rma(void **rma);
> bool kvmppc_spapr_use_multitce(void);
> void *kvmppc_create_spapr_tce(uint32_t liobn, uint32_t window_size, int *pfd,
> - bool vfio_accel);
> + bool need_vfio);
> int kvmppc_remove_spapr_tce(void *table, int pfd, uint32_t window_size);
> int kvmppc_reset_htab(int shift_hint);
> uint64_t kvmppc_rma_size(uint64_t current_size, unsigned int hash_shift);
next prev parent reply other threads:[~2015-09-17 16:54 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-17 13:09 [Qemu-devel] [RFC PATCH 00/10] pseries: Allow VFIO devices on spapr-pci-host-bridge David Gibson
2015-09-17 13:09 ` [Qemu-devel] [RFC PATCH 01/10] vfio: Remove unneeded union from VFIOContainer David Gibson
2015-09-18 6:15 ` Alexey Kardashevskiy
2015-09-23 10:31 ` Thomas Huth
2015-09-23 23:14 ` David Gibson
2015-09-23 13:18 ` Laurent Vivier
2015-09-17 13:09 ` [Qemu-devel] [RFC PATCH 02/10] vfio: Generalize vfio_listener_region_add failure path David Gibson
2015-09-23 9:13 ` Thomas Huth
2015-09-23 13:31 ` Laurent Vivier
2015-09-17 13:09 ` [Qemu-devel] [RFC PATCH 03/10] vfio: Check guest IOVA ranges against host IOMMU capabilities David Gibson
2015-09-18 6:38 ` Alexey Kardashevskiy
2015-09-23 10:10 ` Thomas Huth
2015-09-23 11:07 ` David Gibson
2015-09-23 23:43 ` David Gibson
2015-09-23 14:26 ` Laurent Vivier
2015-09-17 13:09 ` [Qemu-devel] [RFC PATCH 04/10] vfio: Record host IOMMU's available IO page sizes David Gibson
2015-09-23 10:29 ` Thomas Huth
2015-09-23 14:30 ` Laurent Vivier
2015-09-17 13:09 ` [Qemu-devel] [RFC PATCH 05/10] memory: Allow replay of IOMMU mapping notifications David Gibson
2015-09-23 10:40 ` Thomas Huth
2015-09-23 16:35 ` Laurent Vivier
2015-09-23 23:47 ` David Gibson
2015-09-23 17:04 ` Laurent Vivier
2015-09-23 23:50 ` David Gibson
2015-09-24 7:09 ` Laurent Vivier
2015-09-17 13:09 ` [Qemu-devel] [RFC PATCH 06/10] vfio: Allow hotplug of containers onto existing guest IOMMU mappings David Gibson
2015-09-17 16:54 ` Alex Williamson
2015-09-17 23:31 ` David Gibson
2015-09-23 11:02 ` Thomas Huth
2015-09-23 23:50 ` David Gibson
2015-09-23 18:44 ` Laurent Vivier
2015-09-17 13:09 ` [Qemu-devel] [RFC PATCH 07/10] spapr_pci: Allow PCI host bridge DMA window to be configured David Gibson
2015-09-23 11:08 ` Thomas Huth
2015-09-23 23:56 ` David Gibson
2015-09-23 18:55 ` Laurent Vivier
2015-09-23 23:54 ` David Gibson
2015-09-24 6:59 ` Laurent Vivier
2015-10-03 0:25 ` Alexey Kardashevskiy
2015-10-05 14:13 ` Paolo Bonzini
2015-10-06 3:25 ` David Gibson
2015-10-06 4:18 ` David Gibson
2015-09-17 13:09 ` [Qemu-devel] [RFC PATCH 08/10] spapr_iommu: Rename vfio_accel parameter David Gibson
2015-09-17 16:54 ` Alex Williamson [this message]
2015-09-17 23:34 ` David Gibson
2015-09-17 13:09 ` [Qemu-devel] [RFC PATCH 09/10] spapr_iommu: Provide a function to switch a TCE table to allowing VFIO David Gibson
2015-09-17 16:54 ` Alex Williamson
2015-09-23 11:24 ` Thomas Huth
2015-09-24 0:35 ` David Gibson
2015-09-17 13:09 ` [Qemu-devel] [RFC PATCH 10/10] spapr_pci: Allow VFIO devices to work on the normal PCI host bridge David Gibson
2015-09-17 16:54 ` [Qemu-devel] [RFC PATCH 00/10] pseries: Allow VFIO devices on spapr-pci-host-bridge Alex Williamson
2015-09-23 11:26 ` Thomas Huth
2015-09-23 16:46 ` Laurent Vivier
2015-09-24 1:02 ` David Gibson
2015-09-24 7:02 ` Laurent Vivier
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=1442508878.23936.209.camel@redhat.com \
--to=alex.williamson@redhat.com \
--cc=aik@ozlabs.ru \
--cc=david@gibson.dropbear.id.au \
--cc=gwshan@linux.vnet.ibm.com \
--cc=lvivier@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=thuth@redhat.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.