• C
    swiotlb: Enable it under x86 PAE · 9d99c712
    Christian Melki 提交于
    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 a6dfa128
    "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: NChristian Melki <christian.melki@t2data.com>
    Signed-off-by: NChristian Melki <christian.melki@t2data.com>
    Signed-off-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    9d99c712
Kconfig 85.0 KB