From: Ajaykumar Hotchandani Date: Wed, 14 Oct 2015 23:30:26 +0000 (-0700) Subject: mlx4: indicate memory resource exhaustion X-Git-Tag: v4.1.12-92~251^2~1^2~1^2 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=d289717114f41d710d0e1969725267481b429087;p=users%2Fjedix%2Flinux-maple.git mlx4: indicate memory resource exhaustion Change here provides details about pid, which resource got exhausted and current limits for that resource. These details are requested by database folks to attempt recovery. This is port from UEK2 commit f3774780e30 Orabug: 21549767 Signed-off-by: Ajaykumar Hotchandani Reviewed-by: Yuval Shaia Signed-off-by: Guangyu Sun Signed-off-by: Mukesh Kacker --- diff --git a/drivers/net/ethernet/mellanox/mlx4/mr.c b/drivers/net/ethernet/mellanox/mlx4/mr.c index e6fb7e1c6a3b..3288f09d29d2 100644 --- a/drivers/net/ethernet/mellanox/mlx4/mr.c +++ b/drivers/net/ethernet/mellanox/mlx4/mr.c @@ -160,8 +160,13 @@ u32 __mlx4_alloc_mtt_range(struct mlx4_dev *dev, int order) seg_order = max_t(int, order - log_mtts_per_seg, 0); seg = mlx4_buddy_alloc(&mr_table->mtt_buddy, seg_order); - if (seg == -1) + if (seg == -1) { + printk_once(KERN_NOTICE + "[%d]: Exhausted MTT entries, current size=%u. " + "Try updating log_num_mtt module parameter\n", + task_pid_nr(current), mr_table->mtt_buddy.max_order); return -1; + } offset = seg * (1 << log_mtts_per_seg); @@ -445,7 +450,15 @@ int __mlx4_mpt_reserve(struct mlx4_dev *dev) { struct mlx4_priv *priv = mlx4_priv(dev); - return mlx4_bitmap_alloc(&priv->mr_table.mpt_bitmap); + int ret = mlx4_bitmap_alloc(&priv->mr_table.mpt_bitmap); + + if (ret == -1) + printk_once(KERN_NOTICE + "[%d]: MR: Exhausted MPT entries, current size=%u. " + "Try updating log_num_mpt module parameter\n", + task_pid_nr(current), priv->mr_table.mpt_bitmap.max); + + return ret; } static int mlx4_mpt_reserve(struct mlx4_dev *dev)