On Fri, Jan 4, 2013 at 9:50 AM, Shuah Khan <shuahk...@gmail.com> wrote: > > This change doesn't take into account what swiolb was when > pci_swiotlb_detect_override() is called. Instead of returning > use_swiotlb like the original code did, it returns swiotlb which could > be zero, if !enough_mem_for_swiotlb(). > > Might work fine on Intel platforms, but not on systems where the IOMMU > driver wants to enable swiotlb for some devices as in the case of AMD. > > AMD IOMMU driver enables swiotlb for devices that are not specified in > IVRs and/or not in the AMD IOMMU scope, after it successfully > initializes IOMMU. It will explicitely set switolb=1 to make sure > reserved swiotlb memory is not released. This change will break that > case.
in that case, we have to panic.... please check attached patch. Also for those kind of systems, users must specify crashkernel_low=72M or what ever for kdump. Thanks Yinghai
auto_switch_off_swiotlb.patch
Description: Binary data