[PATCH 1/1] iommu/arm-smmu-v3: remove unnecessary oom message

Leizhen (ThunderTown) thunder.leizhen at huawei.com
Tue Jun 15 04:22:10 PDT 2021



On 2021/6/11 18:32, Will Deacon wrote:
> On Wed, Jun 09, 2021 at 08:54:38PM +0800, Zhen Lei wrote:
>> Fixes scripts/checkpatch.pl warning:
>> WARNING: Possible unnecessary 'out of memory' message
>>
>> Remove it can help us save a bit of memory.
>>
>> Signed-off-by: Zhen Lei <thunder.leizhen at huawei.com>
>> ---
>>  drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 8 ++------
>>  1 file changed, 2 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
>> index 2ddc3cd5a7d1..fd7c55b44881 100644
>> --- a/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
>> +++ b/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c
>> @@ -2787,10 +2787,8 @@ static int arm_smmu_init_l1_strtab(struct arm_smmu_device *smmu)
>>  	void *strtab = smmu->strtab_cfg.strtab;
>>  
>>  	cfg->l1_desc = devm_kzalloc(smmu->dev, size, GFP_KERNEL);
>> -	if (!cfg->l1_desc) {
>> -		dev_err(smmu->dev, "failed to allocate l1 stream table desc\n");
>> +	if (!cfg->l1_desc)
> 
> What error do you get if devm_kzalloc() fails? I'd like to make sure it's
> easy to track down _which_ allocation failed in that case -- does it give
> you a line number, for example?

When devm_kzalloc() fails, the OOM information is printed. No line number information, but the
size(order) and call stack is printed. It doesn't matter which allocation failed, the failure
is caused by insufficient system memory rather than the fault of the SMMU driver. Therefore,
the current printing is not helpful for locating the problem of insufficient memory. After all,
when memory allocation fails, the SMMU driver cannot work at a lower specification.

[   44.126661] swapper/0 invoked oom-killer: gfp_mask=0x40cc0(GFP_KERNEL|__GFP_COMP), order=1, oom_score_adj=0
[   44.136381] CPU: 26 PID: 1 Comm: swapper/0 Not tainted 5.13.0-rc6-00001-g0d973bf828c8 #1
[   44.144436] Hardware name: Huawei TaiShan 2280 V2/BC82AMDC, BIOS 2280-V2 CS V3.B220.02 03/27/2020
[   44.153266] Call trace:
[   44.155703]  dump_backtrace+0x0/0x1c0
[   44.159355]  show_stack+0x18/0x68
[   44.162658]  dump_stack+0xd8/0x134
[   44.166047]  dump_header+0x44/0x208
[   44.169524]  out_of_memory+0x530/0x580
[   44.173256]  __alloc_pages_slowpath.constprop.120+0x85c/0xac0
[   44.178976]  __alloc_pages+0x238/0x300
[   44.182709]  allocate_slab+0x3bc/0x3d8
[   44.186440]  ___slab_alloc+0x508/0x6b0
[   44.190172]  __slab_alloc.isra.100+0x2c/0x58
[   44.194422]  __kmalloc_node_track_caller+0x138/0x2e8
[   44.199365]  devm_kmalloc+0x58/0x100
[   44.202926]  arm_smmu_device_probe+0x858/0x1150
[   44.207437]  platform_probe+0x68/0xe0

> 
> Will
> 
> .
> 




More information about the linux-arm-kernel mailing list