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 | ||
