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

From: Shuah Khan
Date: Wed Jan 09 2013 - 13:01:02 EST


On Wed, Jan 9, 2013 at 10:27 AM, Yinghai Lu <yinghai@xxxxxxxxxx> wrote:
> On Wed, Jan 9, 2013 at 5:24 AM, Konrad Rzeszutek Wilk
> <konrad.wilk@xxxxxxxxxx> wrote:
>> On Tue, Jan 08, 2013 at 05:12:02PM -0800, Yinghai Lu wrote:
>>> On Tue, Jan 8, 2013 at 5:07 PM, Yinghai Lu <yinghai@xxxxxxxxxx> wrote:
>>> > On Tue, Jan 8, 2013 at 4:58 PM, Eric W. Biederman <ebiederm@xxxxxxxxxxxx> wrote:
>>> >
>>> >>
>>> >> So instead we need to say?
>>> >>
>>> >> + if (no_iotlb_memory)
>>> >> + panic("Cannot allocate SWIOTLB buffer");
>>> >> +
>>> >>
>>> >> Which is just making the panic a little later than it used to be and
>>> >> seems completely reasonable.
>>> >
>>> > yes, looks some driver just use map_single without checking results.
>>>
>>> update one.
>>
>> Please make it inline.
>>
>
> please check updated attached. It should address all your request.
>
> Thanks
>
> Yinghai

Yinghai,

After several revisions, I am loosing track. Could you please write a
change log and explain the change to the existing behavior. If you
could addresses the following areas, it will be easier figure if we
are missing something (if any):

1. What happens when switolb is forced with iommu=soft on a system
with and without not enough low mem?
2. What happens when swiotlb is not forced, but iommu driver sets
swiotlb=1 after it gets done with its iommu initialization on a system
with and without enough low mem.
3. What happens when nopanic is used and when will the system fail?
Will it fail when driver runs into errors. I am hoping this won't be a
silent failure. Please see more on this below:

I did dma mapping error analysis a few months ago and found several
drivers that don't check dma mapping errors, don't unmap dma buffers
etc. Returning mapping error from switolb could cause problems when we
have drivers that don't check mapping errors. These drivers might not
fail cleanly either and could cause data corruption.

Here is a link to the dma mapping error analysis I did:

http://linuxdriverproject.org/mediawiki/index.php/DMA_Mapping_Error_Analysis

-- Shuah
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/