Use cv_wait_io() which will will account for iowait

Update zio_wait() to use cv_wait_io() to ensure the iowait time
is properly accounted for.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
This commit is contained in:
Matt Johnston 2012-12-21 10:40:20 +08:00 committed by Brian Behlendorf
parent 72f53c5694
commit 72938d6905
2 changed files with 2 additions and 1 deletions

View File

@ -322,6 +322,7 @@ extern void cv_signal(kcondvar_t *cv);
extern void cv_broadcast(kcondvar_t *cv); extern void cv_broadcast(kcondvar_t *cv);
#define cv_timedwait_interruptible(cv, mp, at) cv_timedwait(cv, mp, at) #define cv_timedwait_interruptible(cv, mp, at) cv_timedwait(cv, mp, at)
#define cv_wait_interruptible(cv, mp) cv_wait(cv, mp) #define cv_wait_interruptible(cv, mp) cv_wait(cv, mp)
#define cv_wait_io(cv, mp) cv_wait(cv, mp)
/* /*
* kstat creation, installation and deletion * kstat creation, installation and deletion

View File

@ -1316,7 +1316,7 @@ zio_wait(zio_t *zio)
mutex_enter(&zio->io_lock); mutex_enter(&zio->io_lock);
while (zio->io_executor != NULL) while (zio->io_executor != NULL)
cv_wait(&zio->io_cv, &zio->io_lock); cv_wait_io(&zio->io_cv, &zio->io_lock);
mutex_exit(&zio->io_lock); mutex_exit(&zio->io_lock);
error = zio->io_error; error = zio->io_error;