PERFORCE change 53058 for review
Peter Wemm
peter at FreeBSD.org
Wed May 19 10:21:44 PDT 2004
http://perforce.freebsd.org/chv.cgi?CH=53058
Change 53058 by peter at peter_hammer on 2004/05/19 10:21:28
Check in jhb's ithread_preempt.patch change. Unfortunately, it doesn't
seem to help the post-panic situation.
Affected files ...
.. //depot/projects/hammer/sys/amd64/amd64/intr_machdep.c#18 edit
Differences ...
==== //depot/projects/hammer/sys/amd64/amd64/intr_machdep.c#18 (text+ko) ====
@@ -183,7 +183,6 @@
if (vector == 0)
clkintr_pending = 1;
- critical_enter();
if (ih != NULL && ih->ih_flags & IH_FAST) {
/*
* Execute fast interrupt handlers directly.
@@ -191,6 +190,7 @@
* with a NULL argument, then we pass it a pointer to
* a trapframe as its argument.
*/
+ critical_enter();
TAILQ_FOREACH(ih, &it->it_handlers, ih_next) {
MPASS(ih->ih_flags & IH_FAST);
CTR3(KTR_INTR, "%s: executing handler %p(%p)",
@@ -204,6 +204,7 @@
}
isrc->is_pic->pic_eoi_source(isrc);
error = 0;
+ critical_exit();
} else {
/*
* For stray and threaded interrupts, we mask and EOI the
@@ -216,7 +217,6 @@
else
error = ithread_schedule(it, !cold);
}
- critical_exit();
if (error == EINVAL) {
atomic_add_long(isrc->is_straycount, 1);
if (*isrc->is_straycount < MAX_STRAY_LOG)
More information about the p4-projects
mailing list