[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20191211182056.GA17052@lst.de>
Date: Wed, 11 Dec 2019 19:20:56 +0100
From: Christoph Hellwig <hch@....de>
To: Michael Roth <mdroth@...ux.vnet.ibm.com>
Cc: Alexey Kardashevskiy <aik@...abs.ru>,
Ram Pai <linuxram@...ibm.com>, mpe@...erman.id.au,
linuxppc-dev@...ts.ozlabs.org, benh@...nel.crashing.org,
david@...son.dropbear.id.au, paulus@...abs.org, hch@....de,
andmike@...ibm.com, sukadev@...ux.vnet.ibm.com, mst@...hat.com,
ram.n.pai@...il.com, cai@....pw, tglx@...utronix.de,
bauerman@...ux.ibm.com, linux-kernel@...r.kernel.org,
leonardo@...ux.ibm.com
Subject: Re: [PATCH v5 2/2] powerpc/pseries/iommu: Use dma_iommu_ops for
Secure VM.
On Wed, Dec 11, 2019 at 12:07:17PM -0600, Michael Roth wrote:
> > io_tlb_start/io_tlb_end are only guaranteed to stay within 4GB and our
> > default DMA window is 1GB (KVM) or 2GB (PowerVM), ok, we can define
> > ARCH_LOW_ADDRESS_LIMIT as 1GB.
>
> True, and limiting allocations to under 1GB might be brittle (also saw a
> patching floating around that increased IO_TLB_DEFAULT_SIZE size to 1GB,
> which obviously wouldn't work out with this approach, but not sure if
> that's still needed or not: "powerpc/svm: Increase SWIOTLB buffer size")
FYI, there is a patch out there that allocates the powerpc swiotlb
from the boottom of the memblock area instead of the top to fix a 85xx
regression.
Also the AMD folks have been asking about non-GFP_DMA32 swiotlb pools
as they have the same bounce buffer issue with SEV. I think it is
entirely doable to have multiple swiotlb pool, I just need a volunteer
to implement that.
>
> However that's only an issue if we insist on using an identity mapping
> in the IOMMU, which would be nice because non-IOMMU virtio would
> magically work, but since that's not a goal of this series I think we do
> have the option of mapping io_tlb_start at DMA address 0 (or
> thereabouts).
>
> We'd probably need to modify __phys_to_dma to treat archdata.dma_offset
> as a negative offset in this case, but it seems like it would work about
> the same as with DDW offset.
Or switch to the generic version of __phys_to_dma that has a negative
offset. We'd just need to look into a signed value for dma_pfn_offset
to allow for the existing platforms that need the current positive
offset.
Powered by blists - more mailing lists