Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 09 Dec 2004 13:43:32 -0500
From:      Mike Tancsa <mike@sentex.net>
To:        Bruce Evans <bde@zeta.org.au>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: misc/74786: Smartlink Modem causes interrupt storm on  RELENG_4 and RELENG_5
Message-ID:  <6.2.0.14.0.20041209133753.0403b0c8@64.7.153.2>
In-Reply-To: <20041208172619.Y1156@epsplex.bde.org>
References:  <200412062027.iB6KR1jE096684@www.freebsd.org> <20041207085811.P6480@epsplex.bde.org> <6.2.0.14.0.20041207100615.0335e328@64.7.153.2> <20041208172619.Y1156@epsplex.bde.org>

next in thread | previous in thread | raw e-mail | index | archive | help

[cc'ing to FreeBSD-Stable]

Hi,

I know that the proposed patches I submitted are not the best patches, but 
given that the next release of RELENG_4 is coming out, would it not be 
better to commit those to RELENG_4 as they allow the modem to work when it 
shares an interrupt with another device ?  The sio and interrupt handling 
code in RELENG_5 is different enough that I doubt the patches you are 
proposing would make it back to RELENG_4.  This at least lets the modem 
work and prevents the machine from locking up in an interrupt storm on 
RELENG_4 without breaking any functionality (as far as I know).

         ---Mike




At 02:22 AM 08/12/2004, Bruce Evans wrote:

>I think I understand this now.  sio can indeed drive the interrupt (after
>you open an sio device, but not immediately at the end of the attach
>except in the serial console case).  The main bugs are:
>1. sio asks for exclusive access to the interrupt for no good reason
>    (some buses like isa might only support exclusive accesses, but sio
>    doesn't care).  uhci gets access first in your configuration, so
>    allocation of the interrupt resource fails.
>2. Error handling for the failure in (1) is null, so both devices are
>    "successfully" attached.
>3. sio sets a flag to tell it to use polling if there is no interrupt
>    resource, but it doesn't set the flag if the interrupt resource
>    couldn't be allocated or if the interrupt couldn't be set up.
>4. Upper layers provide negative help for debugging (3) using their
>    own version of (3).  They print "irq N" in boot messages if an
>    interrupt resource justs exists.  This doesn't mean that the device
>    is using it.
>5. Device interrupts are still enabled in polling mode.  This depends
>    on nothing else sucessfully setting up the (shared) interrupt.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6.2.0.14.0.20041209133753.0403b0c8>