Code

zfs_arc: Don't spam the log if we fail to read the "l2_size" kstat value.
authorJan Andres <jandres@gmx.net>
Wed, 28 Jan 2015 14:06:04 +0000 (15:06 +0100)
committerJan Andres <jandres@gmx.net>
Sat, 31 Jan 2015 08:40:00 +0000 (09:40 +0100)
The value got lost with some patch to Solaris 10 and has only reappeared
recently in 11.2. If we ever fail to read this value, stop trying, so we
don't report an error on every interval.

src/zfs_arc.c

index b784ee3a3fc1374a66e03f12b432c625ae48dce1..f0d23239a82ab158c03c669f9a96cf2fc7f8dd24 100644 (file)
@@ -251,7 +251,14 @@ static int za_read (void)
 
        /* Sizes */
        za_read_gauge (ksp, "size",    "cache_size", "arc");
-       za_read_gauge (ksp, "l2_size", "cache_size", "L2");
+
+       /* The "l2_size" value has disappeared from Solaris some time in
+        * early 2013, and has only reappeared recently in Solaris 11.2.
+        * Stop trying if we ever fail to read it, so we don't spam the log.
+        */
+       static int l2_size_avail = 1;
+       if (l2_size_avail && za_read_gauge (ksp, "l2_size", "cache_size", "L2") != 0)
+               l2_size_avail = 0;
 
        /* Operations */
        za_read_derive (ksp, "deleted",  "cache_operation", "deleted");