On Tue, Dec 26, 2023 at 05:16:33PM +0800, Junxian Huang wrote: > > > On 2023/12/26 16:52, Leon Romanovsky wrote: > > On Mon, Dec 25, 2023 at 03:53:28PM +0800, Junxian Huang wrote: > >> From: Chengchang Tang <tangchengchang@xxxxxxxxxx> > >> > >> In the current implementation, a fixed page size is used to > >> configure the PBL, which is not flexible enough and is not > >> conducive to the performance of the HW. > >> > >> Signed-off-by: Chengchang Tang <tangchengchang@xxxxxxxxxx> > >> Signed-off-by: Junxian Huang <huangjunxian6@xxxxxxxxxxxxx> > >> --- > >> drivers/infiniband/hw/hns/hns_roce_alloc.c | 6 - > >> drivers/infiniband/hw/hns/hns_roce_device.h | 9 ++ > >> drivers/infiniband/hw/hns/hns_roce_mr.c | 168 +++++++++++++++----- > >> 3 files changed, 139 insertions(+), 44 deletions(-) > > > > I'm wonder if the ib_umem_find_best_pgsz() API should be used instead. > > What is missing there? > > > > Thanks > > Actually this API is used for umem. > For kmem, we add hns_roce_find_buf_best_pgsz() to do a similar job. But why do you need to do something like this for kmem? It looked to me like kmem knows its allocation size when it was allocated, how come you need to iterate over all of it again? Jason