* [PATCH for-next 1/3] RDMA/hns: Use IDA interface to manage uar index
2021-08-19 1:36 [PATCH for-next 0/3] RDMA/hns: Use ida to manage some index of resources and remove unused bitmap Wenpeng Liang
@ 2021-08-19 1:36 ` Wenpeng Liang
2021-08-19 1:36 ` [PATCH for-next 2/3] RDMA/hns: Use IDA interface to manage srq index Wenpeng Liang
` (2 subsequent siblings)
3 siblings, 0 replies; 8+ messages in thread
From: Wenpeng Liang @ 2021-08-19 1:36 UTC (permalink / raw)
To: dledford, jgg; +Cc: linux-rdma, linuxarm, liangwenpeng
From: Yangyang Li <liyangyang20@huawei.com>
Switch uar index allocation and release from hns' own bitmap interface to
IDA interface.
Signed-off-by: Yangyang Li <liyangyang20@huawei.com>
Signed-off-by: Wenpeng Liang <liangwenpeng@huawei.com>
---
drivers/infiniband/hw/hns/hns_roce_alloc.c | 2 +-
drivers/infiniband/hw/hns/hns_roce_device.h | 6 ++----
drivers/infiniband/hw/hns/hns_roce_main.c | 14 +++++--------
drivers/infiniband/hw/hns/hns_roce_pd.c | 31 +++++++++++++----------------
4 files changed, 22 insertions(+), 31 deletions(-)
diff --git a/drivers/infiniband/hw/hns/hns_roce_alloc.c b/drivers/infiniband/hw/hns/hns_roce_alloc.c
index 1b02d3b..6ae506e 100644
--- a/drivers/infiniband/hw/hns/hns_roce_alloc.c
+++ b/drivers/infiniband/hw/hns/hns_roce_alloc.c
@@ -253,5 +253,5 @@ void hns_roce_cleanup_bitmap(struct hns_roce_dev *hr_dev)
hns_roce_cleanup_cq_table(hr_dev);
ida_destroy(&hr_dev->mr_table.mtpt_ida.ida);
ida_destroy(&hr_dev->pd_ida.ida);
- hns_roce_cleanup_uar_table(hr_dev);
+ ida_destroy(&hr_dev->uar_ida.ida);
}
diff --git a/drivers/infiniband/hw/hns/hns_roce_device.h b/drivers/infiniband/hw/hns/hns_roce_device.h
index 0c3eb11..01906f3 100644
--- a/drivers/infiniband/hw/hns/hns_roce_device.h
+++ b/drivers/infiniband/hw/hns/hns_roce_device.h
@@ -963,7 +963,7 @@ struct hns_roce_dev {
struct hns_roce_cmdq cmd;
struct hns_roce_ida pd_ida;
struct hns_roce_ida xrcd_ida;
- struct hns_roce_uar_table uar_table;
+ struct hns_roce_ida uar_ida;
struct hns_roce_mr_table mr_table;
struct hns_roce_cq_table cq_table;
struct hns_roce_srq_table srq_table;
@@ -1118,10 +1118,8 @@ static inline u8 get_tclass(const struct ib_global_route *grh)
grh->traffic_class >> DSCP_SHIFT : grh->traffic_class;
}
-int hns_roce_init_uar_table(struct hns_roce_dev *dev);
+void hns_roce_init_uar_table(struct hns_roce_dev *dev);
int hns_roce_uar_alloc(struct hns_roce_dev *dev, struct hns_roce_uar *uar);
-void hns_roce_uar_free(struct hns_roce_dev *dev, struct hns_roce_uar *uar);
-void hns_roce_cleanup_uar_table(struct hns_roce_dev *dev);
int hns_roce_cmd_init(struct hns_roce_dev *hr_dev);
void hns_roce_cmd_cleanup(struct hns_roce_dev *hr_dev);
diff --git a/drivers/infiniband/hw/hns/hns_roce_main.c b/drivers/infiniband/hw/hns/hns_roce_main.c
index 23b88a5..7ab685a 100644
--- a/drivers/infiniband/hw/hns/hns_roce_main.c
+++ b/drivers/infiniband/hw/hns/hns_roce_main.c
@@ -325,7 +325,7 @@ static int hns_roce_alloc_ucontext(struct ib_ucontext *uctx,
return 0;
error_fail_copy_to_udata:
- hns_roce_uar_free(hr_dev, &context->uar);
+ ida_free(&hr_dev->uar_ida.ida, (int)context->uar.logic_idx);
error_fail_uar_alloc:
return ret;
@@ -334,8 +334,9 @@ static int hns_roce_alloc_ucontext(struct ib_ucontext *uctx,
static void hns_roce_dealloc_ucontext(struct ib_ucontext *ibcontext)
{
struct hns_roce_ucontext *context = to_hr_ucontext(ibcontext);
+ struct hns_roce_dev *hr_dev = to_hr_dev(ibcontext->device);
- hns_roce_uar_free(to_hr_dev(ibcontext->device), &context->uar);
+ ida_free(&hr_dev->uar_ida.ida, (int)context->uar.logic_idx);
}
static int hns_roce_mmap(struct ib_ucontext *context,
@@ -737,11 +738,7 @@ static int hns_roce_setup_hca(struct hns_roce_dev *hr_dev)
mutex_init(&hr_dev->pgdir_mutex);
}
- ret = hns_roce_init_uar_table(hr_dev);
- if (ret) {
- dev_err(dev, "Failed to initialize uar table. aborting\n");
- return ret;
- }
+ hns_roce_init_uar_table(hr_dev);
ret = hns_roce_uar_alloc(hr_dev, &hr_dev->priv_uar);
if (ret) {
@@ -780,10 +777,9 @@ static int hns_roce_setup_hca(struct hns_roce_dev *hr_dev)
ida_destroy(&hr_dev->xrcd_ida.ida);
ida_destroy(&hr_dev->pd_ida.ida);
- hns_roce_uar_free(hr_dev, &hr_dev->priv_uar);
err_uar_table_free:
- hns_roce_cleanup_uar_table(hr_dev);
+ ida_destroy(&hr_dev->uar_ida.ida);
return ret;
}
diff --git a/drivers/infiniband/hw/hns/hns_roce_pd.c b/drivers/infiniband/hw/hns/hns_roce_pd.c
index ea56636..81ffad7 100644
--- a/drivers/infiniband/hw/hns/hns_roce_pd.c
+++ b/drivers/infiniband/hw/hns/hns_roce_pd.c
@@ -85,13 +85,18 @@ int hns_roce_dealloc_pd(struct ib_pd *pd, struct ib_udata *udata)
int hns_roce_uar_alloc(struct hns_roce_dev *hr_dev, struct hns_roce_uar *uar)
{
+ struct hns_roce_ida *uar_ida = &hr_dev->uar_ida;
struct resource *res;
- int ret;
+ int id;
/* Using bitmap to manager UAR index */
- ret = hns_roce_bitmap_alloc(&hr_dev->uar_table.bitmap, &uar->logic_idx);
- if (ret)
+ id = ida_alloc_range(&uar_ida->ida, uar_ida->min, uar_ida->max,
+ GFP_KERNEL);
+ if (id < 0) {
+ ibdev_err(&hr_dev->ib_dev, "failed to alloc uar id(%d).\n", id);
return -ENOMEM;
+ }
+ uar->logic_idx = (unsigned long)id;
if (uar->logic_idx > 0 && hr_dev->caps.phy_num_uars > 1)
uar->index = (uar->logic_idx - 1) %
@@ -102,6 +107,7 @@ int hns_roce_uar_alloc(struct hns_roce_dev *hr_dev, struct hns_roce_uar *uar)
if (!dev_is_pci(hr_dev->dev)) {
res = platform_get_resource(hr_dev->pdev, IORESOURCE_MEM, 0);
if (!res) {
+ ida_free(&uar_ida->ida, id);
dev_err(&hr_dev->pdev->dev, "memory resource not found!\n");
return -EINVAL;
}
@@ -114,22 +120,13 @@ int hns_roce_uar_alloc(struct hns_roce_dev *hr_dev, struct hns_roce_uar *uar)
return 0;
}
-void hns_roce_uar_free(struct hns_roce_dev *hr_dev, struct hns_roce_uar *uar)
+void hns_roce_init_uar_table(struct hns_roce_dev *hr_dev)
{
- hns_roce_bitmap_free(&hr_dev->uar_table.bitmap, uar->logic_idx);
-}
+ struct hns_roce_ida *uar_ida = &hr_dev->uar_ida;
-int hns_roce_init_uar_table(struct hns_roce_dev *hr_dev)
-{
- return hns_roce_bitmap_init(&hr_dev->uar_table.bitmap,
- hr_dev->caps.num_uars,
- hr_dev->caps.num_uars - 1,
- hr_dev->caps.reserved_uars, 0);
-}
-
-void hns_roce_cleanup_uar_table(struct hns_roce_dev *hr_dev)
-{
- hns_roce_bitmap_cleanup(&hr_dev->uar_table.bitmap);
+ ida_init(&uar_ida->ida);
+ uar_ida->max = hr_dev->caps.num_uars - 1;
+ uar_ida->min = hr_dev->caps.reserved_uars;
}
static int hns_roce_xrcd_alloc(struct hns_roce_dev *hr_dev, u32 *xrcdn)
--
2.8.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH for-next 2/3] RDMA/hns: Use IDA interface to manage srq index
2021-08-19 1:36 [PATCH for-next 0/3] RDMA/hns: Use ida to manage some index of resources and remove unused bitmap Wenpeng Liang
2021-08-19 1:36 ` [PATCH for-next 1/3] RDMA/hns: Use IDA interface to manage uar index Wenpeng Liang
@ 2021-08-19 1:36 ` Wenpeng Liang
2021-08-19 1:36 ` [PATCH for-next 3/3] RDMA/hns: Delete unused hns bitmap interface Wenpeng Liang
2021-08-20 18:48 ` [PATCH for-next 0/3] RDMA/hns: Use ida to manage some index of resources and remove unused bitmap Jason Gunthorpe
3 siblings, 0 replies; 8+ messages in thread
From: Wenpeng Liang @ 2021-08-19 1:36 UTC (permalink / raw)
To: dledford, jgg; +Cc: linux-rdma, linuxarm, liangwenpeng
From: Yangyang Li <liyangyang20@huawei.com>
Switch srq index allocation and release from hns' own bitmap interface to
IDA interface.
Signed-off-by: Yangyang Li <liyangyang20@huawei.com>
Signed-off-by: Wenpeng Liang <liangwenpeng@huawei.com>
---
drivers/infiniband/hw/hns/hns_roce_alloc.c | 2 +-
drivers/infiniband/hw/hns/hns_roce_device.h | 5 ++---
drivers/infiniband/hw/hns/hns_roce_main.c | 17 +----------------
drivers/infiniband/hw/hns/hns_roce_srq.c | 28 ++++++++++++++--------------
4 files changed, 18 insertions(+), 34 deletions(-)
diff --git a/drivers/infiniband/hw/hns/hns_roce_alloc.c b/drivers/infiniband/hw/hns/hns_roce_alloc.c
index 6ae506e..1dc35dd 100644
--- a/drivers/infiniband/hw/hns/hns_roce_alloc.c
+++ b/drivers/infiniband/hw/hns/hns_roce_alloc.c
@@ -248,7 +248,7 @@ void hns_roce_cleanup_bitmap(struct hns_roce_dev *hr_dev)
ida_destroy(&hr_dev->xrcd_ida.ida);
if (hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_SRQ)
- hns_roce_cleanup_srq_table(hr_dev);
+ ida_destroy(&hr_dev->srq_table.srq_ida.ida);
hns_roce_cleanup_qp_table(hr_dev);
hns_roce_cleanup_cq_table(hr_dev);
ida_destroy(&hr_dev->mr_table.mtpt_ida.ida);
diff --git a/drivers/infiniband/hw/hns/hns_roce_device.h b/drivers/infiniband/hw/hns/hns_roce_device.h
index 01906f3..4b6c3c0 100644
--- a/drivers/infiniband/hw/hns/hns_roce_device.h
+++ b/drivers/infiniband/hw/hns/hns_roce_device.h
@@ -514,7 +514,7 @@ struct hns_roce_cq_table {
};
struct hns_roce_srq_table {
- struct hns_roce_bitmap bitmap;
+ struct hns_roce_ida srq_ida;
struct xarray xa;
struct hns_roce_hem_table table;
};
@@ -1145,13 +1145,12 @@ void hns_roce_init_pd_table(struct hns_roce_dev *hr_dev);
void hns_roce_init_mr_table(struct hns_roce_dev *hr_dev);
void hns_roce_init_cq_table(struct hns_roce_dev *hr_dev);
void hns_roce_init_qp_table(struct hns_roce_dev *hr_dev);
-int hns_roce_init_srq_table(struct hns_roce_dev *hr_dev);
+void hns_roce_init_srq_table(struct hns_roce_dev *hr_dev);
void hns_roce_init_xrcd_table(struct hns_roce_dev *hr_dev);
void hns_roce_cleanup_eq_table(struct hns_roce_dev *hr_dev);
void hns_roce_cleanup_cq_table(struct hns_roce_dev *hr_dev);
void hns_roce_cleanup_qp_table(struct hns_roce_dev *hr_dev);
-void hns_roce_cleanup_srq_table(struct hns_roce_dev *hr_dev);
int hns_roce_bitmap_alloc(struct hns_roce_bitmap *bitmap, unsigned long *obj);
void hns_roce_bitmap_free(struct hns_roce_bitmap *bitmap, unsigned long obj);
diff --git a/drivers/infiniband/hw/hns/hns_roce_main.c b/drivers/infiniband/hw/hns/hns_roce_main.c
index 7ab685a..6467f8f 100644
--- a/drivers/infiniband/hw/hns/hns_roce_main.c
+++ b/drivers/infiniband/hw/hns/hns_roce_main.c
@@ -758,26 +758,11 @@ static int hns_roce_setup_hca(struct hns_roce_dev *hr_dev)
hns_roce_init_qp_table(hr_dev);
if (hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_SRQ) {
- ret = hns_roce_init_srq_table(hr_dev);
- if (ret) {
- dev_err(dev,
- "Failed to init share receive queue table.\n");
- goto err_qp_table_free;
- }
+ hns_roce_init_srq_table(hr_dev);
}
return 0;
-err_qp_table_free:
- hns_roce_cleanup_qp_table(hr_dev);
- hns_roce_cleanup_cq_table(hr_dev);
- ida_destroy(&hr_dev->mr_table.mtpt_ida.ida);
-
- if (hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_XRC)
- ida_destroy(&hr_dev->xrcd_ida.ida);
-
- ida_destroy(&hr_dev->pd_ida.ida);
-
err_uar_table_free:
ida_destroy(&hr_dev->uar_ida.ida);
return ret;
diff --git a/drivers/infiniband/hw/hns/hns_roce_srq.c b/drivers/infiniband/hw/hns/hns_roce_srq.c
index 6f2992f..6eee9de 100644
--- a/drivers/infiniband/hw/hns/hns_roce_srq.c
+++ b/drivers/infiniband/hw/hns/hns_roce_srq.c
@@ -80,15 +80,19 @@ static int hns_roce_hw_destroy_srq(struct hns_roce_dev *dev,
static int alloc_srqc(struct hns_roce_dev *hr_dev, struct hns_roce_srq *srq)
{
struct hns_roce_srq_table *srq_table = &hr_dev->srq_table;
+ struct hns_roce_ida *srq_ida = &hr_dev->srq_table.srq_ida;
struct ib_device *ibdev = &hr_dev->ib_dev;
struct hns_roce_cmd_mailbox *mailbox;
int ret;
+ int id;
- ret = hns_roce_bitmap_alloc(&srq_table->bitmap, &srq->srqn);
- if (ret) {
- ibdev_err(ibdev, "failed to alloc SRQ number.\n");
+ id = ida_alloc_range(&srq_ida->ida, srq_ida->min, srq_ida->max,
+ GFP_KERNEL);
+ if (id < 0) {
+ ibdev_err(ibdev, "failed to alloc srq(%d).\n", id);
return -ENOMEM;
}
+ srq->srqn = (unsigned long)id;
ret = hns_roce_table_get(hr_dev, &srq_table->table, srq->srqn);
if (ret) {
@@ -132,7 +136,7 @@ static int alloc_srqc(struct hns_roce_dev *hr_dev, struct hns_roce_srq *srq)
err_put:
hns_roce_table_put(hr_dev, &srq_table->table, srq->srqn);
err_out:
- hns_roce_bitmap_free(&srq_table->bitmap, srq->srqn);
+ ida_free(&srq_ida->ida, id);
return ret;
}
@@ -154,7 +158,7 @@ static void free_srqc(struct hns_roce_dev *hr_dev, struct hns_roce_srq *srq)
wait_for_completion(&srq->free);
hns_roce_table_put(hr_dev, &srq_table->table, srq->srqn);
- hns_roce_bitmap_free(&srq_table->bitmap, srq->srqn);
+ ida_free(&srq_table->srq_ida.ida, (int)srq->srqn);
}
static int alloc_srq_idx(struct hns_roce_dev *hr_dev, struct hns_roce_srq *srq,
@@ -440,18 +444,14 @@ int hns_roce_destroy_srq(struct ib_srq *ibsrq, struct ib_udata *udata)
return 0;
}
-int hns_roce_init_srq_table(struct hns_roce_dev *hr_dev)
+void hns_roce_init_srq_table(struct hns_roce_dev *hr_dev)
{
struct hns_roce_srq_table *srq_table = &hr_dev->srq_table;
+ struct hns_roce_ida *srq_ida = &srq_table->srq_ida;
xa_init(&srq_table->xa);
- return hns_roce_bitmap_init(&srq_table->bitmap, hr_dev->caps.num_srqs,
- hr_dev->caps.num_srqs - 1,
- hr_dev->caps.reserved_srqs, 0);
-}
-
-void hns_roce_cleanup_srq_table(struct hns_roce_dev *hr_dev)
-{
- hns_roce_bitmap_cleanup(&hr_dev->srq_table.bitmap);
+ ida_init(&srq_ida->ida);
+ srq_ida->max = hr_dev->caps.num_srqs - 1;
+ srq_ida->min = hr_dev->caps.reserved_srqs;
}
--
2.8.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH for-next 3/3] RDMA/hns: Delete unused hns bitmap interface
2021-08-19 1:36 [PATCH for-next 0/3] RDMA/hns: Use ida to manage some index of resources and remove unused bitmap Wenpeng Liang
2021-08-19 1:36 ` [PATCH for-next 1/3] RDMA/hns: Use IDA interface to manage uar index Wenpeng Liang
2021-08-19 1:36 ` [PATCH for-next 2/3] RDMA/hns: Use IDA interface to manage srq index Wenpeng Liang
@ 2021-08-19 1:36 ` Wenpeng Liang
2021-08-20 18:48 ` [PATCH for-next 0/3] RDMA/hns: Use ida to manage some index of resources and remove unused bitmap Jason Gunthorpe
3 siblings, 0 replies; 8+ messages in thread
From: Wenpeng Liang @ 2021-08-19 1:36 UTC (permalink / raw)
To: dledford, jgg; +Cc: linux-rdma, linuxarm, liangwenpeng
From: Yangyang Li <liyangyang20@huawei.com>
The resources that use the hns bitmap interface:
qp, cq, mr, pd, xrcd, uar, srq, have been changed to IDA interfaces, and
the unused hns' own bitmap interfaces need to be deleted.
Signed-off-by: Yangyang Li <liyangyang20@huawei.com>
Signed-off-by: Wenpeng Liang <liangwenpeng@huawei.com>
---
drivers/infiniband/hw/hns/hns_roce_alloc.c | 70 -----------------------------
drivers/infiniband/hw/hns/hns_roce_device.h | 5 ---
2 files changed, 75 deletions(-)
diff --git a/drivers/infiniband/hw/hns/hns_roce_alloc.c b/drivers/infiniband/hw/hns/hns_roce_alloc.c
index 1dc35dd..d4fa0fd 100644
--- a/drivers/infiniband/hw/hns/hns_roce_alloc.c
+++ b/drivers/infiniband/hw/hns/hns_roce_alloc.c
@@ -36,76 +36,6 @@
#include "hns_roce_device.h"
#include <rdma/ib_umem.h>
-int hns_roce_bitmap_alloc(struct hns_roce_bitmap *bitmap, unsigned long *obj)
-{
- int ret = 0;
-
- spin_lock(&bitmap->lock);
- *obj = find_next_zero_bit(bitmap->table, bitmap->max, bitmap->last);
- if (*obj >= bitmap->max) {
- bitmap->top = (bitmap->top + bitmap->max + bitmap->reserved_top)
- & bitmap->mask;
- *obj = find_first_zero_bit(bitmap->table, bitmap->max);
- }
-
- if (*obj < bitmap->max) {
- set_bit(*obj, bitmap->table);
- bitmap->last = (*obj + 1);
- if (bitmap->last == bitmap->max)
- bitmap->last = 0;
- *obj |= bitmap->top;
- } else {
- ret = -EINVAL;
- }
-
- spin_unlock(&bitmap->lock);
-
- return ret;
-}
-
-void hns_roce_bitmap_free(struct hns_roce_bitmap *bitmap, unsigned long obj)
-{
- obj &= bitmap->max + bitmap->reserved_top - 1;
-
- spin_lock(&bitmap->lock);
- clear_bit(obj, bitmap->table);
-
- bitmap->last = min(bitmap->last, obj);
- bitmap->top = (bitmap->top + bitmap->max + bitmap->reserved_top)
- & bitmap->mask;
- spin_unlock(&bitmap->lock);
-}
-
-int hns_roce_bitmap_init(struct hns_roce_bitmap *bitmap, u32 num, u32 mask,
- u32 reserved_bot, u32 reserved_top)
-{
- u32 i;
-
- if (num != roundup_pow_of_two(num))
- return -EINVAL;
-
- bitmap->last = 0;
- bitmap->top = 0;
- bitmap->max = num - reserved_top;
- bitmap->mask = mask;
- bitmap->reserved_top = reserved_top;
- spin_lock_init(&bitmap->lock);
- bitmap->table = kcalloc(BITS_TO_LONGS(bitmap->max), sizeof(long),
- GFP_KERNEL);
- if (!bitmap->table)
- return -ENOMEM;
-
- for (i = 0; i < reserved_bot; ++i)
- set_bit(i, bitmap->table);
-
- return 0;
-}
-
-void hns_roce_bitmap_cleanup(struct hns_roce_bitmap *bitmap)
-{
- kfree(bitmap->table);
-}
-
void hns_roce_buf_free(struct hns_roce_dev *hr_dev, struct hns_roce_buf *buf)
{
struct hns_roce_buf_list *trunks;
diff --git a/drivers/infiniband/hw/hns/hns_roce_device.h b/drivers/infiniband/hw/hns/hns_roce_device.h
index 4b6c3c0..2129da3 100644
--- a/drivers/infiniband/hw/hns/hns_roce_device.h
+++ b/drivers/infiniband/hw/hns/hns_roce_device.h
@@ -1152,11 +1152,6 @@ void hns_roce_cleanup_eq_table(struct hns_roce_dev *hr_dev);
void hns_roce_cleanup_cq_table(struct hns_roce_dev *hr_dev);
void hns_roce_cleanup_qp_table(struct hns_roce_dev *hr_dev);
-int hns_roce_bitmap_alloc(struct hns_roce_bitmap *bitmap, unsigned long *obj);
-void hns_roce_bitmap_free(struct hns_roce_bitmap *bitmap, unsigned long obj);
-int hns_roce_bitmap_init(struct hns_roce_bitmap *bitmap, u32 num, u32 mask,
- u32 reserved_bot, u32 resetrved_top);
-void hns_roce_bitmap_cleanup(struct hns_roce_bitmap *bitmap);
void hns_roce_cleanup_bitmap(struct hns_roce_dev *hr_dev);
int hns_roce_create_ah(struct ib_ah *ah, struct rdma_ah_init_attr *init_attr,
--
2.8.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH for-next 0/3] RDMA/hns: Use ida to manage some index of resources and remove unused bitmap
2021-08-19 1:36 [PATCH for-next 0/3] RDMA/hns: Use ida to manage some index of resources and remove unused bitmap Wenpeng Liang
` (2 preceding siblings ...)
2021-08-19 1:36 ` [PATCH for-next 3/3] RDMA/hns: Delete unused hns bitmap interface Wenpeng Liang
@ 2021-08-20 18:48 ` Jason Gunthorpe
2021-08-21 8:26 ` Wenpeng Liang
3 siblings, 1 reply; 8+ messages in thread
From: Jason Gunthorpe @ 2021-08-20 18:48 UTC (permalink / raw)
To: Wenpeng Liang; +Cc: dledford, linux-rdma, linuxarm
On Thu, Aug 19, 2021 at 09:36:17AM +0800, Wenpeng Liang wrote:
> Use the ida interface to replace hns' own bitmap interface. The previous
> ida patchset has replaced qp, cq, mr, pd, and xrcd. This ida patchset
> will replace the remaining uar and srq. Since then, all replacements
> have been completed.
>
> Link to the previous ida patchset:
> https://patchwork.kernel.org/project/linux-rdma/cover/1623325814-55737-1-git-send-email-liweihang@huawei.com/
>
> Yangyang Li (3):
> RDMA/hns: Use IDA interface to manage uar index
> RDMA/hns: Use IDA interface to manage srq index
> RDMA/hns: Delete unused hns bitmap interface
It looks OK, but doesn't apply. Can you rebase it and resend? Looks
like it was based on the earlier hns patchset
Thanks,
Jason
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH for-next 0/3] RDMA/hns: Use ida to manage some index of resources and remove unused bitmap
2021-08-20 18:48 ` [PATCH for-next 0/3] RDMA/hns: Use ida to manage some index of resources and remove unused bitmap Jason Gunthorpe
@ 2021-08-21 8:26 ` Wenpeng Liang
2021-08-24 9:37 ` Wenpeng Liang
0 siblings, 1 reply; 8+ messages in thread
From: Wenpeng Liang @ 2021-08-21 8:26 UTC (permalink / raw)
To: Jason Gunthorpe; +Cc: dledford, linux-rdma, linuxarm
On 2021/8/21 2:48, Jason Gunthorpe wrote:
> On Thu, Aug 19, 2021 at 09:36:17AM +0800, Wenpeng Liang wrote:
>> Use the ida interface to replace hns' own bitmap interface. The previous
>> ida patchset has replaced qp, cq, mr, pd, and xrcd. This ida patchset
>> will replace the remaining uar and srq. Since then, all replacements
>> have been completed.
>>
>> Link to the previous ida patchset:
>> https://patchwork.kernel.org/project/linux-rdma/cover/1623325814-55737-1-git-send-email-liweihang@huawei.com/
>>
>> Yangyang Li (3):
>> RDMA/hns: Use IDA interface to manage uar index
>> RDMA/hns: Use IDA interface to manage srq index
>> RDMA/hns: Delete unused hns bitmap interface
>
> It looks OK, but doesn't apply. Can you rebase it and resend? Looks
> like it was based on the earlier hns patchset
>
> Thanks,
> Jason
> .
>
I will rebase it and resend.
Thanks,
Wenpeng
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH for-next 0/3] RDMA/hns: Use ida to manage some index of resources and remove unused bitmap
2021-08-21 8:26 ` Wenpeng Liang
@ 2021-08-24 9:37 ` Wenpeng Liang
2021-08-24 14:12 ` Jason Gunthorpe
0 siblings, 1 reply; 8+ messages in thread
From: Wenpeng Liang @ 2021-08-24 9:37 UTC (permalink / raw)
To: Jason Gunthorpe; +Cc: dledford, linux-rdma, linuxarm
On 2021/8/21 16:26, Wenpeng Liang wrote:
>
>
> On 2021/8/21 2:48, Jason Gunthorpe wrote:
>> On Thu, Aug 19, 2021 at 09:36:17AM +0800, Wenpeng Liang wrote:
>>> Use the ida interface to replace hns' own bitmap interface. The previous
>>> ida patchset has replaced qp, cq, mr, pd, and xrcd. This ida patchset
>>> will replace the remaining uar and srq. Since then, all replacements
>>> have been completed.
>>>
>>> Link to the previous ida patchset:
>>> https://patchwork.kernel.org/project/linux-rdma/cover/1623325814-55737-1-git-send-email-liweihang@huawei.com/
>>>
>>> Yangyang Li (3):
>>> RDMA/hns: Use IDA interface to manage uar index
>>> RDMA/hns: Use IDA interface to manage srq index
>>> RDMA/hns: Delete unused hns bitmap interface
>>
>> It looks OK, but doesn't apply. Can you rebase it and resend? Looks
>> like it was based on the earlier hns patchset
>>
>> Thanks,
>> Jason
>> .
>>
>
> I will rebase it and resend.
>
> Thanks,
> Wenpeng
> .
>
Hi, Jason
If the jgg-rc-next branch has been revert the patchset
"RDMA/hns: Add support for Dynamic Context Attachment"
(Link:https://patchwork.kernel.org/project/linux-rdma/cover/1627525163-1683-1-git-send -email-liangwenpeng@huawei.com/),
then this patchset can be applied without conflicts, please try again.
Thanks,
Wenpeng
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH for-next 0/3] RDMA/hns: Use ida to manage some index of resources and remove unused bitmap
2021-08-24 9:37 ` Wenpeng Liang
@ 2021-08-24 14:12 ` Jason Gunthorpe
0 siblings, 0 replies; 8+ messages in thread
From: Jason Gunthorpe @ 2021-08-24 14:12 UTC (permalink / raw)
To: Wenpeng Liang; +Cc: dledford, linux-rdma, linuxarm
On Tue, Aug 24, 2021 at 05:37:03PM +0800, Wenpeng Liang wrote:
>
> On 2021/8/21 16:26, Wenpeng Liang wrote:
> >
> >
> > On 2021/8/21 2:48, Jason Gunthorpe wrote:
> >> On Thu, Aug 19, 2021 at 09:36:17AM +0800, Wenpeng Liang wrote:
> >>> Use the ida interface to replace hns' own bitmap interface. The previous
> >>> ida patchset has replaced qp, cq, mr, pd, and xrcd. This ida patchset
> >>> will replace the remaining uar and srq. Since then, all replacements
> >>> have been completed.
> >>>
> >>> Link to the previous ida patchset:
> >>> https://patchwork.kernel.org/project/linux-rdma/cover/1623325814-55737-1-git-send-email-liweihang@huawei.com/
> >>>
> >>> Yangyang Li (3):
> >>> RDMA/hns: Use IDA interface to manage uar index
> >>> RDMA/hns: Use IDA interface to manage srq index
> >>> RDMA/hns: Delete unused hns bitmap interface
> >>
> >> It looks OK, but doesn't apply. Can you rebase it and resend? Looks
> >> like it was based on the earlier hns patchset
> >>
> >> Thanks,
> >> Jason
> >> .
> >>
> >
> > I will rebase it and resend.
> >
> > Thanks,
> > Wenpeng
> > .
> >
>
> Hi, Jason
> If the jgg-rc-next branch has been revert the patchset
> "RDMA/hns: Add support for Dynamic Context Attachment"
> (Link:https://patchwork.kernel.org/project/linux-rdma/cover/1627525163-1683-1-git-send -email-liangwenpeng@huawei.com/),
> then this patchset can be applied without conflicts, please try again.
Okay, looks good, thanks
Jason
^ permalink raw reply [flat|nested] 8+ messages in thread