diff mbox series

[v2] linux/dim: Fix divide 0 in RDMA DIM.

Message ID 20220627113036.1324-1-thomas.liu@ucloud.cn (mailing list archive)
State Superseded
Headers show
Series [v2] linux/dim: Fix divide 0 in RDMA DIM. | expand

Commit Message

Tao Liu June 27, 2022, 11:30 a.m. UTC
We hit a divide 0 error in ofed 5.1.2.3.7.1. It is caused in
rdma_dim_stats_compare() when prev->cpe_ratio == 0.

dim.c and rdma_dim.c in ofed share same code with upstream.
We check the 0 case in IS_SIGNIFICANT_DIFF(), and do not change
decision order.

Signed-off-by: Tao Liu <thomas.liu@ucloud.cn>
---
 include/linux/dim.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Leon Romanovsky June 27, 2022, 12:51 p.m. UTC | #1
On Mon, Jun 27, 2022 at 07:30:36PM +0800, Tao Liu wrote:
> We hit a divide 0 error in ofed 5.1.2.3.7.1. It is caused in
> rdma_dim_stats_compare() when prev->cpe_ratio == 0.
> 
> dim.c and rdma_dim.c in ofed share same code with upstream.
> We check the 0 case in IS_SIGNIFICANT_DIFF(), and do not change
> decision order.
> 
> Signed-off-by: Tao Liu <thomas.liu@ucloud.cn>
> ---
>  include/linux/dim.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

I liked the commit message from v1 more.
It had proper kernel panic dump together with Fixes line.
https://lore.kernel.org/all/20220623085858.42945-1-thomas.liu@ucloud.cn

The change itself is ok.

Thanks,
Acked-by: Leon Romanovsky <leonro@nvidia.com>
Max Gurtovoy June 27, 2022, 12:57 p.m. UTC | #2
On 6/27/2022 3:51 PM, Leon Romanovsky wrote:
> On Mon, Jun 27, 2022 at 07:30:36PM +0800, Tao Liu wrote:
>> We hit a divide 0 error in ofed 5.1.2.3.7.1. It is caused in
>> rdma_dim_stats_compare() when prev->cpe_ratio == 0.
>>
>> dim.c and rdma_dim.c in ofed share same code with upstream.
>> We check the 0 case in IS_SIGNIFICANT_DIFF(), and do not change
>> decision order.
>>
>> Signed-off-by: Tao Liu <thomas.liu@ucloud.cn>
>> ---
>>   include/linux/dim.h | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
> I liked the commit message from v1 more.

I think you need to do a combination of the commit msg (remove the ofed 
notion):

"fix a divide 0 error in rdma_dim_stats_compare() when prev->cpe_ratio == 0.

CallTrace:

....

Fixes(...)"


Otherwise,

Looks good,

Reviewed-by: Max Gurtovoy <mgurtovoy@nvidia.com>


> It had proper kernel panic dump together with Fixes line.
> https://lore.kernel.org/all/20220623085858.42945-1-thomas.liu@ucloud.cn
>
> The change itself is ok.
>
> Thanks,
> Acked-by: Leon Romanovsky <leonro@nvidia.com>
diff mbox series

Patch

diff --git a/include/linux/dim.h b/include/linux/dim.h
index b698266d0035..6c5733981563 100644
--- a/include/linux/dim.h
+++ b/include/linux/dim.h
@@ -21,7 +21,7 @@ 
  * We consider 10% difference as significant.
  */
 #define IS_SIGNIFICANT_DIFF(val, ref) \
-	(((100UL * abs((val) - (ref))) / (ref)) > 10)
+	((ref) && (((100UL * abs((val) - (ref))) / (ref)) > 10))
 
 /*
  * Calculate the gap between two values.