Whamcloud - gitweb
LU-10391 lnet: separate lnet_hdr in msg from that in lnd.
[fs/lustre-release.git] / lnet / selftest / framework.c
index b85dbb5..7e048ad 100644 (file)
  * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
  * Use is subject to license terms.
  *
- * Copyright (c) 2012, 2016, Intel Corporation.
+ * Copyright (c) 2012, 2017, Intel Corporation.
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
- * Lustre is a trademark of Sun Microsystems, Inc.
  *
  * lnet/selftest/framework.c
  *
@@ -51,49 +50,49 @@ MODULE_PARM_DESC(rpc_timeout, "rpc timeout in seconds (64 by default, 0 == never
 
 #define sfw_unpack_id(id)               \
 do {                                    \
-        __swab64s(&(id).nid);           \
-        __swab32s(&(id).pid);           \
+       __swab64s(&(id).nid);           \
+       __swab32s(&(id).pid);           \
 } while (0)
 
 #define sfw_unpack_sid(sid)             \
 do {                                    \
-        __swab64s(&(sid).ses_nid);      \
-        __swab64s(&(sid).ses_stamp);    \
+       __swab64s(&(sid).ses_nid);      \
+       __swab64s(&(sid).ses_stamp);    \
 } while (0)
 
 #define sfw_unpack_fw_counters(fc)        \
 do {                                      \
-        __swab32s(&(fc).running_ms);      \
-        __swab32s(&(fc).active_batches);  \
-        __swab32s(&(fc).zombie_sessions); \
-        __swab32s(&(fc).brw_errors);      \
-        __swab32s(&(fc).ping_errors);     \
+       __swab32s(&(fc).running_ms);      \
+       __swab32s(&(fc).active_batches);  \
+       __swab32s(&(fc).zombie_sessions); \
+       __swab32s(&(fc).brw_errors);      \
+       __swab32s(&(fc).ping_errors);     \
 } while (0)
 
 #define sfw_unpack_rpc_counters(rc)     \
 do {                                    \
-        __swab32s(&(rc).errors);        \
-        __swab32s(&(rc).rpcs_sent);     \
-        __swab32s(&(rc).rpcs_rcvd);     \
-        __swab32s(&(rc).rpcs_dropped);  \
-        __swab32s(&(rc).rpcs_expired);  \
-        __swab64s(&(rc).bulk_get);      \
-        __swab64s(&(rc).bulk_put);      \
+       __swab32s(&(rc).errors);        \
+       __swab32s(&(rc).rpcs_sent);     \
+       __swab32s(&(rc).rpcs_rcvd);     \
+       __swab32s(&(rc).rpcs_dropped);  \
+       __swab32s(&(rc).rpcs_expired);  \
+       __swab64s(&(rc).bulk_get);      \
+       __swab64s(&(rc).bulk_put);      \
 } while (0)
 
 #define sfw_unpack_lnet_counters(lc)    \
 do {                                    \
-        __swab32s(&(lc).errors);        \
-        __swab32s(&(lc).msgs_max);      \
-        __swab32s(&(lc).msgs_alloc);    \
-        __swab32s(&(lc).send_count);    \
-        __swab32s(&(lc).recv_count);    \
-        __swab32s(&(lc).drop_count);    \
-        __swab32s(&(lc).route_count);   \
-        __swab64s(&(lc).send_length);   \
-        __swab64s(&(lc).recv_length);   \
-        __swab64s(&(lc).drop_length);   \
-        __swab64s(&(lc).route_length);  \
+       __swab32s(&(lc).lcc_errors);        \
+       __swab32s(&(lc).lcc_msgs_max);      \
+       __swab32s(&(lc).lcc_msgs_alloc);    \
+       __swab32s(&(lc).lcc_send_count);    \
+       __swab32s(&(lc).lcc_recv_count);    \
+       __swab32s(&(lc).lcc_drop_count);    \
+       __swab32s(&(lc).lcc_route_count);   \
+       __swab64s(&(lc).lcc_send_length);   \
+       __swab64s(&(lc).lcc_recv_length);   \
+       __swab64s(&(lc).lcc_drop_length);   \
+       __swab64s(&(lc).lcc_route_length);  \
 } while (0)
 
 #define sfw_test_active(t)      (atomic_read(&(t)->tsi_nactive) != 0)
@@ -177,7 +176,6 @@ sfw_add_session_timer (void)
         sn->sn_timer_active = 1;
        timer->stt_expires = ktime_get_real_seconds()+ sn->sn_timeout;
         stt_add_timer(timer);
-        return;
 }
 
 static int
