summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--xlators/performance/io-threads/src/io-threads.c5
-rw-r--r--xlators/performance/io-threads/src/io-threads.h4
2 files changed, 4 insertions, 5 deletions
diff --git a/xlators/performance/io-threads/src/io-threads.c b/xlators/performance/io-threads/src/io-threads.c
index f16833609..c3575654b 100644
--- a/xlators/performance/io-threads/src/io-threads.c
+++ b/xlators/performance/io-threads/src/io-threads.c
@@ -79,16 +79,15 @@ int
iot_notify_wait (iot_worker_t *worker, int idletime)
{
struct timeval tv;
- struct timespec ts;
+ struct timespec ts = {0, };
int waitres = 0;
gettimeofday (&tv, NULL);
- ts.tv_sec = tv.tv_sec + idletime;
/* Slightly skew the idle time for threads so that, we dont
* have all of them rushing to exit at the same time, if
* they've been idle.
*/
- ts.tv_nsec = skew_usec_idle_time (tv.tv_usec) * 1000;
+ ts.tv_sec = skew_sec_idle_time (tv.tv_sec + idletime);
#ifndef HAVE_SPINLOCK
waitres = pthread_cond_timedwait (&worker->notifier, &worker->qlock,
diff --git a/xlators/performance/io-threads/src/io-threads.h b/xlators/performance/io-threads/src/io-threads.h
index ec1735694..3e806aa78 100644
--- a/xlators/performance/io-threads/src/io-threads.h
+++ b/xlators/performance/io-threads/src/io-threads.h
@@ -58,8 +58,8 @@ typedef enum {
}iot_state_t;
#define iot_worker_active(wrk) ((wrk)->state == IOT_STATE_ACTIVE)
-#define MAX_IDLE_SKEW 1000 /* usecs */
-#define skew_usec_idle_time(usec) ((usec) + (random () % MAX_IDLE_SKEW))
+#define MAX_IDLE_SKEW 4 /* In secs */
+#define skew_sec_idle_time(sec) ((sec) + (random () % MAX_IDLE_SKEW))
#define IOT_DEFAULT_IDLE 180 /* In secs. */
#define IOT_MIN_THREADS 2