Hi,
Referring to the end of mpi's message, and also mlarkin@ later comment
https://marc.info/?l=openbsd-tech&m=154577028830964&w=2
I am trying to replace some easy timeout_add() calls with timeout_add_msec().
My current understanding with the occurences of timeout_add() in the tree is
that: if there is a hardcoded call like timeout_add(struct timeout, 1), then
replace with timeout_add_msec(struct timeout, 10). That is, 1 tick = 10 msec.
So if there's a hardcoded call like timeout_add(struct timeout, 5), then
replace with timeout_add_msec(struct timeout, 50).
If there are hz calculations which I don't understand like for example in
/sys/arch/alpha/tc/ioasic.c, then I am skipping these for now.
if (alpha_led_blink != 0) {
timeout_set(&led_blink_state.tmo, ioasic_led_blink, NULL);
timeout_add(&led_blink_state.tmo,
(((averunnable.ldavg[0] + FSCALE) * hz) >> (FSHIFT + 3)));
}
A call like timeout_add(struct timeout, 0) is replaced by an equivalent call to
timeout_add_msec(struct timeout, 0).
Both the above scenarios are in the following diff and un-tested (not compiled
also, for now), no way I can test some of these, as I don't have access to
hardware. Mainly looking for critical review and feedback to get this going in
the right direction.
Thanks for your time!
diff --git arch/alpha/alpha/promcons.c arch/alpha/alpha/promcons.c
index 9efabd3bf1c..b872f6e3931 100644
--- arch/alpha/alpha/promcons.c
+++ arch/alpha/alpha/promcons.c
@@ -100,7 +100,7 @@ promopen(dev, flag, mode, p)
error = (*linesw[tp->t_line].l_open)(dev, tp, p);
if (error == 0 && setuptimeout) {
timeout_set(&prom_to, promtimeout, tp);
- timeout_add(&prom_to, 1);
+ timeout_add_msec(&prom_to, 10);
}
return error;
}
@@ -220,7 +220,7 @@ promtimeout(v)
if (tp->t_state & TS_ISOPEN)
(*linesw[tp->t_line].l_rint)(c, tp);
}
- timeout_add(&prom_to, 1);
+ timeout_add_msec(&prom_to, 10);
}
struct tty *
diff --git arch/amd64/isa/clock.c arch/amd64/isa/clock.c
index db516d9ecde..9d5934e6817 100644
--- arch/amd64/isa/clock.c
+++ arch/amd64/isa/clock.c
@@ -326,7 +326,7 @@ rtcstart(void)
mc146818_write(NULL, MC_REGB, MC_REGB_24HR | MC_REGB_PIE);
/*
- * On a number of i386 systems, the rtc will fail to start when booting
+ * On a number of amd64 systems, the rtc will fail to start when booting
* the system. This is due to us missing to acknowledge an interrupt
* during early stages of the boot process. If we do not acknowledge
* the interrupt, the rtc clock will not generate further interrupts.
@@ -334,7 +334,7 @@ rtcstart(void)
* to drain any un-acknowledged rtc interrupt(s).
*/
timeout_set(&rtcdrain_timeout, rtcdrain, (void *)&rtcdrain_timeout);
- timeout_add(&rtcdrain_timeout, 1);
+ timeout_add_msec(&rtcdrain_timeout, 10);
}
void
diff --git arch/amd64/pci/pchb.c arch/amd64/pci/pchb.c
index 6e599d7be4a..80b5ada1cb4 100644
--- arch/amd64/pci/pchb.c
+++ arch/amd64/pci/pchb.c
@@ -332,7 +332,7 @@ pchb_rnd(void *v)
}
}
- timeout_add(&sc->sc_rng_to, 1);
+ timeout_add(&sc->sc_rng_to, 10);
}
void
diff --git dev/ic/vga.c dev/ic/vga.c
index 74cc3e07bf8..2cebb65d2d5 100644
--- dev/ic/vga.c
+++ dev/ic/vga.c
@@ -765,7 +765,7 @@ vga_show_screen(void *v, void *cookie, int waitok, void
(*cb)(void *, int, int),
if (cb) {
timeout_set(&vc->vc_switch_timeout,
(void(*)(void *))vga_doswitch, vc);
- timeout_add(&vc->vc_switch_timeout, 0);
+ timeout_add(&vc->vc_switch_timeout, 10);
return (EAGAIN);
}
diff --git net/if_pfsync.c net/if_pfsync.c
index 8d842e48466..dc8d2f41466 100644
--- net/if_pfsync.c
+++ net/if_pfsync.c
@@ -2318,7 +2318,7 @@ pfsync_bulk_start(void)
sc->sc_bulk_last = sc->sc_bulk_next;
pfsync_bulk_status(PFSYNC_BUS_START);
- timeout_add(&sc->sc_bulk_tmo, 0);
+ timeout_add_msec(&sc->sc_bulk_tmo, 0);
}
}