Re: psaux broken

Mark T. Gray (citylake@postoffice.ptd.net)
Wed, 24 Jul 1996 14:26:33 -0400 (EDT)


On Wed, 24 Jul 1996, Mark T. Gray (I) wrote:
> On Mon, 22 Jul 1996, Petri T J Mattila wrote:
>
> > Hi,
> >
> > linux-2.0.8 seems to break psaux somehow.
> >
> > A couple of minutes after boot, system just hangs.
> > Even virtual consoles does not work anymore.
> > There is only one message in the syslog:
> > 'psaux: controller timeout'
> >
> > If I let psaux module unloaded, everything works well.
> >
> > BTW, what possibilities do I have to debug kernel
> > in this kind of situation ?
> >
> >
> > -- Petri
>
> I have had a similar problem with 2.0.8 when I start X while dip is calling
> my ISP -- the loading of X stops and I get bumped out to the login prompt,
> however the keyboard is totally dead and I have to shutdown from my dumb
> terminal. (The kernel continues working, and I usually let it download my
> mail before rebooting).
>
> I couldn't figure out which of the 6 'psaux: controller timeout' printk's
> was involved so I numbered them -- the problem went away! (at least for this
> morning and yesterday's many "recreation" attempts). It seems like there is
> some timing critical thing happening between the serial ports and psaux. My
> psaux is built into the kernel so it is not a module problem alone.
> >
I managed to recreate my problem, and using printk's have isolated it down
to inside the aux_write_ack(AUX_ENABLE_DEV) call from line 370 inside the
function open_aux of file psaux.c

It takes some careful (or unlucky!) timing of when to hit the enter key to
startx to get it to happen -- apparently just after the modems finish
negotiating and data begins to flow there is an opportunity for a long
enough delay for something inside the aux_write_ack to timeout. When I start
up X I start up 18 rxvt's, 2 xbiffs, oclock, and xosview so there is a
considerable flurry of IDE disk accesses going on at that point.

I will add more printk's to isolate it further (this will take time as it is
nearly bed-time and I'm getting stupid(er) :)