Re: [PATCH v7u1 26/31] x86: Don't enable swiotlb if there is notenough ram for it

From: Yinghai Lu
Date: Fri Jan 04 2013 - 15:34:46 EST


On Fri, Jan 4, 2013 at 9:50 AM, Shuah Khan <shuahkhan@xxxxxxxxx> 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

Attachment: auto_switch_off_swiotlb.patch
Description: Binary data