svn commit: r322863 - head/sys/cam

Warner Losh imp at FreeBSD.org
Thu Aug 24 22:11:12 UTC 2017


Author: imp
Date: Thu Aug 24 22:11:10 2017
New Revision: 322863
URL: https://svnweb.freebsd.org/changeset/base/322863

Log:
  Expand the latency tracking array from 1.024s to 8.192s to help track
  extreme outliers from dodgy drives. Adjust comments to reflect this,
  and make sure that the number of latency buckets match in the two
  places where it matters.

Modified:
  head/sys/cam/cam_iosched.c

Modified: head/sys/cam/cam_iosched.c
==============================================================================
--- head/sys/cam/cam_iosched.c	Thu Aug 24 22:10:58 2017	(r322862)
+++ head/sys/cam/cam_iosched.c	Thu Aug 24 22:11:10 2017	(r322863)
@@ -233,7 +233,7 @@ struct iop_stats {
 	uint32_t	state_flags;
 #define IOP_RATE_LIMITED		1u
 
-#define LAT_BUCKETS 12			/* < 1ms < 2ms ... 512ms < 1024ms > 1024ms */
+#define LAT_BUCKETS 15			/* < 1ms < 2ms ... < 2^(n-1)ms >= 2^(n-1)ms*/
 	uint64_t	latencies[LAT_BUCKETS];
 
 	struct cam_iosched_softc *softc;
@@ -1520,7 +1520,7 @@ isqrt64(uint64_t val)
 	return res;
 }
 
-static sbintime_t latencies[] = {
+static sbintime_t latencies[LAT_BUCKETS - 1] = {
 	SBT_1MS <<  0,
 	SBT_1MS <<  1,
 	SBT_1MS <<  2,
@@ -1531,7 +1531,10 @@ static sbintime_t latencies[] = {
 	SBT_1MS <<  7,
 	SBT_1MS <<  8,
 	SBT_1MS <<  9,
-	SBT_1MS << 10
+	SBT_1MS << 10,
+	SBT_1MS << 11,
+	SBT_1MS << 12,
+	SBT_1MS << 13		/* 8.192s */
 };
 
 static void


More information about the svn-src-all mailing list