mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +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;
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
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 &
|
||||
IB_DEVICE_MEM_MGT_EXTENSIONS)) {
|
||||
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;
|
||||
}
|
||||
|
||||
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 = {
|
||||
.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)
|
||||
|
|
|
@ -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);
|
||||
int rtrs_clt_get_max_reconnect_attempts(const struct rtrs_clt_sess *clt);
|
||||
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 */
|
||||
|
||||
|
|
|
@ -69,6 +69,7 @@ struct rtrs_ib_dev;
|
|||
|
||||
struct rtrs_rdma_dev_pd_ops {
|
||||
int (*init)(struct rtrs_ib_dev *dev);
|
||||
void (*deinit)(struct rtrs_ib_dev *dev);
|
||||
};
|
||||
|
||||
struct rtrs_rdma_dev_pd {
|
||||
|
@ -84,6 +85,7 @@ struct rtrs_ib_dev {
|
|||
struct kref ref;
|
||||
struct list_head entry;
|
||||
struct rtrs_rdma_dev_pd *pool;
|
||||
struct ib_event_handler event_handler;
|
||||
};
|
||||
|
||||
struct rtrs_con {
|
||||
|
|
|
@ -26,7 +26,10 @@ MODULE_LICENSE("GPL");
|
|||
#define DEFAULT_SESS_QUEUE_DEPTH 512
|
||||
#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 = {
|
||||
.name = "rtrs-server",
|
||||
};
|
||||
|
@ -2269,6 +2272,34 @@ static int check_module_params(void)
|
|||
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)
|
||||
{
|
||||
int err;
|
||||
|
|
|
@ -132,6 +132,8 @@ struct rtrs_srv_ib_ctx {
|
|||
extern const struct class rtrs_dev_class;
|
||||
|
||||
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,
|
||||
size_t size, int d)
|
||||
|
|
Loading…
Add table
Reference in a new issue