Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 2 May 2004 13:12:51 +1000 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        "M. Warner Losh" <imp@bsdimp.com>
Cc:        freebsd-current@freebsd.org
Subject:   Re: sio: lots of silo overflows on Asus K8V with Moxa Smartio C104H/PCI
Message-ID:  <20040502130027.O1806@gamplex.bde.org>
In-Reply-To: <20040501.162455.37300016.imp@bsdimp.com>
References:  <20040426233925.Y5300@gamplex.bde.org> <20040430102504.477152ce.bm@malepartus.de> <20040501.162455.37300016.imp@bsdimp.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 1 May 2004, M. Warner Losh wrote:

> In message: <20040501140658.F19558@gamplex.bde.org>
>             Bruce Evans <bde@zeta.org.au> writes:
> : Not using a fast interrupt handler may cause occasional silo overflows,
> : but shouldn't cause many.  The problem is mostly elsewhere (Giant locking
> : for too long), but siointr() shouldn't use Giant locking.  Try the following
> : patch if you still have shared interrupts:
>
> Is the tty layer giant safe now?

No, but siointr() doesn't go near the tty layer or almost any other
layer.  It uses pseudo-dma and schedules a SWI to transfer data between
its buffers and the tty layer.  Fast interrupt handlers cannot call
other layers because they cannot reasonable lock other layers or
vice versa.  (Even the call to the scheduler to schedule a SWI in the
current implementation is a layering violation.)

SImilarly for all other fast interrupt handlers if they are attached
as normal interrupt handlers without changing their locking.  The
requirements for them to act as fast interrupt handlers are stricter
than those for INTR_MPSAFE normal interrupt handlers, so fast interrupt
handlers are automatically INTR_MPSAFE when downgraded to normal ones.

Bruce



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