Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 9 Sep 2000 21:06:19 +0100
From:      Ben Smithurst <ben@FreeBSD.org>
To:        current@FreeBSD.org
Subject:   Re: page fault in sched_ithd
Message-ID:  <20000909210619.F77593@strontium.scientia.demon.co.uk>
In-Reply-To: <20000909195525.E77593@strontium.scientia.demon.co.uk>
References:  <20000909195525.E77593@strontium.scientia.demon.co.uk>

next in thread | previous in thread | raw e-mail | index | archive | help

--sm4nu43k4a2Rpi4c
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Ben Smithurst wrote:

> A kernel from the latest sources gets a page fault in sched_ithd.  DDB says:
> 
> Stopped at:	sched_ithd+0x3c:	movl $0x01,0x14(%edi)
> 
> Any ideas what's wrong?

After poking around a bit with remote GDB, this seems to be caused by a
stray IRQ 7, since irq == 7, ir == ithds[irq] == NULL, ir->foo == BOOM.

The attached rather crude patch has "fixed" the problem for now, but
does anyone have any suggestions for a real fix?

-- 
Ben Smithurst / ben@FreeBSD.org / PGP: 0x99392F7D

--sm4nu43k4a2Rpi4c
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="ithread.diff"

Index: ithread.c
===================================================================
RCS file: /usr/cvs/src/sys/i386/isa/ithread.c,v
retrieving revision 1.1
diff -u -r1.1 ithread.c
--- ithread.c	2000/09/07 01:32:48	1.1
+++ ithread.c	2000/09/09 19:58:46
@@ -144,6 +144,9 @@
 	}
 #endif
 		
+	if (ir == NULL)
+		return;
+
 	/*
 	 * Set it_need so that if the thread is already running but close
 	 * to done, it will do another go-round.  Then get the sched lock

--sm4nu43k4a2Rpi4c--


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000909210619.F77593>