]> git.baikalelectronics.ru Git - kernel.git/commit
swiotlb: Enable it under x86 PAE
authorChristian Melki <christian.melki@t2data.com>
Mon, 5 Oct 2015 15:31:33 +0000 (17:31 +0200)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Wed, 7 Oct 2015 19:31:35 +0000 (15:31 -0400)
commit22a2ca6bccf848e26f65674d6a314869ac132f4e
tree73617b729d320323cc3f9362fc1ce1b5acb9d847
parentf45d154a7e5fca594e01c3f4b3b1dfaab025bdc7
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 d13057df0476337484d52c25c0510268121f3df2
"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>
arch/x86/Kconfig