@@ -277,14 +275,14 @@ sfw_init_session(struct sfw_session *sn, struct lst_sid sid,
        atomic_set(&sn->sn_ping_errors, 0);
        strlcpy(&sn->sn_name[0], name, sizeof(sn->sn_name));
 
-        sn->sn_timer_active = 0;
-        sn->sn_id           = sid;
-       sn->sn_features     = features;
-        sn->sn_timeout      = session_timeout;
-        sn->sn_started      = cfs_time_current();
+       sn->sn_timer_active = 0;
+       sn->sn_id = sid;
+       sn->sn_features = features;
+       sn->sn_timeout = session_timeout;
+       sn->sn_started = ktime_get();
 
-        timer->stt_data = sn;
-        timer->stt_func = sfw_session_expired;
+       timer->stt_data = sn;
+       timer->stt_func = sfw_session_expired;
        INIT_LIST_HEAD(&timer->stt_list);
 }
 
@@ -304,7 +302,6 @@ sfw_server_rpc_done(struct srpc_server_rpc *rpc)
 
         if (rpc->srpc_bulk != NULL)
                 sfw_free_pages(rpc);
-        return;
 }
 
 static void
@@ -390,14 +387,14 @@ sfw_get_stats(struct srpc_stat_reqst *request, struct srpc_stat_reply *reply)
                 return 0;
         }
 
-       lnet_counters_get(&reply->str_lnet);
+       lnet_counters_get_common(&reply->str_lnet);
        srpc_get_counters(&reply->str_rpc);
 
         /* send over the msecs since the session was started
          - with 32 bits to send, this is ~49 days */
-       cnt->running_ms      = jiffies_to_msecs(jiffies - sn->sn_started);
-       cnt->brw_errors      = atomic_read(&sn->sn_brw_errors);
-       cnt->ping_errors     = atomic_read(&sn->sn_ping_errors);
+       cnt->running_ms = ktime_ms_delta(ktime_get(), sn->sn_started);
+       cnt->brw_errors = atomic_read(&sn->sn_brw_errors);
+       cnt->ping_errors = atomic_read(&sn->sn_ping_errors);
        cnt->zombie_sessions = atomic_read(&sfw_data.fw_nzombies);
 
        cnt->active_batches = 0;
@@ -595,7 +592,7 @@ sfw_load_test(struct sfw_test_instance *tsi)
 
        CDEBUG(D_NET, "Reserved %d buffers for test %s\n",
               nbuf * (srpc_serv_is_framework(svc) ?
-                      1 : cfs_cpt_number(cfs_cpt_table)), svc->sv_name);
+                      1 : cfs_cpt_number(cfs_cpt_tab)), svc->sv_name);
        return 0;
 }
 
@@ -616,7 +613,6 @@ sfw_unload_test(struct sfw_test_instance *tsi)
         * some buffers behind, but never mind... */
        srpc_service_remove_buffers(tsc->tsc_srv_service,
                                    sfw_test_buffers(tsi));
-       return;
 }
 
 static void
@@ -650,7 +646,6 @@ sfw_destroy_test_instance(struct sfw_test_instance *tsi)
 clean:
        sfw_unload_test(tsi);
        LIBCFS_FREE(tsi, sizeof(*tsi));
-       return;
 }
 
 static void
@@ -669,7 +664,6 @@ sfw_destroy_batch(struct sfw_batch *tsb)
        }
 
        LIBCFS_FREE(tsb, sizeof(*tsb));
-       return;
 }
 
 static void
@@ -689,7 +683,6 @@ sfw_destroy_session(struct sfw_session *sn)
 
        LIBCFS_FREE(sn, sizeof(*sn));
        atomic_dec(&sfw_data.fw_nzombies);
-       return;
 }
 
 static void
@@ -734,7 +727,6 @@ sfw_unpack_addtest_req(struct srpc_msg *msg)
         }
 
        LBUG();
-       return;
 }
 
 static int
@@ -797,7 +789,7 @@ sfw_add_test_instance(struct sfw_batch *tsb, struct srpc_server_rpc *rpc)
                struct lnet_process_id_packed  id;
                 int                       j;
 
-               dests = page_address(bk->bk_iovs[i / SFW_ID_PER_PAGE].kiov_page);
+               dests = page_address(bk->bk_iovs[i / SFW_ID_PER_PAGE].bv_page);
                LASSERT (dests != NULL);  /* my pages are within KVM always */
                 id = dests[i % SFW_ID_PER_PAGE];
                 if (msg->msg_magic != SRPC_MSG_MAGIC)
