NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: port-sgimips/53520 (delay(9) is ineffective in early initialization phase sgimips kernel.)
The following reply was made to PR port-sgimips/53520; it has been noted by GNATS.
From: Izumi Tsutsui <tsutsui%ceres.dti.ne.jp@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: tsutsui%ceres.dti.ne.jp@localhost
Subject: Re: port-sgimips/53520 (delay(9) is ineffective in early initialization
phase sgimips kernel.)
Date: Sat, 8 Sep 2018 01:28:13 +0900
> The basic analysis (temporary initialization of ci_divisor_delay for
> early use of delay(9)) is reasonable. However it looks something wrong
> around delay() implementation of sgimips. I will also investigate it.
Quoted from port-sgimips@:
http://mail-index.netbsd.org/port-sgimips/2018/09/02/msg000775.html
> Notes for PR/53520:
> NetBSD/sgimips uses the ci_divisor_delay value for the 4.4BSD derived
> dumb delay loop. However ci_devisor_delay is designed for mips3_delay()
> in sys/arch/mips/mips/mips3_clock.c that uses MIPS3's internal CPU counter,
> i.e. "a number of CPU clock count per microsecond."
> (note ci_cycles_per_hz is also for common mips3_clockintr() in
> sys/arch/mips/mips/mips3_clockintr.c)
>
> For sgimips delay implementation (traditional 4.4BSD derived delay loop),
> the "cpuspeed" value (that represents "instructions per microsecond")
> should be used instead, as pmax and newsmips do.
>
> Anyway the cpuspeed value is not so precise as noted in
> sys/arch/mips/mips/mips_mcclock.c
> https://nxr.netbsd.org/xref/src/sys/arch/mips/mips/mips_mcclock.c?r=1.19#198
> so current ci_divisor_delay value is still acceptable, I think.
The 'cpuspeed' values in mips_mcclock.c are similar with
"(frequency [MHz]) / 2" for ci_divisor_delay so it seems
acceptable for now to (ab)use it for traditional sgimips delay.
I'll commit the fix in the PR soon. (with some proper comment)
---
Izumi Tsutsui
Home |
Main Index |
Thread Index |
Old Index