git: f4d499fd6702 - main - CTL: Relax callouts precisions.
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 07 Jan 2022 19:32:16 UTC
The branch main has been updated by mav:
URL: https://cgit.FreeBSD.org/src/commit/?id=f4d499fd670283ee09f8870088c1b394843ae468
commit f4d499fd670283ee09f8870088c1b394843ae468
Author: Alexander Motin <mav@FreeBSD.org>
AuthorDate: 2022-01-07 19:30:44 +0000
Commit: Alexander Motin <mav@FreeBSD.org>
CommitDate: 2022-01-07 19:30:44 +0000
CTL: Relax callouts precisions.
MFC after: 2 weeks
---
sys/cam/ctl/ctl.c | 7 ++++---
sys/cam/ctl/ctl_tpc.c | 5 +++--
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c
index 069b01cc04b1..7b2c73693f9c 100644
--- a/sys/cam/ctl/ctl.c
+++ b/sys/cam/ctl/ctl.c
@@ -5903,7 +5903,8 @@ ctl_ie_timer(void *arg)
t = scsi_4btoul(lun->MODE_IE.interval_timer);
if (t == 0 || t == UINT32_MAX)
t = 3000; /* 5 min */
- callout_schedule(&lun->ie_callout, t * hz / 10);
+ callout_schedule(&lun->ie_callout, SBT_1S / 10 * t,
+ SBT_1S / 10, 0);
}
}
@@ -5935,8 +5936,8 @@ ctl_ie_page_handler(struct ctl_scsiio *ctsio,
t = scsi_4btoul(pg->interval_timer);
if (t == 0 || t == UINT32_MAX)
t = 3000; /* 5 min */
- callout_reset(&lun->ie_callout, t * hz / 10,
- ctl_ie_timer, lun);
+ callout_reset_sbt(&lun->ie_callout, SBT_1S / 10 * t,
+ SBT_1S / 10, ctl_ie_timer, lun, 0);
}
} else {
lun->ie_asc = 0;
diff --git a/sys/cam/ctl/ctl_tpc.c b/sys/cam/ctl/ctl_tpc.c
index 60cd5611643d..66ac2a1023e9 100644
--- a/sys/cam/ctl/ctl_tpc.c
+++ b/sys/cam/ctl/ctl_tpc.c
@@ -187,7 +187,7 @@ tpc_timeout(void *arg)
free(token, M_CTL);
}
mtx_unlock(&softc->tpc_lock);
- callout_schedule(&softc->tpc_timeout, hz);
+ callout_schedule_sbt(&softc->tpc_timeout, SBT_1S, SBT_1S, 0);
}
void
@@ -197,7 +197,8 @@ ctl_tpc_init(struct ctl_softc *softc)
mtx_init(&softc->tpc_lock, "CTL TPC mutex", NULL, MTX_DEF);
TAILQ_INIT(&softc->tpc_tokens);
callout_init_mtx(&softc->tpc_timeout, &softc->ctl_lock, 0);
- callout_reset(&softc->tpc_timeout, hz, tpc_timeout, softc);
+ callout_reset_sbt(&softc->tpc_timeout, SBT_1S, SBT_1S,
+ tpc_timeout, softc, 0);
}
void