ocfs2/cluster: Track send message timing stats for each socket
Tracks total send and status times for all messages sent on a socket. Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com> Signed-off-by: Joel Becker <joel.becker@oracle.com>
This commit is contained in:
parent
ff1becbf85
commit
3c193b3807
2 changed files with 30 additions and 0 deletions
|
@ -224,6 +224,28 @@ static inline void o2net_set_func_stop_time(struct o2net_sock_container *sc)
|
||||||
# define o2net_set_func_stop_time(a)
|
# define o2net_set_func_stop_time(a)
|
||||||
#endif /* CONFIG_DEBUG_FS */
|
#endif /* CONFIG_DEBUG_FS */
|
||||||
|
|
||||||
|
#ifdef CONFIG_OCFS2_FS_STATS
|
||||||
|
static void o2net_update_send_stats(struct o2net_send_tracking *nst,
|
||||||
|
struct o2net_sock_container *sc)
|
||||||
|
{
|
||||||
|
sc->sc_tv_status_total = ktime_add(sc->sc_tv_status_total,
|
||||||
|
ktime_sub(ktime_get(),
|
||||||
|
nst->st_status_time));
|
||||||
|
sc->sc_tv_send_total = ktime_add(sc->sc_tv_send_total,
|
||||||
|
ktime_sub(nst->st_status_time,
|
||||||
|
nst->st_send_time));
|
||||||
|
sc->sc_tv_acquiry_total = ktime_add(sc->sc_tv_acquiry_total,
|
||||||
|
ktime_sub(nst->st_send_time,
|
||||||
|
nst->st_sock_time));
|
||||||
|
sc->sc_send_count++;
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
# define o2net_update_send_stats(a, b)
|
||||||
|
|
||||||
|
#endif /* CONFIG_OCFS2_FS_STATS */
|
||||||
|
|
||||||
static inline int o2net_reconnect_delay(void)
|
static inline int o2net_reconnect_delay(void)
|
||||||
{
|
{
|
||||||
return o2nm_single_cluster->cl_reconnect_delay_ms;
|
return o2nm_single_cluster->cl_reconnect_delay_ms;
|
||||||
|
@ -1093,6 +1115,8 @@ int o2net_send_message_vec(u32 msg_type, u32 key, struct kvec *caller_vec,
|
||||||
o2net_set_nst_status_time(&nst);
|
o2net_set_nst_status_time(&nst);
|
||||||
wait_event(nsw.ns_wq, o2net_nsw_completed(nn, &nsw));
|
wait_event(nsw.ns_wq, o2net_nsw_completed(nn, &nsw));
|
||||||
|
|
||||||
|
o2net_update_send_stats(&nst, sc);
|
||||||
|
|
||||||
/* Note that we avoid overwriting the callers status return
|
/* Note that we avoid overwriting the callers status return
|
||||||
* variable if a system error was reported on the other
|
* variable if a system error was reported on the other
|
||||||
* side. Callers beware. */
|
* side. Callers beware. */
|
||||||
|
|
|
@ -178,6 +178,12 @@ struct o2net_sock_container {
|
||||||
ktime_t sc_tv_advance_stop;
|
ktime_t sc_tv_advance_stop;
|
||||||
ktime_t sc_tv_func_start;
|
ktime_t sc_tv_func_start;
|
||||||
ktime_t sc_tv_func_stop;
|
ktime_t sc_tv_func_stop;
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_OCFS2_FS_STATS
|
||||||
|
ktime_t sc_tv_acquiry_total;
|
||||||
|
ktime_t sc_tv_send_total;
|
||||||
|
ktime_t sc_tv_status_total;
|
||||||
|
u32 sc_send_count;
|
||||||
#endif
|
#endif
|
||||||
struct mutex sc_send_lock;
|
struct mutex sc_send_lock;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue