Re: [PATCH] megaraid_sas: silence a warning

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2/3/20 4:20 AM, Tomas Henzl wrote:
> On 2/3/20 10:16 AM, Sumit Saxena wrote:
>> On Sat, Feb 1, 2020 at 10:57 PM Lee Duncan <lduncan@xxxxxxxx> wrote:
>>>
>>> On 1/31/20 5:23 AM, Tomas Henzl wrote:
>>>> Add a flag to dma mem allocation to silence a warning.
>>>>
>>>> Signed-off-by: Tomas Henzl <thenzl@xxxxxxxxxx>
>>>> ---
>>>>  drivers/scsi/megaraid/megaraid_sas_fusion.c | 5 +++--
>>>>  1 file changed, 3 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.c b/drivers/scsi/megaraid/megaraid_sas_fusion.c
>>>> index 0f5399b3e..1fa2d1449 100644
>>>> --- a/drivers/scsi/megaraid/megaraid_sas_fusion.c
>>>> +++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c
>>>> @@ -606,7 +606,8 @@ megasas_alloc_request_fusion(struct megasas_instance *instance)
>>>>
>>>>       fusion->io_request_frames =
>>>>                       dma_pool_alloc(fusion->io_request_frames_pool,
>>>> -                             GFP_KERNEL, &fusion->io_request_frames_phys);
>>>> +                             GFP_KERNEL | __GFP_NOWARN,
>>>> +                             &fusion->io_request_frames_phys);
>>>>       if (!fusion->io_request_frames) {
>>>>               if (instance->max_fw_cmds >= (MEGASAS_REDUCE_QD_COUNT * 2)) {
>>>>                       instance->max_fw_cmds -= MEGASAS_REDUCE_QD_COUNT;
>>>> @@ -644,7 +645,7 @@ megasas_alloc_request_fusion(struct megasas_instance *instance)
>>>>  open-isns-updates.diff.bz2
>>>>               fusion->io_request_frames =
>>>>                       dma_pool_alloc(fusion->io_request_frames_pool,
>>>> -                                    GFP_KERNEL,
>>>> +                                    GFP_KERNEL | __GFP_NOWARN,
>>>>                                      &fusion->io_request_frames_phys);
>>>>
>>>>               if (!fusion->io_request_frames) {
>>>>
>>>
>>> I'm fairly sure this is a good fix, but I'd appreciate more information
>>> in the comment, such as what warning was silenced, and why it's okay to
>>> silence it rather than "fix" it. I know from experience that, when
>>> choosing which commits to backport, more information is better than less.
>> This code allocates DMA memory for driver's IO frames which may exceed
>> MAX_ORDER pages for few
>> megaraid_sas controllers(controllers with High Queue Depth). So there
>> is logic to keep on reducing controller
>> Queue Depth until DMA memory required for IO frames fits within
>> MAX_ORDER. So or impacted megaraid_sas controllers,
>> there would be multiple DMA allocation failure until driver settles
>> down to Controller Queue Depth which has memory requirement
>> within MAX_ORDER. These failed DMA allocation requests causes stack
>> traces in system logs which is not harmful and this patch
>> would silence those warnings/stack traces.
>>
>> With CMA (Contiguous Memory Allocator) enabled, it's possible  to
>> allocate DMA memory exceeding MAX_ORDER.
>> And that is the reason of keeping this retry logic with less
>> controller Queue Depth instead of calculating controller Queue depth
>> at first hand which has memory requirement less than MAX_ORDER.
> 
> Thank you Sumit for writing it down.
> An over-sized allocation failure is sanitized in a proper way. The
> warning may hide other allocation warnings in other parts of kernel as
> it is printed only once.
> 
> I could have written more vecasue I've underestimated it and I'm sorry
> for that.
> 
> Tomas

No problem! Thank you for adding this. Can you resubmit with this info?

If you're not familiar with submitting a 2nd version (V2), please look
at the mailing list archives (or email me directly for advice).

I'd be glad to add my reviewed tag once the patch is updated.

> 
> 
>> Thanks,
>> Sumit
>>>
>>> --
>>> Lee Duncan
>>
> 




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux