Date: Tue, 19 Apr 2011 09:24:51 +1000 (EST) From: Bruce Evans <brde@optusnet.com.au> To: Alexander Motin <mav@FreeBSD.org> Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org, John Baldwin <jhb@FreeBSD.org> Subject: Re: svn commit: r220777 - head/sys/dev/ahci Message-ID: <20110419091915.G2406@besplex.bde.org> In-Reply-To: <4DAC91BF.7050102@FreeBSD.org> References: <201104181334.p3IDYVDh073304@svn.freebsd.org> <201104181306.58172.jhb@freebsd.org> <4DAC91BF.7050102@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 18 Apr 2011, Alexander Motin wrote: > On 18.04.2011 20:06, John Baldwin wrote: >> On Monday, April 18, 2011 9:34:31 am Alexander Motin wrote: >>> Author: mav >>> Date: Mon Apr 18 13:34:31 2011 >>> New Revision: 220777 >>> URL: http://svn.freebsd.org/changeset/base/220777 >>> >>> Log: >>> - Tune different wait loops to cut some more milliseconds from reset >>> time. >>> - Do not call ahci_start() before device signature received. It is >>> required >>> by the specification and caused non-fatal reset timeouts on AMD >>> chipsets. >> >> Do you have to use DELAY() here rather than a blocking sleep via pause()? > > At the moment I would say yes. These paths are called from CAM while holding > SIM lock. CAM may not like if I drop the lock in the middle of the call. Also > during recovery those functions could be called from the callout and > interrupt threads. In that case even dropping the lock won't allow thread to > sleep. More than before you reduced the delays. There seems to be no interrupt for reset, and it may be impossible for a timer to interrupt after only ~10 usec like some of the reduced delays use. > I will think more about possibilities to refactor the code to replace some > DELAYs with callouts, but requirement to keep functionality in polled mode > doesn't make the task easier. This means that callouts cannot work. Dumps should start with a reset which should run entirely in polled mode, like the entired dump. Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110419091915.G2406>