@@ -258,12 +258,13 @@ static void ptlrpc_pinger_process_import(struct obd_import *imp,
static void ptlrpc_pinger_main(struct work_struct *ws)
{
- time64_t this_ping = ktime_get_seconds();
- time64_t time_to_next_wake;
+ time64_t this_ping, time_after_ping, time_to_next_wake;
struct timeout_item *item;
struct obd_import *imp;
do {
+ this_ping = ktime_get_seconds();
+
mutex_lock(&pinger_mutex);
list_for_each_entry(item, &timeout_list, ti_chain) {
item->ti_cb(item, item->ti_cb_data);
@@ -277,6 +278,12 @@ static void ptlrpc_pinger_main(struct work_struct *ws)
}
mutex_unlock(&pinger_mutex);
+ time_after_ping = ktime_get_seconds();
+
+ if ((ktime_get_seconds() - this_ping - 3) > PING_INTERVAL)
+ CDEBUG(D_HA, "long time to ping: %lld, %lld, %lld\n",
+ this_ping, time_after_ping, ktime_get_seconds());
+
/* Wait until the next ping time, or until we're stopped. */
time_to_next_wake = pinger_check_timeout(this_ping);
/* The ping sent by ptlrpc_send_rpc may get sent out