Subject: Callout table troubles in NetBSD 1.5?
To: None <port-macppc@netbsd.org>
From: Donald Lee <donlee_ppc@icompute.com>
List: port-macppc
Date: 02/08/2001 08:33:45
Dear list,

I'm still struggling to get the Cyclades 8Y up in production.

Latest problem is that the "upper half" of the driver seems
to die sometimes.  It is driven by the following mechanism:

/*
 * Upper-level handler loop
 */
static void
cy_poll(arg)
        void *arg;
{
        int card, port;

/*
poll routine shuttles data between primary interrupt handler and
the rest of NetBSD.
/*

/* LotsaCode..... */

        callout_reset(&cy_poll_callout, 1, cy_poll, NULL);
}

The init puts in the callout table entry, and it is "refreshed"
each trip through.

What happens is that the routine stops getting called, and I have to
figure out why.  I found the man page, and am looking for holes.

Presuming this is correct usage, does anyone know of bugs in the callout
table in NetBSD that might cause an entry to be "lost"?
I presume that the callout table in NetBSD is heavily used, so
bugs would be unlikely to go unnoticed.

I'm going to go do some debugging in my kernel to see if someone is
stepping on this entry, or what...

Thanks in advance,

-dgl-