Date: Fri, 4 Mar 2005 16:55:09 -0500 From: Anish Mistry <mistry.7@osu.edu> To: freebsd-current@freebsd.org Cc: Nate Lawson <nate@root.org> Subject: Re: patch: fix 30 second hang while resuming Message-ID: <200503041655.26812.mistry.7@osu.edu> In-Reply-To: <422253D7.7000504@root.org> References: <42224897.7050006@root.org> <422253D7.7000504@root.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--nextPart1463418.WDrfn0UdsN Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On Sunday 27 February 2005 06:12 pm, Nate Lawson wrote: > Nate Lawson wrote: > > My system hangs a long time in ata_generic_reset() while > > resuming. I did some hunting and found that the loop was running > > for the full 310 * 100 ms (31 seconds). The bug is that the loop > > never exits when mask goes to 0 even though this is a termination > > condition (see end of the loop where the code masks off 1 and 2). > > > > The attached patch fixes this by exiting when the mask is set to > > 0 instead of looping the full 31 seconds. This is correct since > > setting the mask to 0 is how the loop marks master/slave "done".=20 > > It also has a minor whitespace fix. > > Apologies, the last patch was not quite right. You need to check > that both status values are not "busy" as well as the mask. This > check could be merged in elsewhere as well. This was just a > convenient place to put it. > > Please use the attached patch instead. This works well for me. Is this going to be committed? =2D-=20 Anish Mistry --nextPart1463418.WDrfn0UdsN Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (FreeBSD) iD8DBQBCKNlOxqA5ziudZT0RAif1AKCXxcPF41NFnAT8N2OYgG+A5e2rNwCgkyqd tECribNQm++9NklnQVJfMB0= =1pc4 -----END PGP SIGNATURE----- --nextPart1463418.WDrfn0UdsN--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200503041655.26812.mistry.7>