[Linux-cachefs] is there a way to set a minimum file size for fs-cache
Amit Kshirsagar
amit.kshirsagar at yahoo.co.in
Tue Dec 14 08:11:52 UTC 2010
Hi,
We are hitting following issue on a fsc mounted nfs file system.
$cat testfile.txt <-- on client
cat: testfile.txt: No such file or directory
Then on nfs server testfile.txtx is created.
$cat testfile.txt <-- on client (after 8 sec)
cat: testfile.txt: No such file or directory
$cat testfile.txt <-- on client (after 15-20 sec)
This is line one
$
This clearly due to negative cookie. I enabled debugging and dmesg showed following:
[mount.] ==> __fscache_acquire_cookie({FSDEF.netfs},{NFS.server},ffff88031a7e6c00)
[mount.] <== __fscache_acquire_cookie() = ffff88031cd896a8
[mount.] ==> __fscache_acquire_cookie({NFS.server},{NFS.super},ffff88031cb1e400)
[mount.] <== __fscache_acquire_cookie() = ffff88031cd89660
[mount.] ==> __fscache_acquire_cookie({NFS.server},{NFS.super},ffff88030a4bdc00)
[mount.] <== __fscache_acquire_cookie() = ffff88031cd89ae0
[cat ] ==> __fscache_acquire_cookie({NFS.super},{NFS.fh},ffff8801fe73a0c0)
[cat ] ==> fscache_acquire_non_index_cookie()
[cat ] ==> fscache_select_cache_for_object()
[cat ] <== fscache_select_cache_for_object() = ffff88031ac47a00 [parent]
[cat ] cache mycache
[cat ] ==> fscache_alloc_object(ffff88031ac47a00,ffff88031cd89cd8{NFS.fh})
[cat ] ALLOC OBJ12: NFS.fh {0}
[cat ] ==> fscache_alloc_object(ffff88031ac47a00,ffff88031cd89fa8{NFS.super})
[cat ] <== fscache_alloc_object() = 0 [found]
[cat ] ==> fscache_attach_object({NFS.fh},{OBJ12})
[cat ] <== fscache_attach_object() = 0
[cat ] <== fscache_alloc_object() = 0
[cat ] ==> fscache_enqueue_object({OBJ12})
[cat ] <== fscache_acquire_non_index_cookie() = 0 [deferred]
[cat ] <== __fscache_acquire_cookie() = ffff88031cd89cd8
[cat ] ==> __fscache_read_or_alloc_pages(ffff88031cd89cd8,,1,,,)
[cat ] ==> fscache_wait_for_deferred_lookup()
[kworke] ==> fscache_object_work_func({OBJ12})
[kworke] ==> fscache_object_state_machine({OBJ12,OBJECT_INIT,0})
[kworke] ==> fscache_initialise_object()
[kworke] parent OBJECT_ACTIVE
[kworke] go
[kworke] <== fscache_initialise_object()
[kworke] <== fscache_object_state_machine() [->OBJECT_LOOKING_UP]
[kworke] ==> fscache_enqueue_object({OBJ12})
[kworke] ==> fscache_object_work_func({OBJ12})
[kworke] ==> fscache_object_state_machine({OBJ12,OBJECT_LOOKING_UP,0})
[kworke] ==> fscache_lookup_object()
[kworke] LOOKUP "NFS.super/NFS.fh" in "mycache"
[kworke] ==> fscache_object_lookup_negative({OBJ12,OBJECT_LOOKING_UP})
[kworke] wake up lookup ffff88031cd89d18
[kworke] <== fscache_object_lookup_negative()
[kworke] ==> fscache_obtained_object({OBJ12,OBJECT_CREATING})
[kworke] <== fscache_obtained_object()
[kworke] <== fscache_lookup_object()
[kworke] <== fscache_object_state_machine() [->OBJECT_AVAILABLE]
[cat ] <== fscache_wait_for_deferred_lookup() = 0 [dly]
[kworke] ==> fscache_enqueue_object({OBJ12})
[cat ] ==> fscache_submit_op({OBJ12 OP23},{1})
[kworke] ==> fscache_object_work_func({OBJ12})
[cat ] - mark ffffea0006e7f1c0{0}
[cat ] ==> fscache_put_operation({OBJ12 OP23,1})
[cat ] PUT OP
[cat ] ==> fscache_release_retrieval_op({OP23})
[cat ] <== fscache_release_retrieval_op()
[kworke] ==> fscache_object_state_machine({OBJ12,OBJECT_AVAILABLE,0})
[kworke] ==> fscache_object_available({OBJ12})
[kworke] ==> fscache_done_parent_op(OBJ12 {OBJ6,1})
[kworke] ==> fscache_enqueue_dependents({OBJ12})
[cat ] woke 0 ops on OBJ12
[cat ] <== fscache_put_operation() [done]
[cat ] <== __fscache_read_or_alloc_pages() = -61
[kworke] <== fscache_object_available()
[kworke] <== fscache_object_state_machine() [->OBJECT_ACTIVE]
[kworke] ==> __fscache_write_page(ffff88031cd89cd8,1009,)
[kworke] store limit 1
[kworke] ==> fscache_submit_op({OBJ12 OP25},{1})
[kworke] ==> fscache_enqueue_operation({OBJ12 OP25,1})
[kworke] queue async
[kworke] ==> fscache_put_operation({OBJ12 OP25,2})
[kworke] <== __fscache_write_page() = 0
[kworke] ==> fscache_op_work_func({OBJ12 OP25,1})
[kworke] ==> fscache_write_op({OP25,1})
[kworke] gang 1 [0]
[kworke] ==> fscache_enqueue_operation({OBJ12 OP25,1})
[kworke] queue async
[kworke] <== fscache_write_op()
[kworke] ==> fscache_put_operation({OBJ12 OP25,2})
[kworke] <== fscache_op_work_func()
[kworke] ==> fscache_op_work_func({OBJ12 OP25,1})
[kworke] ==> fscache_write_op({OP25,1})
[kworke] cease
[kworke] <== fscache_write_op()
[kworke] ==> fscache_put_operation({OBJ12 OP25,1})
[kworke] PUT OP
[kworke] ==> fscache_release_write_op({OP25})
[kworke] woke 0 ops on OBJ12
[kworke] <== fscache_put_operation() [done]
[kworke] <== fscache_op_work_func()
[umount] ==> __fscache_relinquish_cookie(ffff88031cd89ae0{NFS.super,ffff88030a4bdc00},0)
[umount] ==> __fscache_cookie_put(ffff88031cd89ae0)
[umount] FREE COOKIE ffff88031cd89ae0
[umount] <== __fscache_cookie_put()
[umount] <== __fscache_relinquish_cookie()
[umount] ==> __fscache_relinquish_cookie(ffff88031cd89660{NFS.super,ffff88031cb1e400},0)
[umount] ==> __fscache_cookie_put(ffff88031cd89660)
[umount] FREE COOKIE ffff88031cd89660
[umount] <== __fscache_cookie_put()
[umount] <== __fscache_relinquish_cookie()
[umount] ==> __fscache_relinquish_cookie(ffff88031cd896a8{NFS.server,ffff88031a7e6c00},0)
[umount] ==> __fscache_cookie_put(ffff88031cd896a8)
[umount] FREE COOKIE ffff88031cd896a8
[umount] <== __fscache_cookie_put()
[umount] <== __fscache_relinquish_cookie()
My question is :
1. Is there a way to set a minimum file size for fs-cache?
2. Is there a way to change/tune negative cookie refresh time?
Thanks in advance,
Amit
More information about the Linux-cachefs
mailing list