Re: [PATCH V2] megaraid_sas: silence a warning

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

 



On 2/4/20 7:24 AM, Tomas Henzl wrote:
> Add a flag to dma mem allocation to silence a warning.
> 
> 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.
> 
> Signed-off-by: Tomas Henzl <thenzl@xxxxxxxxxx>
> ---
> V2: A change in the description, additional information is added,
> kindly written by Sumit.
> 
>  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)
>  
>  		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) {
> 

Reviewed-by: Lee Duncan <lduncan@xxxxxxxx>



[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