Date: Fri, 01 Apr 2005 15:02:54 -0700 (MST) From: Warner Losh <imp@bsdimp.com> To: ticso@cicely.de, ticso@cicely12.cicely.de Cc: iedowse@FreeBSD.ORG Subject: Re: panic: uhci_abort_xfer: not in process context Message-ID: <20050401.150254.74727545.imp@bsdimp.com> In-Reply-To: <20050401213138.GQ2072@cicely12.cicely.de> References: <200504012144.11468.sebastien.b@swissinfo.org> <200504012317.54966.hselasky@c2i.net> <20050401213138.GQ2072@cicely12.cicely.de>
next in thread | previous in thread | raw e-mail | index | archive | help
> > The solution is to use DELAY() instead of tsleep() and usb_delay_ms(). > > This is wrong either way - wasting cycles in interrupt context is bad. > IMO the timeout function should trigger a softint doing the real job. > Maybe Ian has an idea about this - he did a lot in respect to timeout > and aborting xfers lately and should be familar with this point. > To be shure it still exists you should verify with latest code. I have a set of patches that convert the bridge interrupt routines into a taskqueue. I did that so that we can mark them as non-giant holding ISRs. This would be a reasonable context to do things like sleeping from. However, you'd want to avoid that as much as possible because sleeping for one request would block all the others in the queue.... Warner
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050401.150254.74727545.imp>