svn commit: r252554 - stable/9/sys/dev/mfi
Steven Hartland
smh at FreeBSD.org
Wed Jul 3 08:39:19 UTC 2013
Author: smh
Date: Wed Jul 3 08:39:18 2013
New Revision: 252554
URL: http://svnweb.freebsd.org/changeset/base/252554
Log:
MFC r252471:
Remove forced timeout of in-flight commands from mfi_timeout.
While this prevents commands getting stuck forever there is no way to guarantee
that data from the command hasn't been committed to the device.
In addition older mfi firmware has a bug that would cause the controller to
frequently stall IO for over our timeout value, which when combined with
a forced timeout often resulted in panics in UFS; which would otherwise be
avoided when the command eventually completed if left alone.
For reference this timeout issue is resolved in Dell FW package 21.2.1-0000.
Fixed FW package version for none Dell controller will likely vary.
Modified:
stable/9/sys/dev/mfi/mfi.c
Directory Properties:
stable/9/sys/ (props changed)
stable/9/sys/dev/ (props changed)
Modified: stable/9/sys/dev/mfi/mfi.c
==============================================================================
--- stable/9/sys/dev/mfi/mfi.c Wed Jul 3 08:35:14 2013 (r252553)
+++ stable/9/sys/dev/mfi/mfi.c Wed Jul 3 08:39:18 2013 (r252554)
@@ -3768,12 +3768,15 @@ mfi_timeout(void *data)
MFI_PRINT_CMD(cm);
MFI_VALIDATE_CMD(sc, cm);
/*
- * Fail the command instead of leaving it on
- * the queue where it could remain stuck forever
+ * While commands can get stuck forever we do
+ * not fail them as there is no way to tell if
+ * the controller has actually processed them
+ * or not.
+ *
+ * In addition its very likely that force
+ * failing a command here would cause a panic
+ * e.g. in UFS.
*/
- mfi_remove_busy(cm);
- cm->cm_error = ETIMEDOUT;
- mfi_complete(sc, cm);
timedout++;
}
}
More information about the svn-src-stable-9
mailing list