Autotrim High Load Average Fix
Switch from cv_wait() to cv_wait_idle() in vdev_autotrim_wait_kick(), which should mitigate the high load average while waiting. Reviewed-by: Brian Atkinson <batkinson@lanl.gov> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Alexander Motin <mav@FreeBSD.org> Signed-off-by: jxdking <lostking2008@hotmail.com> Closes #15781
This commit is contained in:
parent
2ecc2dfe42
commit
07cf973fe9
|
@ -194,7 +194,8 @@ vdev_autotrim_wait_kick(vdev_t *vd, int num_of_kick)
|
||||||
for (int i = 0; i < num_of_kick; i++) {
|
for (int i = 0; i < num_of_kick; i++) {
|
||||||
if (vd->vdev_autotrim_exit_wanted)
|
if (vd->vdev_autotrim_exit_wanted)
|
||||||
break;
|
break;
|
||||||
cv_wait(&vd->vdev_autotrim_kick_cv, &vd->vdev_autotrim_lock);
|
cv_wait_idle(&vd->vdev_autotrim_kick_cv,
|
||||||
|
&vd->vdev_autotrim_lock);
|
||||||
}
|
}
|
||||||
boolean_t exit_wanted = vd->vdev_autotrim_exit_wanted;
|
boolean_t exit_wanted = vd->vdev_autotrim_exit_wanted;
|
||||||
mutex_exit(&vd->vdev_autotrim_lock);
|
mutex_exit(&vd->vdev_autotrim_lock);
|
||||||
|
|
Loading…
Reference in New Issue