Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Leizhen (ThunderTown)" <thunder.leizhen@huawei.com>
To: Will Deacon <will@kernel.org>, Robin Murphy <robin.murphy@arm.com>
Cc: linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
	Joerg Roedel <joro@8bytes.org>,
	iommu <iommu@lists.linux-foundation.org>
Subject: Re: [PATCH 1/1] iommu/arm-smmu-v3: remove unnecessary oom message
Date: Wed, 16 Jun 2021 09:47:18 +0800	[thread overview]
Message-ID: <c94b7ba9-b85b-4704-6335-17334bc56f1b@huawei.com> (raw)
In-Reply-To: <20210615115507.GD20598@willie-the-truck>



On 2021/6/15 19:55, Will Deacon wrote:
> On Tue, Jun 15, 2021 at 12:51:38PM +0100, Robin Murphy wrote:
>> On 2021-06-15 12:34, Will Deacon wrote:
>>> On Tue, Jun 15, 2021 at 07:22:10PM +0800, Leizhen (ThunderTown) wrote:
>>>>
>>>>
>>>> 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@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.
>>>
>>> I don't entirely agree. Another reason for the failure is because the driver
>>> might be asking for a huge (or negative) allocation, in which case it might
>>> be instructive to have a look at the actual caller, particularly if the
>>> size is derived from hardware or firmware properties.
>>
>> Agreed - other than deliberately-contrived situations I don't think I've
>> ever hit a genuine OOM, but I definitely have debugged attempts to allocate
>> -1 of something. If the driver-specific message actually calls out the
>> critical information, e.g. "failed to allocate %d stream table entries", it
>> gives debugging a head start since the miscalculation is obvious, but a
>> static message that only identifies the callsite really only saves a quick
>> trip to scripts/faddr2line, and personally I've never found that
>> particularly valuable.
> 
> So it sounds like this particular patch is fine, but the one for smmuv2
> should leave the IRQ allocation message alone (by virtue of it printing
> something a bit more useful -- the number of irqs).

        num_irqs = 0;
        while ((res = platform_get_resource(pdev, IORESOURCE_IRQ, num_irqs))) {
                num_irqs++;
        }

As the above code, num_irqs is calculated based on the number of dtb or acpi
configuration items, it can't be too large. That is, there is almost zero chance
that devm_kcalloc() will fail because num_irqs is too large.


> 
> Will
> 
> .
> 


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2021-06-16  1:49 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-09 12:54 [PATCH 1/1] iommu/arm-smmu-v3: remove unnecessary oom message Zhen Lei
2021-06-11 10:32 ` Will Deacon
2021-06-15 11:22   ` Leizhen (ThunderTown)
2021-06-15 11:34     ` Will Deacon
2021-06-15 11:36       ` Will Deacon
2021-06-15 11:51       ` Robin Murphy
2021-06-15 11:55         ` Will Deacon
2021-06-16  1:47           ` Leizhen (ThunderTown) [this message]
2021-06-16 10:10             ` Will Deacon
2021-06-15 19:18 ` Will Deacon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c94b7ba9-b85b-4704-6335-17334bc56f1b@huawei.com \
    --to=thunder.leizhen@huawei.com \
    --cc=iommu@lists.linux-foundation.org \
    --cc=joro@8bytes.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=robin.murphy@arm.com \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox