cvs commit: src/sys/i386/i386 db_interface.c

[ Available lists | Index of cvs-src | Month of Mar 2003 | Week of 24 Mar 2003 | Raw email | View thread | Wrap long lines | Reply | Tag ]
From
Bruce Evans <bde@FreeBSD.org>
Date
24 Mar 2003 02:17:18
Subject
cvs commit: src/sys/i386/i386 db_interface.c
Message-ID
200303241017.h2OAHEB5058289@repoman.freebsd.org


[ Hide this part ]
bde         2003/03/24 02:17:14 PST

FreeBSD src repository

Modified files:
sys/i386/i386 db_interface.c
Log:
Disable interrupts while in kdb_trap() to handle cases where the caller
doesn't do it. This fixes all known causes of "Context switches not
allowed in the debugger" in mi_switch(). The main cause was trap_fatal()
calling kdb_trap() with interrupts enabled. Switching to ithreads for
interrupt handling then made fatal traps more fatal and harder to debug.
The problem was limited in -current because most interrupt handlers are
blocked by Giant, but it occurred almost deterministically for me because
my clock interrupt handlers are non-fast and not blocked by Giant.

Revision Changes Path
1.71 +7 -0 src/sys/i386/i386/db_interface.c

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



Elapsed time: 0.059 seconds