Subject: Re: gif can cause kernel to hang
To: Greg Troxel <gdt@ir.bbn.com>
From: Jeff Rizzo <riz@boogers.sf.ca.us>
List: tech-net
Date: 02/10/2004 10:46:50
On Tue, Feb 10, 2004 at 10:03:04AM -0500, Greg Troxel wrote:

> Or, force __HAVE_GENERIC_SOFT_INTERRUPTS to be off, so that
> gifnetisr() is called from gif_output instead of being deferred.


OK, I'm slogging through figuring stuff out, and thus far, I've determined
that yes, gif_output and in_gif_output get called repeatedly for
a single packet.  I'd *like* to force __HAVE_GENERIC_SOFT_INTERRUPTS,
and I tried #undef-ing it in sys/arch/i386/i386/vector.S and
sys/arch/i386/include/types.h, but then I get a compile-time error:

../../../../dev/ic/com.c: In function `com_schedrx':
../../../../dev/ic/com.c:1235: warning: implicit declaration of function `setsoftserial'


Looking for how ports without GENERIC_SOFT_INTERRUPTS do it, it's clear
to me that I'm not sure how to declare (or #define) setsoftserial(),
so perhaps i'd best ignore that for now and continue slogging through
the way I'm doing it.  (Can you tell I don't touch the kernel much?)

This sure would be easier if I could use kgdb, but I've only got
one serial port on this box, and it's the console.  So, I get to
learn ddb(4) while touching bits of the network code that I'm also
learning - fun!  Still, I like having a non-critical challenge that
I might be able to actually complete.  :)

Thanks,
+j

-- 
Jeff Rizzo                                         http://boogers.sf.ca.us/~riz