Date: Fri, 10 Nov 2000 11:38:23 -0800 (PST) From: Matthew Jacob <mjacob@feral.com> To: John Baldwin <jhb@FreeBSD.ORG> Cc: alpha@FreeBSD.ORG, Andrew Gallatin <gallatin@cs.duke.edu> Subject: Re: Does your Alpha run a SMPng kernel? Message-ID: <Pine.BSF.4.21.0011101137500.83354-200000@beppo.feral.com> In-Reply-To: <XFMail.001110113530.jhb@FreeBSD.org>
index | next in thread | previous in thread | raw e-mail
[-- Attachment #1 --]
> So you get some interrupts and then they stop. On the x86 we do a
> disable/enable interrupt scheme for ISA interrupts by dinking with the PIC, so
> Matt's suggestion to use isa_enable_intr()/isa_disable_intr() might be needed
> actually. (see hte INTREN() call in ithd_loop() in i386/isa/ithread.c)
> Actually, it looks like we wait too long to enable the interrupt sources on the
> x86. However, using the isa_enable/disable_intr() stuff that Matt suggested
> might help.
[-- Attachment #2 --]
Index: alpha/isa/isa.c
===================================================================
RCS file: /home/ncvs/src/sys/alpha/isa/isa.c,v
retrieving revision 1.23
diff -u -r1.23 isa.c
--- alpha/isa/isa.c 2000/11/01 18:40:41 1.23
+++ alpha/isa/isa.c 2000/11/10 19:37:32
@@ -71,6 +71,19 @@
splx(s);
}
+static void
+extern_isa_intr_enable(int vector)
+{
+ isa_intr_enable((vector - 0x800) >> 4);
+}
+
+static void
+extern_isa_intr_disable(int vector)
+{
+ isa_intr_disable((vector - 0x800) >> 4);
+}
+
+
intrmask_t
isa_irq_pending(void)
{
@@ -322,7 +335,7 @@
0x800 + (irq->r_start << 4), isa_handle_intr, ii,
ithread_priority(flags), flags, &ii->ih,
&intrcnt[INTRCNT_ISA_IRQ + irq->r_start],
- NULL, NULL);
+ extern_isa_intr_enable, extern_isa_intr_disable);
if (error) {
free(ii, M_DEVBUF);
return error;
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0011101137500.83354-200000>
