diff options
Diffstat (limited to 'xlators/performance')
-rw-r--r-- | xlators/performance/io-threads/src/io-threads.c | 5 | ||||
-rw-r--r-- | xlators/performance/io-threads/src/io-threads.h | 4 |
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 |