[PATCH kernel RFC 0/2] powerpc/ioda2: An attempt to allow DMA masks between 32 and 59
Alexey Kardashevskiy
aik at ozlabs.ru
Fri Apr 26 17:39:29 AEST 2019
On 23/04/2019 10:58, Russell Currey wrote:
> On Fri, 2019-04-12 at 16:44 +1000, Alexey Kardashevskiy wrote:
>> This is an attempt to allow DMA mask 40 or similar which are not
>> large
>> enough to use either a PHB3 bypass mode or a sketchy bypass.
>>
>> This is based on sha1
>> 582549e3fbe1 Linus Torvalds Merge tag 'for-linus' of
>> git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma
>>
>> Please comment. Thanks.
>
> Seems to uniformly fail on POWER8 and sometimes on P9 too.
>
> On P8:
>
> [ 2.423206] Failed to allocate a TCE memory, level shift=26
> [ 2.423351] pci 0001:03 : [PE# fd] Failed to create 32-bit TCE
> table, err -12
>
> On P9:
>
> [ 0.303055] pci 0003:01 : [PE# 1fd] Setting up 32-bit TCE table
> at 0..80000000
> [ 0.303119] Failed to allocate a TCE memory, level shift=30
> [ 0.303147] pci 0003:01 : [PE# 1fd] Failed to create 32-bit TCE
> table, err -12
>
> Is it selecting the wrong TCE size?
Nah, it is too big level size, i.e. it is bigger than max allowed order.
Try:
#define POWERNV_IOMMU_DEFAULT_LEVELS 3
>> Alexey Kardashevskiy (2):
> powerpc/powernv/ioda: Allocate TCE table
>> levels on demand for default
> DMA window
> powerpc/powernv/ioda2:
>> Create bigger default window with 64k IOMMU
> pages
>
> arch/powerpc/include/asm/iommu.h | 8 ++-
> arch/powerpc/platforms/powernv/pci.h | 2 +-
> arch/powerpc/kernel/iommu.c | 58 +++++++++++++--
> ----
> arch/powerpc/platforms/powernv/pci-ioda-tce.c | 19 +++---
> arch/powerpc/platforms/powernv/pci-ioda.c | 14 ++++-
> 5 files changed, 66 insertions(+), 35 deletions(-)
>
>
--
Alexey
More information about the Linuxppc-dev
mailing list