[PATCH 1/5] swiotlb: suppress warning when __GFP_NOWARN is set.

Christian König ckoenig.leichtzumerken at gmail.com
Wed Dec 20 14:49:53 UTC 2017


Am 20.12.2017 um 15:41 schrieb Michel Dänzer:
> On 2017-12-20 02:21 PM, Christian König wrote:
>> TTM tries to allocate coherent memory in chunks of 2MB first to improve
>> TLB efficiency and falls back to allocating 4K pages if that fails.
>>
>> Suppress the warning when the 2MB allocations fails since there is a
>> valid fall back path.
>>
>> Signed-off-by: Christian König <christian.koenig at amd.com>
>> ---
>>   lib/swiotlb.c | 8 +++++---
>>   1 file changed, 5 insertions(+), 3 deletions(-)
>>
>> diff --git a/lib/swiotlb.c b/lib/swiotlb.c
>> index cea19aaf303c..63a44fb29ce6 100644
>> --- a/lib/swiotlb.c
>> +++ b/lib/swiotlb.c
>> @@ -769,9 +769,11 @@ swiotlb_alloc_coherent(struct device *hwdev, size_t size,
>>   	return ret;
>>   
>>   err_warn:
>> -	pr_warn("swiotlb: coherent allocation failed for device %s size=%zu\n",
>> -		dev_name(hwdev), size);
>> -	dump_stack();
>> +	if (!(flags & __GFP_NOWARN)) {
>> +		pr_warn("swiotlb: coherent allocation failed for device %s size=%zu\n",
>> +			dev_name(hwdev), size);
>> +		dump_stack();
>> +	}
>>   
>>   	return NULL;
>>   }
>>
> This isn't the only swiotlb message I'm hitting, also this from
> swiotlb_tbl_map_single:
>
>   radeon 0000:00:01.0: swiotlb buffer is full (sz: 2097152 bytes)

Do you have a full dmesg with that? Cause that is a bit more disturbing.

Christian.


More information about the amd-gfx mailing list