From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35779) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZhDVT-0003Sh-Mz for qemu-devel@nongnu.org; Wed, 30 Sep 2015 05:17:00 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZhDVP-00031q-L5 for qemu-devel@nongnu.org; Wed, 30 Sep 2015 05:16:59 -0400 References: <1443584920-23015-1-git-send-email-david@gibson.dropbear.id.au> <1443584920-23015-3-git-send-email-david@gibson.dropbear.id.au> From: Laurent Vivier Message-ID: <560BA882.90703@redhat.com> Date: Wed, 30 Sep 2015 11:16:50 +0200 MIME-Version: 1.0 In-Reply-To: <1443584920-23015-3-git-send-email-david@gibson.dropbear.id.au> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 2/4] spapr_iommu: Rename vfio_accel parameter List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: David Gibson , aik@ozlabs.ru, mdroth@linux.vnet.ibm.com Cc: alex.williamson@redhat.com, qemu-ppc@nongnu.org, thuth@redhat.com, qemu-devel@nongnu.org On 30/09/2015 05:48, 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. > > Signed-off-by: David Gibson > --- > 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 56c5b0b..27d65d5 100644 > --- a/include/hw/ppc/spapr.h > +++ b/include/hw/ppc/spapr.h > @@ -563,7 +563,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 */ > @@ -588,7 +588,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 e641680..04ce614 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 470f6d6..309cbe0 100644 > --- a/target-ppc/kvm_ppc.h > +++ b/target-ppc/kvm_ppc.h > @@ -36,7 +36,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); > Reviewed-by: Laurent Vivier