Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Aug 2017 22:11:10 +0000 (UTC)
From:      Warner Losh <imp@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r322863 - head/sys/cam
Message-ID:  <201708242211.v7OMBAlc012582@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201708242211.v7OMBAlc012582>