aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Melki <christian.melki@t2data.com>2015-10-05 11:31:33 -0400
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>2015-10-07 15:31:35 -0400
commit9d99c7123c9af5f47a2037933a3ffaec3e37efad (patch)
tree73617b729d320323cc3f9362fc1ce1b5acb9d847
parent049e6dde7e57f0054fdc49102e7ef4830c698b46 (diff)
swiotlb: Enable it under x86 PAE
Most distributions end up enabling SWIOTLB already with 32-bit kernels due to the combination of CONFIG_HYPERVISOR_GUEST|CONFIG_XEN=y as those end up requiring the SWIOTLB. However for those that are not interested in virtualization and run in 32-bit they will discover that: "32-bit PAE 4.2.0 kernel (no IOMMU code) would hang when writing to my USB disk. The kernel spews million(-ish messages per sec) to syslog, effectively "hanging" userspace with my kernel. Oct 2 14:33:06 voodoochild kernel: [ 223.287447] nommu_map_sg: overflow 25dcac000+1024 of device mask ffffffff Oct 2 14:33:06 voodoochild kernel: [ 223.287448] nommu_map_sg: overflow 25dcac000+1024 of device mask ffffffff Oct 2 14:33:06 voodoochild kernel: [ 223.287449] nommu_map_sg: overflow 25dcac000+1024 of device mask ffffffff ... etc ..." Enabling it makes the problem go away. N.B. With a6dfa128ce5c414ab46b1d690f7a1b8decb8526d "config: Enable NEED_DMA_MAP_STATE by default when SWIOTLB is selected" we also have the important part of the SG macros enabled to make this work properly - in case anybody wants to backport this patch. Reported-and-Tested-by: Christian Melki <christian.melki@t2data.com> Signed-off-by: Christian Melki <christian.melki@t2data.com> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-rw-r--r--arch/x86/Kconfig1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 328c8352480c..96d058a87100 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -1308,6 +1308,7 @@ config HIGHMEM
1308config X86_PAE 1308config X86_PAE
1309 bool "PAE (Physical Address Extension) Support" 1309 bool "PAE (Physical Address Extension) Support"
1310 depends on X86_32 && !HIGHMEM4G 1310 depends on X86_32 && !HIGHMEM4G
1311 select SWIOTLB
1311 ---help--- 1312 ---help---
1312 PAE is required for NX support, and furthermore enables 1313 PAE is required for NX support, and furthermore enables
1313 larger swapspace support for non-overcommit purposes. It 1314 larger swapspace support for non-overcommit purposes. It