]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
FS-Cache: Count the number of initialised operations
authorDavid Howells <dhowells@redhat.com>
Wed, 25 Feb 2015 13:21:15 +0000 (13:21 +0000)
committerDavid Howells <dhowells@redhat.com>
Thu, 2 Apr 2015 13:28:53 +0000 (14:28 +0100)
Count and display through /proc/fs/fscache/stats the number of initialised
operations.

Signed-off-by: David Howells <dhowells@redhat.com>
Reviewed-by: Steve Dickson <steved@redhat.com>
Acked-by: Jeff Layton <jeff.layton@primarydata.com>
Documentation/filesystems/caching/fscache.txt
fs/fscache/internal.h
fs/fscache/operation.c
fs/fscache/stats.c

index 66fa7fbccfa4fe89293d729ab9b580d3920dd25c..50f0a5757f48cb654f33130fcabc2db87f197a12 100644 (file)
@@ -284,8 +284,9 @@ proc files.
                enq=N   Number of times async ops queued for processing
                can=N   Number of async ops cancelled
                rej=N   Number of async ops rejected due to object lookup/create failure
+               ini=N   Number of async ops initialised
                dfr=N   Number of async ops queued for deferred release
-               rel=N   Number of async ops released
+               rel=N   Number of async ops released (should equal ini=N when idle)
                gc=N    Number of deferred-release async ops garbage collected
        CacheOp alo=N   Number of in-progress alloc_object() cache ops
                luo=N   Number of in-progress lookup_object() cache ops
index 87c4544ec912b67b604520d5907833024a76bda5..a63225116db644e1a04f37d5ccf8533d6151e099 100644 (file)
@@ -165,6 +165,7 @@ extern atomic_t fscache_n_op_pend;
 extern atomic_t fscache_n_op_run;
 extern atomic_t fscache_n_op_enqueue;
 extern atomic_t fscache_n_op_deferred_release;
+extern atomic_t fscache_n_op_initialised;
 extern atomic_t fscache_n_op_release;
 extern atomic_t fscache_n_op_gc;
 extern atomic_t fscache_n_op_cancelled;
index 61a6e78b85fa7ac77cc0114c3caa8d4beb8049af..9761df4fc2ab3ce87404dea97f8d1639ab90312c 100644 (file)
@@ -39,6 +39,7 @@ void fscache_operation_init(struct fscache_operation *op,
        op->processor = processor;
        op->release = release;
        INIT_LIST_HEAD(&op->pend_link);
+       fscache_stat(&fscache_n_op_initialised);
 }
 EXPORT_SYMBOL(fscache_operation_init);
 
index 3a722e8f230745090e5ee620aa5d0c1d1ec055ba..7cfa0aacdf6d53c41768150f80f27bc2b7cb18c0 100644 (file)
@@ -23,6 +23,7 @@ atomic_t fscache_n_op_run;
 atomic_t fscache_n_op_enqueue;
 atomic_t fscache_n_op_requeue;
 atomic_t fscache_n_op_deferred_release;
+atomic_t fscache_n_op_initialised;
 atomic_t fscache_n_op_release;
 atomic_t fscache_n_op_gc;
 atomic_t fscache_n_op_cancelled;
@@ -251,7 +252,8 @@ static int fscache_stats_show(struct seq_file *m, void *v)
                   atomic_read(&fscache_n_op_enqueue),
                   atomic_read(&fscache_n_op_cancelled),
                   atomic_read(&fscache_n_op_rejected));
-       seq_printf(m, "Ops    : dfr=%u rel=%u gc=%u\n",
+       seq_printf(m, "Ops    : ini=%u dfr=%u rel=%u gc=%u\n",
+                  atomic_read(&fscache_n_op_initialised),
                   atomic_read(&fscache_n_op_deferred_release),
                   atomic_read(&fscache_n_op_release),
                   atomic_read(&fscache_n_op_gc));