android_kernel_google_msm/include
Linas Vepstas 5d2efba64b [POWERPC] Use 4kB iommu pages even on 64kB-page systems
The 10Gigabit ethernet device drivers appear to be able to chew
up all 256MB of TCE mappings on pSeries systems, as evidenced by
numerous error messages:

 iommu_alloc failed, tbl c0000000010d5c48 vaddr c0000000d875eff0 npages 1

Some experimentation indicates that this is essentially because
one 1500 byte ethernet MTU gets mapped as a 64K DMA region when
the large 64K pages are enabled. Thus, it doesn't take much to
exhaust all of the available DMA mappings for a high-speed card.

This patch changes the iommu allocator to work with its own
unique, distinct page size. Although the patch is long, its
actually quite simple: it just #defines a distinct IOMMU_PAGE_SIZE
and then uses this in all the places that matter.

As a side effect, it also dramatically improves network performance
on platforms with H-calls on iommu translation inserts/removes (since
we no longer call it 16 times for a 1500 bytes packet when the iommu HW
is still 4k).

In the future, we might want to make the IOMMU_PAGE_SIZE a variable
in the iommu_table instance, thus allowing support for different HW
page sizes in the iommu itself.

Signed-off-by: Linas Vepstas <linas@austin.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Olof Johansson <olof@lixom.net>
Acked-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-11-01 14:52:48 +11:00
..
acpi
asm-alpha
asm-arm [ARM] Add __must_check to uaccess functions 2006-10-28 10:15:31 +01:00
asm-arm26
asm-avr32 [PATCH] AVR32: add io{read,write}{8,16,32}{be,} support 2006-10-25 20:26:33 -07:00
asm-cris
asm-frv
asm-generic [PATCH] drivers: wait for threaded probes between initcall levels 2006-10-27 15:34:51 -07:00
asm-h8300
asm-i386 [PATCH] visws build fix 2006-10-28 11:30:52 -07:00
asm-ia64 [IA64] move SAL_CACHE_FLUSH check later in boot 2006-10-31 14:32:10 -08:00
asm-m32r
asm-m68k
asm-m68knommu
asm-mips [MIPS] Fixup migration to GENERIC_TIME 2006-10-31 20:13:23 +00:00
asm-parisc
asm-powerpc [POWERPC] Use 4kB iommu pages even on 64kB-page systems 2006-11-01 14:52:48 +11:00
asm-ppc
asm-s390 [S390] Fix pte type checking. 2006-10-18 18:30:51 +02:00
asm-sh sh: Fix IPR-IRQ's for IRQ-chip change breakage. 2006-10-31 12:53:28 +09:00
asm-sh64
asm-sparc [SPARC]: Clean up asm-sparc/elf.h pollution in userspace. 2006-10-20 00:29:33 -07:00
asm-sparc64 [SPARC64]: 8-byte align return value from compat_alloc_user_space() 2006-10-22 21:53:30 -07:00
asm-um [PATCH] uml: add INITCALLS 2006-10-31 08:07:00 -08:00
asm-v850
asm-x86_64 [PATCH] x86-64: Only look at per_cpu data for online cpus. 2006-10-25 01:00:23 +02:00
asm-xtensa
crypto
keys
linux [PATCH] MTD: fix last kernel-doc warning 2006-10-30 12:08:41 -08:00
math-emu
media
mtd
net [NET]: kernel-doc fix for sock.h 2006-10-22 20:38:00 -07:00
pcmcia
rdma
rxrpc
scsi [SCSI] replace u8 and u32 with __u8 and __u32 in scsi.h for user space 2006-10-25 15:14:34 -07:00
sound [ALSA] version 1.0.13 2006-10-22 10:56:24 +02:00
video
Kbuild