mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-21 06:50:25 +00:00
RDMA/rtrs: Register ib event handler
Use ib_register_event_handler() to register event handlers for both client and server side. For now, all those handlers do, is to print type of incoming event. Signed-off-by: Grzegorz Prajsner <grzegorz.prajsner@ionos.com> Signed-off-by: Jack Wang <jinpu.wang@ionos.com> Signed-off-by: Md Haris Iqbal <haris.iqbal@ionos.com> Link: https://patch.msgid.link/20240821112217.41827-10-haris.iqbal@ionos.com Signed-off-by: Leon Romanovsky <leon@kernel.org>
This commit is contained in:
parent
d0e62bf7b5
commit
667db86bcb
5 changed files with 58 additions and 2 deletions
|
@ -3149,8 +3149,20 @@ close_path:
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void rtrs_clt_ib_event_handler(struct ib_event_handler *handler,
|
||||||
|
struct ib_event *ibevent)
|
||||||
|
{
|
||||||
|
pr_info("Handling event: %s (%d).\n", ib_event_msg(ibevent->event),
|
||||||
|
ibevent->event);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static int rtrs_clt_ib_dev_init(struct rtrs_ib_dev *dev)
|
static int rtrs_clt_ib_dev_init(struct rtrs_ib_dev *dev)
|
||||||
{
|
{
|
||||||
|
INIT_IB_EVENT_HANDLER(&dev->event_handler, dev->ib_dev,
|
||||||
|
rtrs_clt_ib_event_handler);
|
||||||
|
ib_register_event_handler(&dev->event_handler);
|
||||||
|
|
||||||
if (!(dev->ib_dev->attrs.device_cap_flags &
|
if (!(dev->ib_dev->attrs.device_cap_flags &
|
||||||
IB_DEVICE_MEM_MGT_EXTENSIONS)) {
|
IB_DEVICE_MEM_MGT_EXTENSIONS)) {
|
||||||
pr_err("Memory registrations not supported.\n");
|
pr_err("Memory registrations not supported.\n");
|
||||||
|
@ -3160,8 +3172,15 @@ static int rtrs_clt_ib_dev_init(struct rtrs_ib_dev *dev)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void rtrs_clt_ib_dev_deinit(struct rtrs_ib_dev *dev)
|
||||||
|
{
|
||||||
|
ib_unregister_event_handler(&dev->event_handler);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static const struct rtrs_rdma_dev_pd_ops dev_pd_ops = {
|
static const struct rtrs_rdma_dev_pd_ops dev_pd_ops = {
|
||||||
.init = rtrs_clt_ib_dev_init
|
.init = rtrs_clt_ib_dev_init,
|
||||||
|
.deinit = rtrs_clt_ib_dev_deinit
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init rtrs_client_init(void)
|
static int __init rtrs_client_init(void)
|
||||||
|
|
|
@ -212,6 +212,8 @@ int rtrs_clt_remove_path_from_sysfs(struct rtrs_clt_path *path,
|
||||||
void rtrs_clt_set_max_reconnect_attempts(struct rtrs_clt_sess *clt, int value);
|
void rtrs_clt_set_max_reconnect_attempts(struct rtrs_clt_sess *clt, int value);
|
||||||
int rtrs_clt_get_max_reconnect_attempts(const struct rtrs_clt_sess *clt);
|
int rtrs_clt_get_max_reconnect_attempts(const struct rtrs_clt_sess *clt);
|
||||||
void free_path(struct rtrs_clt_path *clt_path);
|
void free_path(struct rtrs_clt_path *clt_path);
|
||||||
|
void rtrs_clt_ib_event_handler(struct ib_event_handler *handler,
|
||||||
|
struct ib_event *ibevent);
|
||||||
|
|
||||||
/* rtrs-clt-stats.c */
|
/* rtrs-clt-stats.c */
|
||||||
|
|
||||||
|
|
|
@ -69,6 +69,7 @@ struct rtrs_ib_dev;
|
||||||
|
|
||||||
struct rtrs_rdma_dev_pd_ops {
|
struct rtrs_rdma_dev_pd_ops {
|
||||||
int (*init)(struct rtrs_ib_dev *dev);
|
int (*init)(struct rtrs_ib_dev *dev);
|
||||||
|
void (*deinit)(struct rtrs_ib_dev *dev);
|
||||||
};
|
};
|
||||||
|
|
||||||
struct rtrs_rdma_dev_pd {
|
struct rtrs_rdma_dev_pd {
|
||||||
|
@ -84,6 +85,7 @@ struct rtrs_ib_dev {
|
||||||
struct kref ref;
|
struct kref ref;
|
||||||
struct list_head entry;
|
struct list_head entry;
|
||||||
struct rtrs_rdma_dev_pd *pool;
|
struct rtrs_rdma_dev_pd *pool;
|
||||||
|
struct ib_event_handler event_handler;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct rtrs_con {
|
struct rtrs_con {
|
||||||
|
|
|
@ -26,7 +26,10 @@ MODULE_LICENSE("GPL");
|
||||||
#define DEFAULT_SESS_QUEUE_DEPTH 512
|
#define DEFAULT_SESS_QUEUE_DEPTH 512
|
||||||
#define MAX_HDR_SIZE PAGE_SIZE
|
#define MAX_HDR_SIZE PAGE_SIZE
|
||||||
|
|
||||||
static struct rtrs_rdma_dev_pd dev_pd;
|
static const struct rtrs_rdma_dev_pd_ops dev_pd_ops;
|
||||||
|
static struct rtrs_rdma_dev_pd dev_pd = {
|
||||||
|
.ops = &dev_pd_ops
|
||||||
|
};
|
||||||
const struct class rtrs_dev_class = {
|
const struct class rtrs_dev_class = {
|
||||||
.name = "rtrs-server",
|
.name = "rtrs-server",
|
||||||
};
|
};
|
||||||
|
@ -2269,6 +2272,34 @@ static int check_module_params(void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void rtrs_srv_ib_event_handler(struct ib_event_handler *handler,
|
||||||
|
struct ib_event *ibevent)
|
||||||
|
{
|
||||||
|
pr_info("Handling event: %s (%d).\n", ib_event_msg(ibevent->event),
|
||||||
|
ibevent->event);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int rtrs_srv_ib_dev_init(struct rtrs_ib_dev *dev)
|
||||||
|
{
|
||||||
|
INIT_IB_EVENT_HANDLER(&dev->event_handler, dev->ib_dev,
|
||||||
|
rtrs_srv_ib_event_handler);
|
||||||
|
ib_register_event_handler(&dev->event_handler);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void rtrs_srv_ib_dev_deinit(struct rtrs_ib_dev *dev)
|
||||||
|
{
|
||||||
|
ib_unregister_event_handler(&dev->event_handler);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static const struct rtrs_rdma_dev_pd_ops dev_pd_ops = {
|
||||||
|
.init = rtrs_srv_ib_dev_init,
|
||||||
|
.deinit = rtrs_srv_ib_dev_deinit
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
static int __init rtrs_server_init(void)
|
static int __init rtrs_server_init(void)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
|
|
|
@ -132,6 +132,8 @@ struct rtrs_srv_ib_ctx {
|
||||||
extern const struct class rtrs_dev_class;
|
extern const struct class rtrs_dev_class;
|
||||||
|
|
||||||
void close_path(struct rtrs_srv_path *srv_path);
|
void close_path(struct rtrs_srv_path *srv_path);
|
||||||
|
void rtrs_srv_ib_event_handler(struct ib_event_handler *handler,
|
||||||
|
struct ib_event *ibevent);
|
||||||
|
|
||||||
static inline void rtrs_srv_update_rdma_stats(struct rtrs_srv_stats *s,
|
static inline void rtrs_srv_update_rdma_stats(struct rtrs_srv_stats *s,
|
||||||
size_t size, int d)
|
size_t size, int d)
|
||||||
|
|
Loading…
Add table
Reference in a new issue