Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
LU-445 lnet: Send timestamps with LNet counters
[fs/lustre-release.git]
/
lnet
/
selftest
/
framework.c
diff --git
a/lnet/selftest/framework.c
b/lnet/selftest/framework.c
index
111ca0e
..
4e14a78
100644
(file)
--- a/
lnet/selftest/framework.c
+++ b/
lnet/selftest/framework.c
@@
-26,7
+26,7
@@
* GPL HEADER END
*/
/*
* GPL HEADER END
*/
/*
- * Copyright
2008 Sun Microsystems, Inc. All rights reserved
+ * Copyright
(c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*/
/*
* Use is subject to license terms.
*/
/*
@@
-76,11
+76,11
@@
do { \
#define sfw_unpack_fw_counters(fc) \
do { \
#define sfw_unpack_fw_counters(fc) \
do { \
- __swab32s(&(fc).brw_errors); \
- __swab32s(&(fc).ping_errors); \
- __swab32s(&(fc).active_tests); \
+ __swab32s(&(fc).running_ms); \
__swab32s(&(fc).active_batches); \
__swab32s(&(fc).zombie_sessions); \
__swab32s(&(fc).active_batches); \
__swab32s(&(fc).zombie_sessions); \
+ __swab32s(&(fc).brw_errors); \
+ __swab32s(&(fc).ping_errors); \
} while (0)
#define sfw_unpack_rpc_counters(rc) \
} while (0)
#define sfw_unpack_rpc_counters(rc) \
@@
-302,6
+302,7
@@
sfw_init_session (sfw_session_t *sn, lst_sid_t sid, const char *name)
sn->sn_timer_active = 0;
sn->sn_id = sid;
sn->sn_timeout = session_timeout;
sn->sn_timer_active = 0;
sn->sn_id = sid;
sn->sn_timeout = session_timeout;
+ sn->sn_started = cfs_time_current();
timer->stt_data = sn;
timer->stt_func = sfw_session_expired;
timer->stt_data = sn;
timer->stt_func = sfw_session_expired;
@@
-319,7
+320,7
@@
sfw_server_rpc_done (srpc_server_rpc_t *rpc)
"Incoming framework RPC done: "
"service %s, peer %s, status %s:%d\n",
sv->sv_name, libcfs_id2str(rpc->srpc_peer),
"Incoming framework RPC done: "
"service %s, peer %s, status %s:%d\n",
sv->sv_name, libcfs_id2str(rpc->srpc_peer),
- swi_state2str(rpc->srpc_wi.wi_state),
+ swi_state2str(rpc->srpc_wi.
s
wi_state),
status);
if (rpc->srpc_bulk != NULL)
status);
if (rpc->srpc_bulk != NULL)
@@
-341,7
+342,7
@@
sfw_client_rpc_fini (srpc_client_rpc_t *rpc)
"Outgoing framework RPC done: "
"service %d, peer %s, status %s:%d:%d\n",
rpc->crpc_service, libcfs_id2str(rpc->crpc_dest),
"Outgoing framework RPC done: "
"service %d, peer %s, status %s:%d:%d\n",
rpc->crpc_service, libcfs_id2str(rpc->crpc_dest),
- swi_state2str(rpc->crpc_wi.wi_state),
+ swi_state2str(rpc->crpc_wi.
s
wi_state),
rpc->crpc_aborted, rpc->crpc_status);
cfs_spin_lock(&sfw_data.fw_lock);
rpc->crpc_aborted, rpc->crpc_status);
cfs_spin_lock(&sfw_data.fw_lock);
@@
-403,6
+404,7
@@
sfw_get_stats (srpc_stat_reqst_t *request, srpc_stat_reply_t *reply)
sfw_session_t *sn = sfw_data.fw_session;
sfw_counters_t *cnt = &reply->str_fw;
sfw_batch_t *bat;
sfw_session_t *sn = sfw_data.fw_session;
sfw_counters_t *cnt = &reply->str_fw;
sfw_batch_t *bat;
+ struct timeval tv;
reply->str_sid = (sn == NULL) ? LST_INVALID_SID : sn->sn_id;
reply->str_sid = (sn == NULL) ? LST_INVALID_SID : sn->sn_id;
@@
-422,19
+424,21
@@
sfw_get_stats (srpc_stat_reqst_t *request, srpc_stat_reply_t *reply)
srpc_get_counters(&reply->str_rpc);
srpc_get_counters(&reply->str_rpc);
+ /* send over the msecs since the session was started
+ - with 32 bits to send, this is ~49 days */
+ cfs_duration_usec(cfs_time_sub(cfs_time_current(),
+ sn->sn_started), &tv);
+
+ cnt->running_ms = (__u32)(tv.tv_sec * 1000 + tv.tv_usec / 1000);
cnt->brw_errors = cfs_atomic_read(&sn->sn_brw_errors);
cnt->ping_errors = cfs_atomic_read(&sn->sn_ping_errors);
cnt->zombie_sessions = cfs_atomic_read(&sfw_data.fw_nzombies);
cnt->brw_errors = cfs_atomic_read(&sn->sn_brw_errors);
cnt->ping_errors = cfs_atomic_read(&sn->sn_ping_errors);
cnt->zombie_sessions = cfs_atomic_read(&sfw_data.fw_nzombies);
- cnt->active_
tests = cnt->active_
batches = 0;
+ cnt->active_batches = 0;
cfs_list_for_each_entry_typed (bat, &sn->sn_batches,
sfw_batch_t, bat_list) {
cfs_list_for_each_entry_typed (bat, &sn->sn_batches,
sfw_batch_t, bat_list) {
- int n = cfs_atomic_read(&bat->bat_nactive);
-
- if (n > 0) {
+ if (cfs_atomic_read(&bat->bat_nactive) > 0)
cnt->active_batches++;
cnt->active_batches++;
- cnt->active_tests += n;
- }
}
reply->str_status = 0;
}
reply->str_status = 0;
@@
-925,7
+929,7
@@
sfw_create_test_rpc (sfw_test_unit_t *tsu, lnet_process_id_t peer,
int
sfw_run_test (swi_workitem_t *wi)
{
int
sfw_run_test (swi_workitem_t *wi)
{
- sfw_test_unit_t *tsu = wi->wi_data;
+ sfw_test_unit_t *tsu = wi->
swi_workitem.
wi_data;
sfw_test_instance_t *tsi = tsu->tsu_instance;
srpc_client_rpc_t *rpc = NULL;
sfw_test_instance_t *tsi = tsu->tsu_instance;
srpc_client_rpc_t *rpc = NULL;
@@
-1000,7
+1004,8
@@
sfw_run_batch (sfw_batch_t *tsb)
cfs_atomic_inc(&tsi->tsi_nactive);
tsu->tsu_loop = tsi->tsi_loop;
wi = &tsu->tsu_worker;
cfs_atomic_inc(&tsi->tsi_nactive);
tsu->tsu_loop = tsi->tsi_loop;
wi = &tsu->tsu_worker;
- swi_init_workitem(wi, tsu, sfw_run_test);
+ swi_init_workitem(wi, tsu, sfw_run_test,
+ CFS_WI_SCHED_ANY);
swi_schedule_workitem(wi);
}
}
swi_schedule_workitem(wi);
}
}