Date: Mon, 17 Jul 2000 11:08:18 -0700 From: Jack Rusher <jar@integratus.com> To: Joe Eykholt <jre@iprg.nokia.com> Cc: Steve Passe <smp@csn.net>, Greg Lehey <grog@lemis.com>, arch@FreeBSD.ORG, smp@FreeBSD.ORG Subject: Re: Tidying up the interrupt registration process Message-ID: <39734B92.E2B3B6CE@integratus.com> References: <200007171553.JAA24715@Ilsa.StevesCafe.com> <39733CBB.7147BA74@iprg.nokia.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Joe Eykholt wrote: > > Just one more thing to consider: its pretty nice when using a serial > console to be able to break into the debugger even when at splhigh(), > and the FAST_INTR setup allows this. If serial interrupts were > threads, then this probably wouldn't be possible. > > Solaris 2.5 (and probably the more recent versions also) uses the > equivalent of fast interrupts for serial also. Solaris (up to 2.8) has fifteen interrupt levels, laid out like this: 1-9: "low" interrupts that are handled by kernel threads 10: "clock" interrupt, which (until 2.8) was used for the clock 11-15: "high" interrupts ...the low interrupts are general device interrupts (SCSI, frame buffer, etc), while the high set are for the serial devices. The low set are all handled by a 1/1 thread/interrupt scheme. Each CPU has a set of 9 interrupt threads waiting around to do the dirty work. This allows multiple CPUs to share the processing burden associated with device I/O. There is one system wide clock thread (until 2.8). The high set are handled in the context of the currently running thread, using the shortest code path they can manage. They did this because of the same overflow/console debugging issues that are currently being discussed here. -- Jack Rusher, Senior Engineer | mailto:jar@integratus.com Integratus, Inc. | http://www.integratus.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-smp" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?39734B92.E2B3B6CE>