RDMA/rtrs-clt: New sysfs attribute to print the latency of each path
authorGioh Kim <gi-oh.kim@cloud.ionos.com>
Wed, 7 Apr 2021 11:34:42 +0000 (13:34 +0200)
committerJason Gunthorpe <jgg@nvidia.com>
Tue, 13 Apr 2021 22:44:54 +0000 (19:44 -0300)
It shows the latest latency that the client checked when sending the
heart-beat.

Link: https://lore.kernel.org/r/20210407113444.150961-3-gi-oh.kim@ionos.com
Signed-off-by: Gioh Kim <gi-oh.kim@ionos.com>
Signed-off-by: Jack Wang <jinpu.wang@ionos.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/ulp/rtrs/rtrs-clt-sysfs.c

index a5bf12a..7d53d18 100644 (file)
@@ -355,6 +355,21 @@ static ssize_t rtrs_clt_hca_name_show(struct kobject *kobj,
 static struct kobj_attribute rtrs_clt_hca_name_attr =
        __ATTR(hca_name, 0444, rtrs_clt_hca_name_show, NULL);
 
+static ssize_t rtrs_clt_cur_latency_show(struct kobject *kobj,
+                                   struct kobj_attribute *attr,
+                                   char *page)
+{
+       struct rtrs_clt_sess *sess;
+
+       sess = container_of(kobj, struct rtrs_clt_sess, kobj);
+
+       return sysfs_emit(page, "%lld ns\n",
+                         ktime_to_ns(sess->s.hb_cur_latency));
+}
+
+static struct kobj_attribute rtrs_clt_cur_latency_attr =
+       __ATTR(cur_latency, 0444, rtrs_clt_cur_latency_show, NULL);
+
 static ssize_t rtrs_clt_src_addr_show(struct kobject *kobj,
                                       struct kobj_attribute *attr,
                                       char *page)
@@ -398,6 +413,7 @@ static struct attribute *rtrs_clt_sess_attrs[] = {
        &rtrs_clt_reconnect_attr.attr,
        &rtrs_clt_disconnect_attr.attr,
        &rtrs_clt_remove_path_attr.attr,
+       &rtrs_clt_cur_latency_attr.attr,
        NULL,
 };