Skip to content

Commit 2f5ff26

Browse files
Eli Cohenrleon
authored andcommitted
mlx5: Fix naming convention with respect to UARs
This establishes a solid naming conventions for UARs. A UAR (User Access Region) can have size identical to a system page or can be fixed 4KB depending on a value queried by firmware. Each UAR always has 4 blue flame register which are used to post doorbell to send queue. In addition, a UAR has section used for posting doorbells to CQs or EQs. In this patch we change names to reflect this conventions. Signed-off-by: Eli Cohen <[email protected]> Reviewed-by: Matan Barak <[email protected]> Signed-off-by: Leon Romanovsky <[email protected]> Signed-off-by: Saeed Mahameed <[email protected]>
1 parent f4044da commit 2f5ff26

File tree

10 files changed

+206
-203
lines changed

10 files changed

+206
-203
lines changed

drivers/infiniband/hw/mlx5/cq.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -689,7 +689,7 @@ int mlx5_ib_arm_cq(struct ib_cq *ibcq, enum ib_cq_notify_flags flags)
689689
{
690690
struct mlx5_core_dev *mdev = to_mdev(ibcq->device)->mdev;
691691
struct mlx5_ib_cq *cq = to_mcq(ibcq);
692-
void __iomem *uar_page = mdev->priv.uuari.uars[0].map;
692+
void __iomem *uar_page = mdev->priv.bfregi.uars[0].map;
693693
unsigned long irq_flags;
694694
int ret = 0;
695695

@@ -790,7 +790,7 @@ static int create_cq_user(struct mlx5_ib_dev *dev, struct ib_udata *udata,
790790
MLX5_SET(cqc, cqc, log_page_size,
791791
page_shift - MLX5_ADAPTER_PAGE_SHIFT);
792792

793-
*index = to_mucontext(context)->uuari.uars[0].index;
793+
*index = to_mucontext(context)->bfregi.uars[0].index;
794794

795795
if (ucmd.cqe_comp_en == 1) {
796796
if (unlikely((*cqe_size != 64) ||
@@ -886,7 +886,7 @@ static int create_cq_kernel(struct mlx5_ib_dev *dev, struct mlx5_ib_cq *cq,
886886
MLX5_SET(cqc, cqc, log_page_size,
887887
cq->buf.buf.page_shift - MLX5_ADAPTER_PAGE_SHIFT);
888888

889-
*index = dev->mdev->priv.uuari.uars[0].index;
889+
*index = dev->mdev->priv.bfregi.uars[0].index;
890890

891891
return 0;
892892

drivers/infiniband/hw/mlx5/main.c

Lines changed: 41 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -999,12 +999,12 @@ static struct ib_ucontext *mlx5_ib_alloc_ucontext(struct ib_device *ibdev,
999999
struct mlx5_ib_alloc_ucontext_req_v2 req = {};
10001000
struct mlx5_ib_alloc_ucontext_resp resp = {};
10011001
struct mlx5_ib_ucontext *context;
1002-
struct mlx5_uuar_info *uuari;
1002+
struct mlx5_bfreg_info *bfregi;
10031003
struct mlx5_uar *uars;
1004-
int gross_uuars;
1004+
int gross_bfregs;
10051005
int num_uars;
10061006
int ver;
1007-
int uuarn;
1007+
int bfregn;
10081008
int err;
10091009
int i;
10101010
size_t reqlen;
@@ -1032,10 +1032,10 @@ static struct ib_ucontext *mlx5_ib_alloc_ucontext(struct ib_device *ibdev,
10321032
if (req.flags)
10331033
return ERR_PTR(-EINVAL);
10341034

1035-
if (req.total_num_uuars > MLX5_MAX_UUARS)
1035+
if (req.total_num_bfregs > MLX5_MAX_BFREGS)
10361036
return ERR_PTR(-ENOMEM);
10371037

1038-
if (req.total_num_uuars == 0)
1038+
if (req.total_num_bfregs == 0)
10391039
return ERR_PTR(-EINVAL);
10401040

10411041
if (req.comp_mask || req.reserved0 || req.reserved1 || req.reserved2)
@@ -1046,13 +1046,13 @@ static struct ib_ucontext *mlx5_ib_alloc_ucontext(struct ib_device *ibdev,
10461046
reqlen - sizeof(req)))
10471047
return ERR_PTR(-EOPNOTSUPP);
10481048

1049-
req.total_num_uuars = ALIGN(req.total_num_uuars,
1050-
MLX5_NON_FP_BF_REGS_PER_PAGE);
1051-
if (req.num_low_latency_uuars > req.total_num_uuars - 1)
1049+
req.total_num_bfregs = ALIGN(req.total_num_bfregs,
1050+
MLX5_NON_FP_BFREGS_PER_UAR);
1051+
if (req.num_low_latency_bfregs > req.total_num_bfregs - 1)
10521052
return ERR_PTR(-EINVAL);
10531053

1054-
num_uars = req.total_num_uuars / MLX5_NON_FP_BF_REGS_PER_PAGE;
1055-
gross_uuars = num_uars * MLX5_BF_REGS_PER_PAGE;
1054+
num_uars = req.total_num_bfregs / MLX5_NON_FP_BFREGS_PER_UAR;
1055+
gross_bfregs = num_uars * MLX5_BFREGS_PER_UAR;
10561056
resp.qp_tab_size = 1 << MLX5_CAP_GEN(dev->mdev, log_max_qp);
10571057
if (mlx5_core_is_pf(dev->mdev) && MLX5_CAP_GEN(dev->mdev, bf))
10581058
resp.bf_reg_size = 1 << MLX5_CAP_GEN(dev->mdev, log_bf_reg_size);
@@ -1072,32 +1072,33 @@ static struct ib_ucontext *mlx5_ib_alloc_ucontext(struct ib_device *ibdev,
10721072
if (!context)
10731073
return ERR_PTR(-ENOMEM);
10741074

1075-
uuari = &context->uuari;
1076-
mutex_init(&uuari->lock);
1075+
bfregi = &context->bfregi;
1076+
mutex_init(&bfregi->lock);
10771077
uars = kcalloc(num_uars, sizeof(*uars), GFP_KERNEL);
10781078
if (!uars) {
10791079
err = -ENOMEM;
10801080
goto out_ctx;
10811081
}
10821082

1083-
uuari->bitmap = kcalloc(BITS_TO_LONGS(gross_uuars),
1084-
sizeof(*uuari->bitmap),
1083+
bfregi->bitmap = kcalloc(BITS_TO_LONGS(gross_bfregs),
1084+
sizeof(*bfregi->bitmap),
10851085
GFP_KERNEL);
1086-
if (!uuari->bitmap) {
1086+
if (!bfregi->bitmap) {
10871087
err = -ENOMEM;
10881088
goto out_uar_ctx;
10891089
}
10901090
/*
1091-
* clear all fast path uuars
1091+
* clear all fast path bfregs
10921092
*/
1093-
for (i = 0; i < gross_uuars; i++) {
1094-
uuarn = i & 3;
1095-
if (uuarn == 2 || uuarn == 3)
1096-
set_bit(i, uuari->bitmap);
1093+
for (i = 0; i < gross_bfregs; i++) {
1094+
bfregn = i & 3;
1095+
if (bfregn == 2 || bfregn == 3)
1096+
set_bit(i, bfregi->bitmap);
10971097
}
10981098

1099-
uuari->count = kcalloc(gross_uuars, sizeof(*uuari->count), GFP_KERNEL);
1100-
if (!uuari->count) {
1099+
bfregi->count = kcalloc(gross_bfregs,
1100+
sizeof(*bfregi->count), GFP_KERNEL);
1101+
if (!bfregi->count) {
11011102
err = -ENOMEM;
11021103
goto out_bitmap;
11031104
}
@@ -1130,7 +1131,7 @@ static struct ib_ucontext *mlx5_ib_alloc_ucontext(struct ib_device *ibdev,
11301131
INIT_LIST_HEAD(&context->db_page_list);
11311132
mutex_init(&context->db_page_mutex);
11321133

1133-
resp.tot_uuars = req.total_num_uuars;
1134+
resp.tot_bfregs = req.total_num_bfregs;
11341135
resp.num_ports = MLX5_CAP_GEN(dev->mdev, num_ports);
11351136

11361137
if (field_avail(typeof(resp), cqe_version, udata->outlen))
@@ -1163,10 +1164,10 @@ static struct ib_ucontext *mlx5_ib_alloc_ucontext(struct ib_device *ibdev,
11631164
if (err)
11641165
goto out_td;
11651166

1166-
uuari->ver = ver;
1167-
uuari->num_low_latency_uuars = req.num_low_latency_uuars;
1168-
uuari->uars = uars;
1169-
uuari->num_uars = num_uars;
1167+
bfregi->ver = ver;
1168+
bfregi->num_low_latency_bfregs = req.num_low_latency_bfregs;
1169+
bfregi->uars = uars;
1170+
bfregi->num_uars = num_uars;
11701171
context->cqe_version = resp.cqe_version;
11711172

11721173
return &context->ibucontext;
@@ -1182,10 +1183,10 @@ static struct ib_ucontext *mlx5_ib_alloc_ucontext(struct ib_device *ibdev,
11821183
for (i--; i >= 0; i--)
11831184
mlx5_cmd_free_uar(dev->mdev, uars[i].index);
11841185
out_count:
1185-
kfree(uuari->count);
1186+
kfree(bfregi->count);
11861187

11871188
out_bitmap:
1188-
kfree(uuari->bitmap);
1189+
kfree(bfregi->bitmap);
11891190

11901191
out_uar_ctx:
11911192
kfree(uars);
@@ -1199,22 +1200,23 @@ static int mlx5_ib_dealloc_ucontext(struct ib_ucontext *ibcontext)
11991200
{
12001201
struct mlx5_ib_ucontext *context = to_mucontext(ibcontext);
12011202
struct mlx5_ib_dev *dev = to_mdev(ibcontext->device);
1202-
struct mlx5_uuar_info *uuari = &context->uuari;
1203+
struct mlx5_bfreg_info *bfregi = &context->bfregi;
12031204
int i;
12041205

12051206
if (MLX5_CAP_GEN(dev->mdev, log_max_transport_domain))
12061207
mlx5_core_dealloc_transport_domain(dev->mdev, context->tdn);
12071208

12081209
free_page(context->upd_xlt_page);
12091210

1210-
for (i = 0; i < uuari->num_uars; i++) {
1211-
if (mlx5_cmd_free_uar(dev->mdev, uuari->uars[i].index))
1212-
mlx5_ib_warn(dev, "failed to free UAR 0x%x\n", uuari->uars[i].index);
1211+
for (i = 0; i < bfregi->num_uars; i++) {
1212+
if (mlx5_cmd_free_uar(dev->mdev, bfregi->uars[i].index))
1213+
mlx5_ib_warn(dev, "Failed to free UAR 0x%x\n",
1214+
bfregi->uars[i].index);
12131215
}
12141216

1215-
kfree(uuari->count);
1216-
kfree(uuari->bitmap);
1217-
kfree(uuari->uars);
1217+
kfree(bfregi->count);
1218+
kfree(bfregi->bitmap);
1219+
kfree(bfregi->uars);
12181220
kfree(context);
12191221

12201222
return 0;
@@ -1377,7 +1379,7 @@ static int uar_mmap(struct mlx5_ib_dev *dev, enum mlx5_ib_mmap_cmd cmd,
13771379
struct vm_area_struct *vma,
13781380
struct mlx5_ib_ucontext *context)
13791381
{
1380-
struct mlx5_uuar_info *uuari = &context->uuari;
1382+
struct mlx5_bfreg_info *bfregi = &context->bfregi;
13811383
int err;
13821384
unsigned long idx;
13831385
phys_addr_t pfn, pa;
@@ -1408,10 +1410,10 @@ static int uar_mmap(struct mlx5_ib_dev *dev, enum mlx5_ib_mmap_cmd cmd,
14081410
return -EINVAL;
14091411

14101412
idx = get_index(vma->vm_pgoff);
1411-
if (idx >= uuari->num_uars)
1413+
if (idx >= bfregi->num_uars)
14121414
return -EINVAL;
14131415

1414-
pfn = uar_index2pfn(dev, uuari->uars[idx].index);
1416+
pfn = uar_index2pfn(dev, bfregi->uars[idx].index);
14151417
mlx5_ib_dbg(dev, "uar idx 0x%lx, pfn %pa\n", idx, &pfn);
14161418

14171419
vma->vm_page_prot = prot;

drivers/infiniband/hw/mlx5/mlx5_ib.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ enum mlx5_ib_mad_ifc_flags {
100100
};
101101

102102
enum {
103-
MLX5_CROSS_CHANNEL_UUAR = 0,
103+
MLX5_CROSS_CHANNEL_BFREG = 0,
104104
};
105105

106106
enum {
@@ -120,7 +120,7 @@ struct mlx5_ib_ucontext {
120120
/* protect doorbell record alloc/free
121121
*/
122122
struct mutex db_page_mutex;
123-
struct mlx5_uuar_info uuari;
123+
struct mlx5_bfreg_info bfregi;
124124
u8 cqe_version;
125125
/* Transport Domain number */
126126
u32 tdn;
@@ -355,7 +355,7 @@ struct mlx5_ib_qp {
355355
/* only for user space QPs. For kernel
356356
* we have it from the bf object
357357
*/
358-
int uuarn;
358+
int bfregn;
359359

360360
int create_type;
361361

0 commit comments

Comments
 (0)