examples: add cache effectiveness stats to gencache.stp
authorRalph Boehme <slow@samba.org>
Wed, 26 Jul 2017 12:29:33 +0000 (14:29 +0200)
committerRalph Boehme <slow@samba.org>
Fri, 11 Aug 2017 12:19:24 +0000 (14:19 +0200)
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Autobuild-User(master): Ralph Böhme <slow@samba.org>
Autobuild-Date(master): Fri Aug 11 14:19:24 CEST 2017 on sn-devel-144

examples/systemtap/gencache.stp

index 225f0aefd710ca359eada76f48054e80ddc32856..95fcff34accec57afa92542a16832d12853a8540 100755 (executable)
@@ -18,6 +18,7 @@
 #
 
 global running, intervals
+global cache_misses, cache_hits, neg_cache_hits
 
 probe begin {
        printf("Collecting data, press ctrl-C to stop... ")
@@ -37,6 +38,18 @@ probe process(@1).library("*").function("gencache_parse").return {
 
        duration = end - begin
        intervals["gencache_parse"] <<< duration
+
+       if ($return == 0) {
+               cache_misses++
+       } else {
+               cache_hits++
+       }
+}
+
+probe process(@1).library("*").function("gencache_get_data_blob_parser") {
+       if ($timeout == 0) {
+               neg_cache_hits++
+       }
 }
 
 probe process(@1).library("*").function("gencache_get_data_blob") {
@@ -106,6 +119,16 @@ probe process(@1).library("*").function("gencache_stabilize").return {
 probe end {
        printf("\n\n")
 
+       printf("Summary of cache access stats\n")
+       printf("=============================\n\n")
+       printf("%-10s %-10s %-10s\n",
+              "Hits", "Misses", "Negative-Hits");
+       printf("--------------------------------------\n")
+       printf("%-10d %-10d %-10d\n",
+              cache_hits, cache_misses, neg_cache_hits);
+
+       printf("\n")
+
        foreach ([name] in intervals) {
                printf("%-30s count: %d sum: %d us (min: %d us avg: %d us max: %d us)\n",
                       name,