Date: Fri, 15 Aug 1997 21:39:55 -0500 (CDT) From: Doug Ledford <dledford@dialnet.net> To: aic7xxx list <aic7xxx@FreeBSD.org> Cc: "Daniel M. Eischen" <deischen@iworks.InterWorks.org>, "Justin T. Gibbs" <gibbs@narnia.plutotech.com> Subject: Bottom half handler, abort/reset code Message-ID: <Pine.LNX.3.95.970815211740.1667B-100000@dledford.dialnet.net>
next in thread | raw e-mail | index | archive | help
OK...the bottom half handler is working once again (it died after I applied a patch to fix the "Couldn't get a free page...." messages because the bottom half handler was started by the scheduler and this patch can cause extremely long periods of time without the scheduler running that also just happens to be waiting on the bottom half handler, kinda the chicken and egg thing, so the handler got switched over to running on the timer interrupt when needed). The abort code appears to be finished now (and I must say, I'm quite happy with the new abort code, it's very fast at getting rid of scbs that need aborted, and wastes very little time escalating things if the bus happens to be hung). The reset code is about 3/4 of the way finished. I'm happy with the aic7xxx_reset() function in general, with aic7xxx_bus_device_reset(), aic7xxx_reset_channel(). I'm not yet done with aic7xxx_handle_bus_dev_reset() [I think that's the name of the function called by the scsiint handler anyway] and I'm not yet happy with aic7xxx_reset_device(). As a matter of fact, for the abort functions, I wrote a new aic7xxx_abort_device() function since the reset_device funtion wasn't really suited all that well for the actuality of a MSG_ABORT or MSG_ABORT_TAG, which is all these functions need to handle. So, having said that, I have made a patch that applies cleanly to linux-2.0.31-pre6 and placed it on my ftp server (ftp.dialnet.net) in /pub/linux/aic7xxx. I'm also placing the buffer patch I mention there for people to grab as well. The patch is a normal patch, and applies normally, eg: cd /usr/src/linux patch -p1 < /where/ever/you/put/the/patch In any case, this is a work in progress, so if there are multiple copies of the patch by the time you look, then please grab the latest one, as I likely will have fixed problems that still existed in older patches. One more thing, I have modified the QUEUE_FULL handling somewhat. It will reset the bus if you get too many of these on the same command. I did this since it's an easy way to test the reset code, pump up the commands per lun too high for a drive, then slam it with requests. Now, having done all that, and got this initial version out today like I said I would, I'm going to go away from the computer for a while :) ***************************************************************************** * Doug Ledford * Unix, Novell, Dos, Windows 3.x, * * dledford@dialnet.net 873-DIAL * WfW, Windows 95 & NT Technician * * PPP access $14.95/month ***************************************** * Springfield, MO and surrounding * Usenet news, e-mail and shell account.* * communities. Sign-up online at * Web page creation and hosting, other * * 873-9000 V.34 * services available, call for info. * *****************************************************************************
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.LNX.3.95.970815211740.1667B-100000>