@@ -872,7 +864,6 @@ sfw_test_unit_done(struct sfw_test_unit *tsu)
        spin_unlock(&sfw_data.fw_lock);
 
        sfw_destroy_session(sn);
-       return;
 }
 
 static void
@@ -908,7 +899,6 @@ sfw_test_rpc_done(struct srpc_client_rpc *rpc)
         }
 
         sfw_test_unit_done(tsu);
-        return;
 }
 
 int
@@ -957,7 +947,7 @@ sfw_create_test_rpc(struct sfw_test_unit *tsu, struct lnet_process_id peer,
 static int
 sfw_run_test(struct swi_workitem *wi)
 {
-       struct sfw_test_unit *tsu = wi->swi_workitem.wi_data;
+       struct sfw_test_unit *tsu = container_of(wi, struct sfw_test_unit, tsu_worker);
        struct sfw_test_instance *tsi = tsu->tsu_instance;
        struct srpc_client_rpc *rpc = NULL;
 
@@ -1029,10 +1019,8 @@ sfw_run_batch(struct sfw_batch *tsb)
                        atomic_inc(&tsi->tsi_nactive);
                        tsu->tsu_loop = tsi->tsi_loop;
                        wi = &tsu->tsu_worker;
-                       swi_init_workitem(wi, tsu, sfw_run_test,
-                                         lst_sched_test[\
-                                         lnet_cpt_of_nid(tsu->tsu_dest.nid,
-                                                         NULL)]);
+                       swi_init_workitem(wi, sfw_run_test,
+                                         lst_sched_test[lnet_cpt_of_nid(tsu->tsu_dest.nid, NULL)]);
                        swi_schedule_workitem(wi);
                }
        }
@@ -1572,7 +1560,6 @@ sfw_unpack_message(struct srpc_msg *msg)
         }
 
         LBUG ();
-        return;
 }
 
 void
@@ -1584,7 +1571,6 @@ sfw_abort_rpc(struct srpc_client_rpc *rpc)
        spin_lock(&rpc->crpc_lock);
        srpc_abort_rpc(rpc, -EINTR);
        spin_unlock(&rpc->crpc_lock);
-       return;
 }
 
 void
@@ -1601,46 +1587,16 @@ sfw_post_rpc(struct srpc_client_rpc *rpc)
        srpc_post_rpc(rpc);
 
        spin_unlock(&rpc->crpc_lock);
-       return;
 }
 
 static struct srpc_service sfw_services[] = {
-        {
-                /* sv_id */    SRPC_SERVICE_DEBUG,
-                /* sv_name */  "debug",
-                0
-        },
-        {
-                /* sv_id */    SRPC_SERVICE_QUERY_STAT,
-                /* sv_name */  "query stats",
-                0
-        },
-        {
-                /* sv_id */    SRPC_SERVICE_MAKE_SESSION,
-                /* sv_name */  "make session",
-                0
-        },
-        {
-                /* sv_id */    SRPC_SERVICE_REMOVE_SESSION,
-                /* sv_name */  "remove session",
-                0
-        },
-        {
-                /* sv_id */    SRPC_SERVICE_BATCH,
-                /* sv_name */  "batch service",
-                0
-        },
-        {
-                /* sv_id */    SRPC_SERVICE_TEST,
-                /* sv_name */  "test service",
-                0
-        },
-        {
-                /* sv_id */    0,
-                /* sv_name */  NULL,
-                0
-        }
-};
+       { .sv_id = SRPC_SERVICE_DEBUG,          .sv_name = "debug", },
+       { .sv_id = SRPC_SERVICE_QUERY_STAT,     .sv_name = "query stats", },
+       { .sv_id = SRPC_SERVICE_MAKE_SESSION,   .sv_name = "make session", },
+       { .sv_id = SRPC_SERVICE_REMOVE_SESSION, .sv_name = "remove session", },
+       { .sv_id = SRPC_SERVICE_BATCH,          .sv_name = "batch service", },
+       { .sv_id = SRPC_SERVICE_TEST,           .sv_name = "test service", },
+       { .sv_id = 0, } };
 
 int
 sfw_startup (void)
@@ -1807,6 +1763,4 @@ sfw_shutdown (void)
                list_del(&tsc->tsc_list);
                LIBCFS_FREE(tsc, sizeof(*tsc));
        }
-
-       return;
 }