@@ -106,6 +106,56 @@ static int log_mtts_per_seg = ilog2
(MLX4_MTT_ENTRY_PER_SEG);
module_param_named(log_mtts_per_seg, log_mtts_per_seg, int, 0444);
MODULE_PARM_DESC(log_mtts_per_seg, "Log2 number of MTT entries per segment
(1-7)");
+static struct mlx4_profile mod_param_profile = { 0 };
+
+module_param_named(log_num_qp, mod_param_profile.num_qp, int, 0444);
+MODULE_PARM_DESC(log_num_qp, "log maximum number of QPs per HCA ");
+
+module_param_named(log_num_srq, mod_param_profile.num_srq, int, 0444);
+MODULE_PARM_DESC(log_num_srq, "log maximum number of SRQs per HCA ");
+
+module_param_named(log_rdmarc_per_qp, mod_param_profile.rdmarc_per_qp, int,
0444);
+MODULE_PARM_DESC(log_rdmarc_per_qp, "log number of RDMARC buffers per QP ");
+
+module_param_named(log_num_cq, mod_param_profile.num_cq, int, 0444);
+MODULE_PARM_DESC(log_num_cq, "log maximum number of CQs per HCA ");
+
+module_param_named(log_num_mcg, mod_param_profile.num_mcg, int, 0444);
+MODULE_PARM_DESC(log_num_mcg, "log maximum number of multicast groups per
HCA ");
+
+module_param_named(log_num_mpt, mod_param_profile.num_mpt, int, 0444);
+MODULE_PARM_DESC(log_num_mpt,
+ "log maximum number of memory protection table entries per HCA ");
+
+module_param_named(log_num_mtt, mod_param_profile.num_mtt, int, 0444);
+MODULE_PARM_DESC(log_num_mtt,
+ "log maximum number of memory translation table segments per HCA ");
+
+static void process_mod_param_profile(void)
+{
+ default_profile.num_qp = (mod_param_profile.num_qp ?
+ 1 << mod_param_profile.num_qp :
+ default_profile.num_qp);
+ default_profile.num_srq = (mod_param_profile.num_srq ?
+ 1 << mod_param_profile.num_srq :
+ default_profile.num_srq);
+ default_profile.rdmarc_per_qp = (mod_param_profile.rdmarc_per_qp ?
+ 1 << mod_param_profile.rdmarc_per_qp :
+ default_profile.rdmarc_per_qp);
+ default_profile.num_cq = (mod_param_profile.num_cq ?
+ 1 << mod_param_profile.num_cq :
+ default_profile.num_cq);
+ default_profile.num_mcg = (mod_param_profile.num_mcg ?
+ 1 << mod_param_profile.num_mcg :
+ default_profile.num_mcg);
+ default_profile.num_mpt = (mod_param_profile.num_mpt ?
+ 1 << mod_param_profile.num_mpt :
+ default_profile.num_mpt);
+ default_profile.num_mtt = (mod_param_profile.num_mtt ?
+ 1 << mod_param_profile.num_mtt :
+ default_profile.num_mtt);
+}