RDMA/irdma: Make resource distribution algorithm more QP oriented
Adapt the resource distribution algorithm in irdma_cfg_fpm_val to be more QP oriented. If the configuration is too big for the available memory, trim the MR and PBLE's first before trimming the QPs. This also avoids having to double QPs requested as input to algorithm for GEN1 devices. Link: https://lore.kernel.org/r/20220705230815.265-5-shiraz.saleem@intel.com Signed-off-by: Nayan Kumar <nayan.kumar@intel.com> Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com> Signed-off-by: Leon Romanovsky <leon@kernel.org>
This commit is contained in:
parent
36a26d1239
commit
c8c7c07581
|
@ -4872,10 +4872,12 @@ int irdma_cfg_fpm_val(struct irdma_sc_dev *dev, u32 qp_count)
|
|||
|
||||
sd_diff = sd_needed - hmc_fpm_misc->max_sds;
|
||||
if (sd_diff > 128) {
|
||||
if (qpwanted > 128 && sd_diff > 144)
|
||||
if (!(loop_count % 2) && qpwanted > 128) {
|
||||
qpwanted /= 2;
|
||||
mrwanted /= 2;
|
||||
pblewanted /= 2;
|
||||
} else {
|
||||
mrwanted /= 2;
|
||||
pblewanted /= 2;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (dev->cqp->hmc_profile != IRDMA_HMC_PROFILE_FAVOR_VF &&
|
||||
|
|
|
@ -1512,10 +1512,7 @@ static int irdma_hmc_setup(struct irdma_pci_f *rf)
|
|||
int status;
|
||||
u32 qpcnt;
|
||||
|
||||
if (rf->rdma_ver == IRDMA_GEN_1)
|
||||
qpcnt = rsrc_limits_table[rf->limits_sel].qplimit * 2;
|
||||
else
|
||||
qpcnt = rsrc_limits_table[rf->limits_sel].qplimit;
|
||||
qpcnt = rsrc_limits_table[rf->limits_sel].qplimit;
|
||||
|
||||
rf->sd_type = IRDMA_SD_TYPE_DIRECT;
|
||||
status = irdma_cfg_fpm_val(&rf->sc_dev, qpcnt);
|
||||
|
|
Loading…
Reference in New Issue