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 b784ee3..f0d2323 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");