diff options
author | Tejun Heo <tj@kernel.org> | 2010-07-20 16:09:01 -0400 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2010-07-22 16:58:34 -0400 |
commit | 8b8edefa2fffbff97f9eec8b70e78ae23abad1a0 (patch) | |
tree | 7f0efac8adb9c9ed7be8af63e51510954f1c51dc /Documentation/filesystems/caching | |
parent | e120153ddf8620fd0a194d301e9c5a8b28483bb5 (diff) |
fscache: convert object to use workqueue instead of slow-work
Make fscache object state transition callbacks use workqueue instead
of slow-work. New dedicated unbound CPU workqueue fscache_object_wq
is created. get/put callbacks are renamed and modified to take
@object and called directly from the enqueue wrapper and the work
function. While at it, make all open coded instances of get/put to
use fscache_get/put_object().
* Unbound workqueue is used.
* work_busy() output is printed instead of slow-work flags in object
debugging outputs. They mean basically the same thing bit-for-bit.
* sysctl fscache.object_max_active added to control concurrency. The
default value is nr_cpus clamped between 4 and
WQ_UNBOUND_MAX_ACTIVE.
* slow_work_sleep_till_thread_needed() is replaced with fscache
private implementation fscache_object_sleep_till_congested() which
waits on fscache_object_wq congestion.
* debugfs support is dropped for now. Tracing API based debug
facility is planned to be added.
Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'Documentation/filesystems/caching')
-rw-r--r-- | Documentation/filesystems/caching/fscache.txt | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/Documentation/filesystems/caching/fscache.txt b/Documentation/filesystems/caching/fscache.txt index a91e2e2095b0..770267af5b3e 100644 --- a/Documentation/filesystems/caching/fscache.txt +++ b/Documentation/filesystems/caching/fscache.txt | |||
@@ -343,8 +343,8 @@ This will look something like: | |||
343 | [root@andromeda ~]# head /proc/fs/fscache/objects | 343 | [root@andromeda ~]# head /proc/fs/fscache/objects |
344 | OBJECT PARENT STAT CHLDN OPS OOP IPR EX READS EM EV F S | NETFS_COOKIE_DEF TY FL NETFS_DATA OBJECT_KEY, AUX_DATA | 344 | OBJECT PARENT STAT CHLDN OPS OOP IPR EX READS EM EV F S | NETFS_COOKIE_DEF TY FL NETFS_DATA OBJECT_KEY, AUX_DATA |
345 | ======== ======== ==== ===== === === === == ===== == == = = | ================ == == ================ ================ | 345 | ======== ======== ==== ===== === === === == ===== == == = = | ================ == == ================ ================ |
346 | 17e4b 2 ACTV 0 0 0 0 0 0 7b 4 0 8 | NFS.fh DT 0 ffff88001dd82820 010006017edcf8bbc93b43298fdfbe71e50b57b13a172c0117f38472, e567634700000000000000000000000063f2404a000000000000000000000000c9030000000000000000000063f2404a | 346 | 17e4b 2 ACTV 0 0 0 0 0 0 7b 4 0 0 | NFS.fh DT 0 ffff88001dd82820 010006017edcf8bbc93b43298fdfbe71e50b57b13a172c0117f38472, e567634700000000000000000000000063f2404a000000000000000000000000c9030000000000000000000063f2404a |
347 | 1693a 2 ACTV 0 0 0 0 0 0 7b 4 0 8 | NFS.fh DT 0 ffff88002db23380 010006017edcf8bbc93b43298fdfbe71e50b57b1e0162c01a2df0ea6, 420ebc4a000000000000000000000000420ebc4a0000000000000000000000000e1801000000000000000000420ebc4a | 347 | 1693a 2 ACTV 0 0 0 0 0 0 7b 4 0 0 | NFS.fh DT 0 ffff88002db23380 010006017edcf8bbc93b43298fdfbe71e50b57b1e0162c01a2df0ea6, 420ebc4a000000000000000000000000420ebc4a0000000000000000000000000e1801000000000000000000420ebc4a |
348 | 348 | ||
349 | where the first set of columns before the '|' describe the object: | 349 | where the first set of columns before the '|' describe the object: |
350 | 350 | ||
@@ -362,7 +362,7 @@ where the first set of columns before the '|' describe the object: | |||
362 | EM Object's event mask | 362 | EM Object's event mask |
363 | EV Events raised on this object | 363 | EV Events raised on this object |
364 | F Object flags | 364 | F Object flags |
365 | S Object slow-work work item flags | 365 | S Object work item busy state mask (1:pending 2:running) |
366 | 366 | ||
367 | and the second set of columns describe the object's cookie, if present: | 367 | and the second set of columns describe the object's cookie, if present: |
368 | 368 | ||
@@ -395,8 +395,8 @@ and the following paired letters: | |||
395 | w Show objects that don't have pending writes | 395 | w Show objects that don't have pending writes |
396 | R Show objects that have outstanding reads | 396 | R Show objects that have outstanding reads |
397 | r Show objects that don't have outstanding reads | 397 | r Show objects that don't have outstanding reads |
398 | S Show objects that have slow work queued | 398 | S Show objects that have work queued |
399 | s Show objects that don't have slow work queued | 399 | s Show objects that don't have work queued |
400 | 400 | ||
401 | If neither side of a letter pair is given, then both are implied. For example: | 401 | If neither side of a letter pair is given, then both are implied. For example: |
402 | 402 | ||