[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [Qemu-ppc] [PATCH qemu v13 13/16] spapr_iommu: Remove n
From: |
David Gibson |
Subject: |
Re: [Qemu-devel] [Qemu-ppc] [PATCH qemu v13 13/16] spapr_iommu: Remove need_vfio flag from sPAPRTCETable |
Date: |
Thu, 3 Mar 2016 17:38:57 +1100 |
User-agent: |
Mutt/1.5.24 (2015-08-30) |
On Tue, Mar 01, 2016 at 08:10:38PM +1100, Alexey Kardashevskiy wrote:
> sPAPRTCETable has a need_vfio flag which is passed to
> kvmppc_create_spapr_tce() and controls whether to create a guest view
> table in KVM as this depends on the host kernel ability to accelerate
> H_PUT_TCE for VFIO devices. We would set this flag at the moment
> when sPAPRTCETable is created in spapr_tce_new_table() and
> use when the table is allocated in spapr_tce_table_realize().
>
> Now we explicitly enable/disable DMA windows via spapr_tce_table_enable()
> and spapr_tce_table_disable() and can pass this flag directly without
> caching it in sPAPRTCETable.
>
> This removes the flag. This should cause no behavioural change.
>
> Signed-off-by: Alexey Kardashevskiy <address@hidden>
Reviewed-by: David Gibson <address@hidden>
> ---
> hw/ppc/spapr_iommu.c | 13 +++++--------
> include/hw/ppc/spapr.h | 1 -
> 2 files changed, 5 insertions(+), 9 deletions(-)
>
> diff --git a/hw/ppc/spapr_iommu.c b/hw/ppc/spapr_iommu.c
> index 4c52cf4..8aa2238 100644
> --- a/hw/ppc/spapr_iommu.c
> +++ b/hw/ppc/spapr_iommu.c
> @@ -210,8 +210,9 @@ void spapr_tce_set_need_vfio(sPAPRTCETable *tcet, bool
> need_vfio)
> {
> size_t table_size = tcet->nb_table * sizeof(uint64_t);
> void *newtable;
> + bool tcet_can_vfio = tcet->fd < 0;
>
> - if (need_vfio == tcet->need_vfio) {
> + if (need_vfio == tcet_can_vfio) {
> /* Nothing to do */
> return;
> }
> @@ -222,8 +223,6 @@ void spapr_tce_set_need_vfio(sPAPRTCETable *tcet, bool
> need_vfio)
> return;
> }
>
> - tcet->need_vfio = true;
> -
> if (tcet->fd < 0) {
> /* Table is already in userspace, nothing to be do */
> return;
> @@ -261,7 +260,7 @@ sPAPRTCETable *spapr_tce_new_table(DeviceState *owner,
> uint32_t liobn)
> return tcet;
> }
>
> -static void spapr_tce_table_do_enable(sPAPRTCETable *tcet)
> +static void spapr_tce_table_do_enable(sPAPRTCETable *tcet, bool need_vfio)
> {
> if (!tcet->nb_table) {
> return;
> @@ -271,7 +270,7 @@ static void spapr_tce_table_do_enable(sPAPRTCETable *tcet)
> tcet->page_shift,
> tcet->nb_table,
> &tcet->fd,
> - tcet->need_vfio);
> + need_vfio);
>
> memory_region_set_size(&tcet->iommu,
> (uint64_t)tcet->nb_table << tcet->page_shift);
> @@ -291,9 +290,8 @@ void spapr_tce_table_enable(sPAPRTCETable *tcet,
> tcet->bus_offset = bus_offset;
> tcet->page_shift = page_shift;
> tcet->nb_table = nb_table;
> - tcet->need_vfio = need_vfio;
>
> - spapr_tce_table_do_enable(tcet);
> + spapr_tce_table_do_enable(tcet, need_vfio);
> }
>
> void spapr_tce_table_disable(sPAPRTCETable *tcet)
> @@ -312,7 +310,6 @@ void spapr_tce_table_disable(sPAPRTCETable *tcet)
> tcet->bus_offset = 0;
> tcet->page_shift = 0;
> tcet->nb_table = 0;
> - tcet->need_vfio = false;
> }
>
> static void spapr_tce_table_unrealize(DeviceState *dev, Error **errp)
> diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h
> index 5d2f8f4..505cb3a 100644
> --- a/include/hw/ppc/spapr.h
> +++ b/include/hw/ppc/spapr.h
> @@ -546,7 +546,6 @@ struct sPAPRTCETable {
> uint32_t page_shift;
> uint64_t *table;
> bool bypass;
> - bool need_vfio;
> int fd;
> MemoryRegion root, iommu;
> struct VIOsPAPRDevice *vdev; /* for @bypass migration compatibility only
> */
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature
- Re: [Qemu-devel] [Qemu-ppc] [PATCH qemu v13 02/16] spapr_pci: Move DMA window enablement to a helper, (continued)
[Qemu-devel] [PATCH qemu v13 15/16] vfio: Move iova_pgsizes from container to guest IOMMU, Alexey Kardashevskiy, 2016/03/01
[Qemu-devel] [PATCH qemu v13 07/16] vfio, memory: Notify IOMMU about starting/stopping being used by VFIO, Alexey Kardashevskiy, 2016/03/01
[Qemu-devel] [PATCH qemu v13 13/16] spapr_iommu: Remove need_vfio flag from sPAPRTCETable, Alexey Kardashevskiy, 2016/03/01
- Re: [Qemu-devel] [Qemu-ppc] [PATCH qemu v13 13/16] spapr_iommu: Remove need_vfio flag from sPAPRTCETable,
David Gibson <=
[Qemu-devel] [PATCH qemu v13 08/16] memory: Add reporting of supported page sizes, Alexey Kardashevskiy, 2016/03/01
[Qemu-devel] [PATCH qemu v13 16/16] spapr_pci/spapr_pci_vfio: Support Dynamic DMA Windows (DDW), Alexey Kardashevskiy, 2016/03/01
[Qemu-devel] [PATCH qemu v13 11/16] vfio: spapr: Add SPAPR IOMMU v2 support (DMA memory preregistering), Alexey Kardashevskiy, 2016/03/01