Subject: Re: hardclock(9) for cobalt
To: None <port-cobalt@netbsd.org>
From: Izumi Tsutsui <tsutsui@ceres.dti.ne.jp>
List: port-cobalt
Date: 07/31/2004 22:39:32
In article <000b01c476fa$83c3b800$0d00a8c0@paq5>
locore32@gaea.ocn.ne.jp wrote:

> With MIPS processor softclock is handled with real interrupt context.
> Is it the cause of this particular device driver issue?

The problem is that softclock is _scheduled_ (not called yet
at that time) in hardclock(9) before softclock_si is initialized
(i.e. softclock is established) in sys/kern/kern_clock.c:initclocks().
Then it may occur if there is any device which uses callout(9).

On ports which have generic soft interrupts, softintr_establish()
for softclock is called in sys/kern/kern_clock.c:initclocks(),
which is called after _splnone() in cpu_configure(9). Other software
interrupts are established before/during cpu_configure(9).
softnet is established in sys/arch/mips/mips/softintr.c:softintr_init(),
softserial is established in sys/dev/ic/com.c:com_attach_subr().
---
Izumi Tsutsui
tsutsui@ceres.dti.ne.jp