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);
{
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)