Whamcloud - gitweb
branch: b1_6
authorericm <ericm>
Tue, 15 Apr 2008 21:11:16 +0000 (21:11 +0000)
committerericm <ericm>
Tue, 15 Apr 2008 21:11:16 +0000 (21:11 +0000)
fix AT time calculation in AT_OFF mode.
b=3055
r=nathan
r=rread

lustre/include/obd_support.h
lustre/ldlm/ldlm_lib.c
lustre/ptlrpc/pinger.c

index 6dcb0d9..e97b58d 100644 (file)
@@ -60,7 +60,7 @@ extern unsigned int obd_alloc_fail_rate;
 #endif
 /* Time to wait for all clients to reconnect during recovery */
 /* Should be very conservative; must catch the first reconnect after reboot */
-#define OBD_RECOVERY_FACTOR (5 / 2) /* times obd_timeout */
+#define OBD_RECOVERY_FACTOR (3) /* times obd_timeout */
 /* Change recovery-small 26b time if you change this */
 #define PING_INTERVAL max(obd_timeout / 4, 1U)
 /* Client may skip 1 ping; we must wait at least 2.5. But for multiple
index e134fbe..b17366e 100644 (file)
@@ -1282,7 +1282,8 @@ static void process_recovery_queue(struct obd_device *obd)
                 DEBUG_REQ(D_HA, req, "processing: ");
                 (void)obd->obd_recovery_handler(req);
                 obd->obd_replayed_requests++;
-                reset_recovery_timer(obd, 2 * /* safety */
+                reset_recovery_timer(obd, OBD_RECOVERY_FACTOR *
+                       AT_OFF ? obd_timeout :
                        at_get(&req->rq_rqbd->rqbd_service->srv_at_estimate), 1);
                 /* bug 1580: decide how to properly sync() in recovery */
                 //mds_fsync_super(obd->u.obt.obt_sb);
index 32bd0ea..59ccff3 100644 (file)
@@ -70,6 +70,7 @@ void ptlrpc_update_next_ping(struct obd_import *imp)
         int time = PING_INTERVAL;
         if (imp->imp_state == LUSTRE_IMP_DISCON) {
                 int dtime = max_t(int, CONNECTION_SWITCH_MIN,
+                                  AT_OFF ? 0 :
                                   at_get(&imp->imp_at.iat_net_latency));
                 time = min(time, dtime);
         }