-/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
- * vim:expandtab:shiftwidth=8:tabstop=8:
- *
+/*
* GPL HEADER START
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
/*
* Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
+ *
+ * Copyright (c) 2011, 2012, Intel Corporation.
*/
/*
* This file is part of Lustre, http://www.lustre.org/
#define AT_FLG_NOHIST 0x1 /* use last reported value only */
struct adaptive_timeout {
- time_t at_binstart; /* bin start time */
- unsigned int at_hist[AT_BINS]; /* timeout history bins */
- unsigned int at_flags;
- unsigned int at_current; /* current timeout value */
- unsigned int at_worst_ever; /* worst-ever timeout value */
- time_t at_worst_time; /* worst-ever timeout timestamp */
- cfs_spinlock_t at_lock;
+ time_t at_binstart; /* bin start time */
+ unsigned int at_hist[AT_BINS]; /* timeout history bins */
+ unsigned int at_flags;
+ unsigned int at_current; /* current timeout value */
+ unsigned int at_worst_ever; /* worst-ever timeout value */
+ time_t at_worst_time; /* worst-ever timeout timestamp */
+ spinlock_t at_lock;
};
struct ptlrpc_at_array {
* @{
*/
struct ptlrpc_sec *imp_sec;
- cfs_semaphore_t imp_sec_mutex;
+ struct mutex imp_sec_mutex;
cfs_time_t imp_sec_expire;
/** @} */
struct obd_import_conn *imp_conn_current;
/** Protects flags, level, generation, conn_cnt, *_list */
- cfs_spinlock_t imp_lock;
+ spinlock_t imp_lock;
/* flags */
unsigned long imp_no_timeout:1, /* timeouts are disabled */
imp_force_verify:1, /* force an immidiate ping */
imp_pingable:1, /* pingable */
imp_resend_replay:1, /* resend for replay */
+ imp_no_pinger_recover:1,/* disable normal recovery, for test only. */
+ imp_need_mne_swab:1, /* need IR MNE swab */
imp_force_reconnect:1; /* import must be reconnected instead of chouse new connection */
__u32 imp_connect_op;
struct obd_connect_data imp_connect_data;
return (max((val << 2) / 5, 5U) - 4);
}
-static inline void at_init(struct adaptive_timeout *at, int val, int flags) {
- memset(at, 0, sizeof(*at));
+static inline void at_reset(struct adaptive_timeout *at, int val) {
at->at_current = val;
at->at_worst_ever = val;
at->at_worst_time = cfs_time_current_sec();
- at->at_flags = flags;
- cfs_spin_lock_init(&at->at_lock);
+}
+static inline void at_init(struct adaptive_timeout *at, int val, int flags) {
+ memset(at, 0, sizeof(*at));
+ spin_lock_init(&at->at_lock);
+ at->at_flags = flags;
+ at_reset(at, val);
}
extern unsigned int at_min;
static inline int at_get(struct adaptive_timeout *at) {