diff --git a/lustre/ChangeLog b/lustre/ChangeLog index 2691376c4a87200c92b7155d4ab501efa728dd87..7f7c51cc2c1549463e9670c986395e485c053f20 100644 --- a/lustre/ChangeLog +++ b/lustre/ChangeLog @@ -106,6 +106,11 @@ Bugzilla : 12836 Description: lfs find on -1 stripe looping in lsm_lmm_verify_common() Details : Avoid lov_verify_lmm_common() on directory with -1 stripe count. +Severity : major +Bugzilla : 12932 +Description: obd_health_check_timeout too short +Details : set obd_health_check_timeout as 1.5x of obd_timeout + -------------------------------------------------------------------------------- 2007-08-10 Cluster File Systems, Inc. <info@clusterfs.com> diff --git a/lustre/include/obd_support.h b/lustre/include/obd_support.h index a2ddd27df2311831217a9231561e22a9a79e5924..0bc0904e2e9356094ba242f136176f12be9aeae1 100644 --- a/lustre/include/obd_support.h +++ b/lustre/include/obd_support.h @@ -35,7 +35,6 @@ extern unsigned int obd_dump_on_eviction; extern unsigned int obd_timeout; /* seconds */ #define PING_INTERVAL max(obd_timeout / 4, 1U) #define RECONNECT_INTERVAL max(obd_timeout / 10, 10U) -#define LDLM_TIMEOUT_DEFAULT 20 extern unsigned int ldlm_timeout; extern unsigned int obd_health_check_timeout; extern unsigned int obd_sync_filter; @@ -44,6 +43,13 @@ extern atomic_t obd_dirty_pages; extern cfs_waitq_t obd_race_waitq; extern int obd_race_state; +/* Timeout definitions */ +#define LDLM_TIMEOUT_DEFAULT 20 +#define OBD_TIMEOUT_DEFAULT 100 +#define HEALTH_CHECK_COEF 3 / 2 +#define HEALTH_CHECK_TIMEOUT_DEFAULT (OBD_TIMEOUT_DEFAULT * HEALTH_CHECK_COEF) +#define HEALTH_CHECK_TIMEOUT (obd_timeout * HEALTH_CHECK_COEF) + #define OBD_FAIL_MDS 0x100 #define OBD_FAIL_MDS_HANDLE_UNPACK 0x101 #define OBD_FAIL_MDS_GETATTR_NET 0x102 diff --git a/lustre/obdclass/class_obd.c b/lustre/obdclass/class_obd.c index 1c0c4c77d8dd004697b24518ad8ee9ab0c5254ea..a429e15046e364f81e741c17feb309e162d1be78 100644 --- a/lustre/obdclass/class_obd.c +++ b/lustre/obdclass/class_obd.c @@ -61,9 +61,9 @@ unsigned int obd_fail_loc; unsigned int obd_debug_peer_on_timeout; unsigned int obd_dump_on_timeout; unsigned int obd_dump_on_eviction; -unsigned int obd_timeout = 100; /* seconds */ +unsigned int obd_timeout = OBD_TIMEOUT_DEFAULT; /* seconds */ unsigned int ldlm_timeout = LDLM_TIMEOUT_DEFAULT; /* seconds */ -unsigned int obd_health_check_timeout = 120; /* seconds */ +unsigned int obd_health_check_timeout = HEALTH_CHECK_TIMEOUT_DEFAULT; /* seconds */ unsigned int obd_max_dirty_pages = 256; atomic_t obd_dirty_pages; diff --git a/lustre/obdclass/obd_config.c b/lustre/obdclass/obd_config.c index 676a7adc0e7e3ecf512f79430a9071bffd2fbc1b..f5284b58c2c2d535ffb965fa0756c32540cb2a04 100644 --- a/lustre/obdclass/obd_config.c +++ b/lustre/obdclass/obd_config.c @@ -741,6 +741,7 @@ int class_process_config(struct lustre_cfg *lcfg) CDEBUG(D_IOCTL, "changing lustre timeout from %d to %d\n", obd_timeout, lcfg->lcfg_num); obd_timeout = max(lcfg->lcfg_num, 1U); + obd_health_check_timeout = HEALTH_CHECK_TIMEOUT; GOTO(out, err = 0); } case LCFG_SET_UPCALL: {