sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget//translations/zh_CN/filesystems/caching/fscachemodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/zh_TW/filesystems/caching/fscachemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/it_IT/filesystems/caching/fscachemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/ja_JP/filesystems/caching/fscachemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/ko_KR/filesystems/caching/fscachemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hPortuguese (Brazilian)}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/pt_BR/filesystems/caching/fscachemodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/sp_SP/filesystems/caching/fscachemodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhI/var/lib/git/docbuild/linux/Documentation/filesystems/caching/fscache.rsthKubhsection)}(hhh](htitle)}(hGeneral Filesystem Cachingh]hGeneral Filesystem Caching}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hOverviewh]hOverview}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hThis facility is a general purpose cache for network filesystems, though it could be used for caching other things such as ISO9660 filesystems too.h]hThis facility is a general purpose cache for network filesystems, though it could be used for caching other things such as ISO9660 filesystems too.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hWFS-Cache mediates between cache backends (such as CacheFiles) and network filesystems::h]hVFS-Cache mediates between cache backends (such as CacheFiles) and network filesystems:}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh literal_block)}(hXu+---------+ | | +--------------+ | NFS |--+ | | | | | +-->| CacheFS | +---------+ | +----------+ | | /dev/hda5 | | | | | +--------------+ +---------+ +-------------->| | | | | +-------+ | |--+ | AFS |----->| | | FS-Cache | | | | netfs |-->| |--+ +---------+ +-->| lib | | | | | | | | | | +--------------+ +---------+ | +-------+ +----------+ | | | | | | +-->| CacheFiles | | 9P |--+ | /var/cache | | | +--------------+ +---------+h]hXu+---------+ | | +--------------+ | NFS |--+ | | | | | +-->| CacheFS | +---------+ | +----------+ | | /dev/hda5 | | | | | +--------------+ +---------+ +-------------->| | | | | +-------+ | |--+ | AFS |----->| | | FS-Cache | | | | netfs |-->| |--+ +---------+ +-->| lib | | | | | | | | | | +--------------+ +---------+ | +-------+ +----------+ | | | | | | +-->| CacheFiles | | 9P |--+ | /var/cache | | | +--------------+ +---------+}hjsbah}(h]h ]h"]h$]h&]hhuh1j hhhKhhhhubh)}(hOr to look at it another way, FS-Cache is a module that provides a caching facility to a network filesystem such that the cache is transparent to the user::h]hOr to look at it another way, FS-Cache is a module that provides a caching facility to a network filesystem such that the cache is transparent to the user:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK"hhhhubj )}(hX+---------+ | | | Server | | | +---------+ | NETWORK ~~~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | +----------+ V | | +---------+ | | | | | | | NFS |----->| FS-Cache | | | | |--+ +---------+ | | | +--------------+ +--------------+ | | | | | | | | V +----------+ +-->| CacheFiles |-->| Ext3 | +---------+ | /var/cache | | /dev/sda6 | | | +--------------+ +--------------+ | VFS | ^ ^ | | | | +---------+ +--------------+ | | KERNEL SPACE | | ~~~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|~~~~~~|~~~~ | USER SPACE | | V | | +---------+ +--------------+ | | | | | Process | | cachefilesd | | | | | +---------+ +--------------+h]hX+---------+ | | | Server | | | +---------+ | NETWORK ~~~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | | +----------+ V | | +---------+ | | | | | | | NFS |----->| FS-Cache | | | | |--+ +---------+ | | | +--------------+ +--------------+ | | | | | | | | V +----------+ +-->| CacheFiles |-->| Ext3 | +---------+ | /var/cache | | /dev/sda6 | | | +--------------+ +--------------+ | VFS | ^ ^ | | | | +---------+ +--------------+ | | KERNEL SPACE | | ~~~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|~~~~~~|~~~~ | USER SPACE | | V | | +---------+ +--------------+ | | | | | Process | | cachefilesd | | | | | +---------+ +--------------+}hj*sbah}(h]h ]h"]h$]h&]hhuh1j hhhK&hhhhubh)}(hFS-Cache does not follow the idea of completely loading every netfs file opened in its entirety into a cache before permitting it to be accessed and then serving the pages out of that cache rather than the netfs inode because:h]hFS-Cache does not follow the idea of completely loading every netfs file opened in its entirety into a cache before permitting it to be accessed and then serving the pages out of that cache rather than the netfs inode because:}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKGhhhhubh block_quote)}(hX(1) It must be practical to operate without a cache. (2) The size of any accessible file must not be limited to the size of the cache. (3) The combined size of all opened files (this includes mapped libraries) must not be limited to the size of the cache. (4) The user should not be forced to download an entire file just to do a one-off access of a small portion of it (such as might be done with the "file" program). h]henumerated_list)}(hhh](h list_item)}(h1It must be practical to operate without a cache. h]h)}(h0It must be practical to operate without a cache.h]h0It must be practical to operate without a cache.}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKKhjSubah}(h]h ]h"]h$]h&]uh1jQhjNubjR)}(hNThe size of any accessible file must not be limited to the size of the cache. h]h)}(hMThe size of any accessible file must not be limited to the size of the cache.h]hMThe size of any accessible file must not be limited to the size of the cache.}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKMhjkubah}(h]h ]h"]h$]h&]uh1jQhjNubjR)}(huThe combined size of all opened files (this includes mapped libraries) must not be limited to the size of the cache. h]h)}(htThe combined size of all opened files (this includes mapped libraries) must not be limited to the size of the cache.h]htThe combined size of all opened files (this includes mapped libraries) must not be limited to the size of the cache.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKPhjubah}(h]h ]h"]h$]h&]uh1jQhjNubjR)}(hThe user should not be forced to download an entire file just to do a one-off access of a small portion of it (such as might be done with the "file" program). h]h)}(hThe user should not be forced to download an entire file just to do a one-off access of a small portion of it (such as might be done with the "file" program).h]hThe user should not be forced to download an entire file just to do a one-off access of a small portion of it (such as might be done with the “file” program).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKShjubah}(h]h ]h"]h$]h&]uh1jQhjNubeh}(h]h ]h"]h$]h&]enumtypearabicprefix(suffix)uh1jLhjHubah}(h]h ]h"]h$]h&]uh1jFhhhKKhhhhubh)}(hVIt instead serves the cache out in chunks as and when requested by the netfs using it.h]hVIt instead serves the cache out in chunks as and when requested by the netfs using it.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKWhhhhubh)}(h+FS-Cache provides the following facilities:h]h+FS-Cache provides the following facilities:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK[hhhhubjG)}(hX * More than one cache can be used at once. Caches can be selected explicitly by use of tags. * Caches can be added / removed at any time, even whilst being accessed. * The netfs is provided with an interface that allows either party to withdraw caching facilities from a file (required for (2)). * The interface to the netfs returns as few errors as possible, preferring rather to let the netfs remain oblivious. * There are three types of cookie: cache, volume and data file cookies. Cache cookies represent the cache as a whole and are not normally visible to the netfs; the netfs gets a volume cookie to represent a collection of files (typically something that a netfs would get for a superblock); and data file cookies are used to cache data (something that would be got for an inode). * Volumes are matched using a key. This is a printable string that is used to encode all the information that might be needed to distinguish one superblock, say, from another. This would be a compound of things like cell name or server address, volume name or share path. It must be a valid pathname. * Cookies are matched using a key. This is a binary blob and is used to represent the object within a volume (so the volume key need not form part of the blob). This might include things like an inode number and uniquifier or a file handle. * Cookie resources are set up and pinned by marking the cookie in-use. This prevents the backing resources from being culled. Timed garbage collection is employed to eliminate cookies that haven't been used for a short while, thereby reducing resource overload. This is intended to be used when a file is opened or closed. A cookie can be marked in-use multiple times simultaneously; each mark must be unused. * Begin/end access functions are provided to delay cache withdrawal for the duration of an operation and prevent structs from being freed whilst we're looking at them. * Data I/O is done by asynchronous DIO to/from a buffer described by the netfs using an iov_iter. * An invalidation facility is available to discard data from the cache and to deal with I/O that's in progress that is accessing old data. * Cookies can be "retired" upon release, thereby causing the object to be removed from the cache. h]h bullet_list)}(hhh](jR)}(h\More than one cache can be used at once. Caches can be selected explicitly by use of tags. h]h)}(h[More than one cache can be used at once. Caches can be selected explicitly by use of tags.h]h[More than one cache can be used at once. Caches can be selected explicitly by use of tags.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK]hjubah}(h]h ]h"]h$]h&]uh1jQhjubjR)}(hGCaches can be added / removed at any time, even whilst being accessed. h]h)}(hFCaches can be added / removed at any time, even whilst being accessed.h]hFCaches can be added / removed at any time, even whilst being accessed.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK`hjubah}(h]h ]h"]h$]h&]uh1jQhjubjR)}(hThe netfs is provided with an interface that allows either party to withdraw caching facilities from a file (required for (2)). h]h)}(hThe netfs is provided with an interface that allows either party to withdraw caching facilities from a file (required for (2)).h]hThe netfs is provided with an interface that allows either party to withdraw caching facilities from a file (required for (2)).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKbhjubah}(h]h ]h"]h$]h&]uh1jQhjubjR)}(hsThe interface to the netfs returns as few errors as possible, preferring rather to let the netfs remain oblivious. h]h)}(hrThe interface to the netfs returns as few errors as possible, preferring rather to let the netfs remain oblivious.h]hrThe interface to the netfs returns as few errors as possible, preferring rather to let the netfs remain oblivious.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKehj2ubah}(h]h ]h"]h$]h&]uh1jQhjubjR)}(hXxThere are three types of cookie: cache, volume and data file cookies. Cache cookies represent the cache as a whole and are not normally visible to the netfs; the netfs gets a volume cookie to represent a collection of files (typically something that a netfs would get for a superblock); and data file cookies are used to cache data (something that would be got for an inode). h]h)}(hXwThere are three types of cookie: cache, volume and data file cookies. Cache cookies represent the cache as a whole and are not normally visible to the netfs; the netfs gets a volume cookie to represent a collection of files (typically something that a netfs would get for a superblock); and data file cookies are used to cache data (something that would be got for an inode).h]hXwThere are three types of cookie: cache, volume and data file cookies. Cache cookies represent the cache as a whole and are not normally visible to the netfs; the netfs gets a volume cookie to represent a collection of files (typically something that a netfs would get for a superblock); and data file cookies are used to cache data (something that would be got for an inode).}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhjJubah}(h]h ]h"]h$]h&]uh1jQhjubjR)}(hX.Volumes are matched using a key. This is a printable string that is used to encode all the information that might be needed to distinguish one superblock, say, from another. This would be a compound of things like cell name or server address, volume name or share path. It must be a valid pathname. h]h)}(hX-Volumes are matched using a key. This is a printable string that is used to encode all the information that might be needed to distinguish one superblock, say, from another. This would be a compound of things like cell name or server address, volume name or share path. It must be a valid pathname.h]hX-Volumes are matched using a key. This is a printable string that is used to encode all the information that might be needed to distinguish one superblock, say, from another. This would be a compound of things like cell name or server address, volume name or share path. It must be a valid pathname.}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKohjbubah}(h]h ]h"]h$]h&]uh1jQhjubjR)}(hCookies are matched using a key. This is a binary blob and is used to represent the object within a volume (so the volume key need not form part of the blob). This might include things like an inode number and uniquifier or a file handle. h]h)}(hCookies are matched using a key. This is a binary blob and is used to represent the object within a volume (so the volume key need not form part of the blob). This might include things like an inode number and uniquifier or a file handle.h]hCookies are matched using a key. This is a binary blob and is used to represent the object within a volume (so the volume key need not form part of the blob). This might include things like an inode number and uniquifier or a file handle.}(hj~hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKuhjzubah}(h]h ]h"]h$]h&]uh1jQhjubjR)}(hXCookie resources are set up and pinned by marking the cookie in-use. This prevents the backing resources from being culled. Timed garbage collection is employed to eliminate cookies that haven't been used for a short while, thereby reducing resource overload. This is intended to be used when a file is opened or closed. A cookie can be marked in-use multiple times simultaneously; each mark must be unused. h](h)}(hXBCookie resources are set up and pinned by marking the cookie in-use. This prevents the backing resources from being culled. Timed garbage collection is employed to eliminate cookies that haven't been used for a short while, thereby reducing resource overload. This is intended to be used when a file is opened or closed.h]hXDCookie resources are set up and pinned by marking the cookie in-use. This prevents the backing resources from being culled. Timed garbage collection is employed to eliminate cookies that haven’t been used for a short while, thereby reducing resource overload. This is intended to be used when a file is opened or closed.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKzhjubh)}(hVA cookie can be marked in-use multiple times simultaneously; each mark must be unused.h]hVA cookie can be marked in-use multiple times simultaneously; each mark must be unused.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubeh}(h]h ]h"]h$]h&]uh1jQhjubjR)}(hBegin/end access functions are provided to delay cache withdrawal for the duration of an operation and prevent structs from being freed whilst we're looking at them. h]h)}(hBegin/end access functions are provided to delay cache withdrawal for the duration of an operation and prevent structs from being freed whilst we're looking at them.h]hBegin/end access functions are provided to delay cache withdrawal for the duration of an operation and prevent structs from being freed whilst we’re looking at them.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jQhjubjR)}(h`Data I/O is done by asynchronous DIO to/from a buffer described by the netfs using an iov_iter. h]h)}(h_Data I/O is done by asynchronous DIO to/from a buffer described by the netfs using an iov_iter.h]h_Data I/O is done by asynchronous DIO to/from a buffer described by the netfs using an iov_iter.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jQhjubjR)}(hAn invalidation facility is available to discard data from the cache and to deal with I/O that's in progress that is accessing old data. h]h)}(hAn invalidation facility is available to discard data from the cache and to deal with I/O that's in progress that is accessing old data.h]hAn invalidation facility is available to discard data from the cache and to deal with I/O that’s in progress that is accessing old data.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jQhjubjR)}(haCookies can be "retired" upon release, thereby causing the object to be removed from the cache. h]h)}(h_Cookies can be "retired" upon release, thereby causing the object to be removed from the cache.h]hcCookies can be “retired” upon release, thereby causing the object to be removed from the cache.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jQhjubeh}(h]h ]h"]h$]h&]bullet*uh1jhhhK]hjubah}(h]h ]h"]h$]h&]uh1jFhhhK]hhhhubh)}(h*The netfs API to FS-Cache can be found in:h]h*The netfs API to FS-Cache can be found in:}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubjG)}(h0Documentation/filesystems/caching/netfs-api.rst h]h)}(h/Documentation/filesystems/caching/netfs-api.rsth]h/Documentation/filesystems/caching/netfs-api.rst}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj4ubah}(h]h ]h"]h$]h&]uh1jFhhhKhhhhubh)}(h2The cache backend API to FS-Cache can be found in:h]h2The cache backend API to FS-Cache can be found in:}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubjG)}(h3Documentation/filesystems/caching/backend-api.rst h]h)}(h1Documentation/filesystems/caching/backend-api.rsth]h1Documentation/filesystems/caching/backend-api.rst}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjZubah}(h]h ]h"]h$]h&]uh1jFhhhKhhhhubeh}(h]overviewah ]h"]overviewah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hStatistical Informationh]hStatistical Information}(hj}hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjzhhhhhKubh)}(hubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1j hjdubj )}(hhh](j)}(hhh]h)}(hAcquireh]hAcquire}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj^ubah}(h]h ]h"]h$]h&]morerowsKuh1jhj[ubj)}(hhh]h)}(hn=Nh]hn=N}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjvubah}(h]h ]h"]h$]h&]uh1jhj[ubj)}(hhh]h)}(h&Number of acquire cookie requests seenh]h&Number of acquire cookie requests seen}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1j hjdubj )}(hhh](j)}(hhh]h)}(hok=Nh]hok=N}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hNumber of acq reqs succeededh]hNumber of acq reqs succeeded}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j hjdubj )}(hhh](j)}(hhh]h)}(hoom=Nh]hoom=N}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h#Number of acq reqs failed on ENOMEMh]h#Number of acq reqs failed on ENOMEM}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j hjdubj )}(hhh](j)}(hhh]h)}(hLRUh]hLRU}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]morerowsKuh1jhjubj)}(hhh]h)}(hn=Nh]hn=N}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj3ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h&Number of cookies currently on the LRUh]h&Number of cookies currently on the LRU}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjJubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j hjdubj )}(hhh](j)}(hhh]h)}(hexp=Nh]hexp=N}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjjubah}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh]h)}(h(Number of cookies expired off of the LRUh]h(Number of cookies expired off of the LRU}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1j hjdubj )}(hhh](j)}(hhh]h)}(hrmv=Nh]hrmv=N}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h&Number of cookies removed from the LRUh]h&Number of cookies removed from the LRU}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j hjdubj )}(hhh](j)}(hhh]h)}(hdrp=Nh]hdrp=N}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h.Number of LRU'd cookies relinquished/withdrawnh]h0Number of LRU’d cookies relinquished/withdrawn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j hjdubj )}(hhh](j)}(hhh]h)}(hat=Nh]hat=N}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h!Time till next LRU cull (jiffies)h]h!Time till next LRU cull (jiffies)}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj&ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1j hjdubj )}(hhh](j)}(hhh]h)}(hInvalsh]hInvals}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjFubah}(h]h ]h"]h$]h&]uh1jhjCubj)}(hhh]h)}(hn=Nh]hn=N}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj]ubah}(h]h ]h"]h$]h&]uh1jhjCubj)}(hhh]h)}(hNumber of invalidationsh]hNumber of invalidations}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjtubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1j hjdubj )}(hhh](j)}(hhh]h)}(hUpdatesh]hUpdates}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]morerowsKuh1jhjubj)}(hhh]h)}(hn=Nh]hn=N}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h%Number of update cookie requests seenh]h%Number of update cookie requests seen}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j hjdubj )}(hhh](j)}(hhh]h)}(hrsz=Nh]hrsz=N}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hNumber of resize requestsh]hNumber of resize requests}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j hjdubj )}(hhh](j)}(hhh]h)}(hrsn=Nh]hrsn=N}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h!Number of skipped resize requestsh]h!Number of skipped resize requests}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj1ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j hjdubj )}(hhh](j)}(hhh]h)}(hRelinqsh]hRelinqs}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjQubah}(h]h ]h"]h$]h&]morerowsKuh1jhjNubj)}(hhh]h)}(hn=Nh]hn=N}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjiubah}(h]h ]h"]h$]h&]uh1jhjNubj)}(hhh]h)}(h)Number of relinquish cookie requests seenh]h)Number of relinquish cookie requests seen}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1j hjdubj )}(hhh](j)}(hhh]h)}(hrtr=Nh]hrtr=N}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h#Number of rlq reqs with retire=trueh]h#Number of rlq reqs with retire=true}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j hjdubj )}(hhh](j)}(hhh]h)}(hdrop=Nh]hdrop=N}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h3Number of cookies no longer blocking re-acquisitionh]h3Number of cookies no longer blocking re-acquisition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j hjdubj )}(hhh](j)}(hhh]h)}(hNoSpaceh]hNoSpace}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]morerowsKuh1jhj ubj)}(hhh]h)}(hnwr=Nh]hnwr=N}(hj) hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj& ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h5Number of write requests refused due to lack of spaceh]h5Number of write requests refused due to lack of space}(hj@ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj= ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1j hjdubj )}(hhh](j)}(hhh]h)}(hncr=Nh]hncr=N}(hj` hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj] ubah}(h]h ]h"]h$]h&]uh1jhjZ ubj)}(hhh]h)}(h6Number of create requests refused due to lack of spaceh]h6Number of create requests refused due to lack of space}(hjw hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjt ubah}(h]h ]h"]h$]h&]uh1jhjZ ubeh}(h]h ]h"]h$]h&]uh1j hjdubj )}(hhh](j)}(hhh]h)}(hcull=Nh]hcull=N}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h&Number of objects culled to make spaceh]h&Number of objects culled to make space}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1j hjdubj )}(hhh](j)}(hhh]h)}(hIOh]hIO}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]morerowsKuh1jhj ubj)}(hhh]h)}(hrd=Nh]hrd=N}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h&Number of read operations in the cacheh]h&Number of read operations in the cache}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1j hjdubj )}(hhh](j)}(hhh]h)}(hwr=Nh]hwr=N}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h'Number of write operations in the cacheh]h'Number of write operations in the cache}(hj4 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj1 ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1j hjdubeh}(h]h ]h"]h$]h&]uh1jbhjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubah}(h]h ]h"]h$]h&]uh1jhjzhhhhhNubh)}(h6Netfslib will also add some stats counters of its own.h]h6Netfslib will also add some stats counters of its own.}(hja hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjzhhubeh}(h]statistical-informationah ]h"]statistical informationah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h Cache Listh]h Cache List}(hjz hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjw hhhhhKubh)}(h*FS-Cache provides a list of cache cookies:h]h*FS-Cache provides a list of cache cookies:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjw hhubjG)}(h/proc/fs/fscache/cookies h]h)}(h/proc/fs/fscache/cookiesh]h/proc/fs/fscache/cookies}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jFhhhKhjw hhubh)}(hThis will look something like::h]hThis will look something like:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjw hhubj )}(h# cat /proc/fs/fscache/caches CACHE REF VOLS OBJS ACCES S NAME ======== ===== ===== ===== ===== = =============== 00000001 2 1 2123 1 A defaulth]h# cat /proc/fs/fscache/caches CACHE REF VOLS OBJS ACCES S NAME ======== ===== ===== ===== ===== = =============== 00000001 2 1 2123 1 A default}hj sbah}(h]h ]h"]h$]h&]hhuh1j hhhKhjw hhubh)}(hwhere the columns are:h]hwhere the columns are:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjw hhubjG)}(hX======= =============================================================== COLUMN DESCRIPTION ======= =============================================================== CACHE Cache cookie debug ID (also appears in traces) REF Number of references on the cache cookie VOLS Number of volumes cookies in this cache OBJS Number of cache objects in use ACCES Number of accesses pinning the cache S State NAME Name of the cache. ======= =============================================================== h]j)}(hhh]j)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthK?uh1jhj ubj)}(hhh]j )}(hhh](j)}(hhh]h)}(hCOLUMNh]hCOLUMN}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h DESCRIPTIONh]h DESCRIPTION}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1j hj ubah}(h]h ]h"]h$]h&]uh1jhj ubjc)}(hhh](j )}(hhh](j)}(hhh]h)}(hCACHEh]hCACHE}(hj? hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj< ubah}(h]h ]h"]h$]h&]uh1jhj9 ubj)}(hhh]h)}(h.Cache cookie debug ID (also appears in traces)h]h.Cache cookie debug ID (also appears in traces)}(hjV hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjS ubah}(h]h ]h"]h$]h&]uh1jhj9 ubeh}(h]h ]h"]h$]h&]uh1j hj6 ubj )}(hhh](j)}(hhh]h)}(hREFh]hREF}(hjv hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjs ubah}(h]h ]h"]h$]h&]uh1jhjp ubj)}(hhh]h)}(h(Number of references on the cache cookieh]h(Number of references on the cache cookie}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhjp ubeh}(h]h ]h"]h$]h&]uh1j hj6 ubj )}(hhh](j)}(hhh]h)}(hVOLSh]hVOLS}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h'Number of volumes cookies in this cacheh]h'Number of volumes cookies in this cache}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1j hj6 ubj )}(hhh](j)}(hhh]h)}(hOBJSh]hOBJS}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hNumber of cache objects in useh]hNumber of cache objects in use}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1j hj6 ubj )}(hhh](j)}(hhh]h)}(hACCESh]hACCES}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h$Number of accesses pinning the cacheh]h$Number of accesses pinning the cache}(hj2 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj/ ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1j hj6 ubj )}(hhh](j)}(hhh]h)}(hSh]hS}(hjR hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjO ubah}(h]h ]h"]h$]h&]uh1jhjL ubj)}(hhh]h)}(hStateh]hState}(hji hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjf ubah}(h]h ]h"]h$]h&]uh1jhjL ubeh}(h]h ]h"]h$]h&]uh1j hj6 ubj )}(hhh](j)}(hhh]h)}(hNAMEh]hNAME}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hName of the cache.h]hName of the cache.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1j hj6 ubeh}(h]h ]h"]h$]h&]uh1jbhj ubeh}(h]h ]h"]h$]h&]colsKuh1jhj ubah}(h]h ]h"]h$]h&]uh1jhj ubah}(h]h ]h"]h$]h&]uh1jFhhhKhjw hhubh)}(hOThe state can be (-) Inactive, (P)reparing, (A)ctive, (E)rror or (W)ithdrawing.h]hOThe state can be (-) Inactive, (P)reparing, (A)ctive, (E)rror or (W)ithdrawing.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjw hhubeh}(h] cache-listah ]h"] cache listah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h Volume Listh]h Volume List}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKubh)}(h+FS-Cache provides a list of volume cookies:h]h+FS-Cache provides a list of volume cookies:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubjG)}(h/proc/fs/fscache/volumes h]h)}(h/proc/fs/fscache/volumesh]h/proc/fs/fscache/volumes}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jFhhhMhj hhubh)}(hThis will look something like::h]hThis will look something like:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj hhubj )}(hVOLUME REF nCOOK ACC FL CACHE KEY ======== ===== ===== === == =============== ================ 00000001 55 54 1 00 default afs,example.com,100058h]hVOLUME REF nCOOK ACC FL CACHE KEY ======== ===== ===== === == =============== ================ 00000001 55 54 1 00 default afs,example.com,100058}hj. sbah}(h]h ]h"]h$]h&]hhuh1j hhhMhj hhubh)}(hwhere the columns are:h]hwhere the columns are:}(hj< hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hj hhubjG)}(hX======= =============================================================== COLUMN DESCRIPTION ======= =============================================================== VOLUME The volume cookie debug ID (also appears in traces) REF Number of references on the volume cookie nCOOK Number of cookies in the volume ACC Number of accesses pinning the cache FL Flags on the volume cookie CACHE Name of the cache or "-" KEY The indexing key for the volume ======= =============================================================== h]j)}(hhh]j)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjQ ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthK?uh1jhjQ ubj)}(hhh]j )}(hhh](j)}(hhh]h)}(hCOLUMNh]hCOLUMN}(hjq hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hjn ubah}(h]h ]h"]h$]h&]uh1jhjk ubj)}(hhh]h)}(h DESCRIPTIONh]h DESCRIPTION}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hj ubah}(h]h ]h"]h$]h&]uh1jhjk ubeh}(h]h ]h"]h$]h&]uh1j hjh ubah}(h]h ]h"]h$]h&]uh1jhjQ ubjc)}(hhh](j )}(hhh](j)}(hhh]h)}(hVOLUMEh]hVOLUME}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h3The volume cookie debug ID (also appears in traces)h]h3The volume cookie debug ID (also appears in traces)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j)}(hhh]h)}(hREFh]hREF}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h)Number of references on the volume cookieh]h)Number of references on the volume cookie}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j)}(hhh]h)}(hnCOOKh]hnCOOK}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hNumber of cookies in the volumeh]hNumber of cookies in the volume}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj3ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j)}(hhh]h)}(hACCh]hACC}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjSubah}(h]h ]h"]h$]h&]uh1jhjPubj)}(hhh]h)}(h$Number of accesses pinning the cacheh]h$Number of accesses pinning the cache}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjjubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j)}(hhh]h)}(hFLh]hFL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hFlags on the volume cookieh]hFlags on the volume cookie}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j)}(hhh]h)}(hCACHEh]hCACHE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hName of the cache or "-"h]hName of the cache or “-”}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j)}(hhh]h)}(hKEYh]hKEY}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hThe indexing key for the volumeh]hThe indexing key for the volume}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1jbhjQ ubeh}(h]h ]h"]h$]h&]colsKuh1jhjN ubah}(h]h ]h"]h$]h&]uh1jhjJ ubah}(h]h ]h"]h$]h&]uh1jFhhhM hj hhubeh}(h] volume-listah ]h"] volume listah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h Cookie Listh]h Cookie List}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhhhhhMubh)}(h$FS-Cache provides a list of cookies:h]h$FS-Cache provides a list of cookies:}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjMhhubjG)}(h/proc/fs/fscache/cookies h]h)}(h/proc/fs/fscache/cookiesh]h/proc/fs/fscache/cookies}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjlubah}(h]h ]h"]h$]h&]uh1jFhhhMhjMhhubh)}(hThis will look something like::h]hThis will look something like:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hjMhhubj )}(hX*# head /proc/fs/fscache/cookies COOKIE VOLUME REF ACT ACC S FL DEF ======== ======== === === === = == ================ 00000435 00000001 1 0 -1 - 08 0000000201d080070000000000000000, 0000000000000000 00000436 00000001 1 0 -1 - 00 0000005601d080080000000000000000, 0000000000000051 00000437 00000001 1 0 -1 - 08 00023b3001d0823f0000000000000000, 0000000000000000 00000438 00000001 1 0 -1 - 08 0000005801d0807b0000000000000000, 0000000000000000 00000439 00000001 1 0 -1 - 08 00023b3201d080a10000000000000000, 0000000000000000 0000043a 00000001 1 0 -1 - 08 00023b3401d080a30000000000000000, 0000000000000000 0000043b 00000001 1 0 -1 - 08 00023b3601d080b30000000000000000, 0000000000000000 0000043c 00000001 1 0 -1 - 08 00023b3801d080b40000000000000000, 0000000000000000h]hX*# head /proc/fs/fscache/cookies COOKIE VOLUME REF ACT ACC S FL DEF ======== ======== === === === = == ================ 00000435 00000001 1 0 -1 - 08 0000000201d080070000000000000000, 0000000000000000 00000436 00000001 1 0 -1 - 00 0000005601d080080000000000000000, 0000000000000051 00000437 00000001 1 0 -1 - 08 00023b3001d0823f0000000000000000, 0000000000000000 00000438 00000001 1 0 -1 - 08 0000005801d0807b0000000000000000, 0000000000000000 00000439 00000001 1 0 -1 - 08 00023b3201d080a10000000000000000, 0000000000000000 0000043a 00000001 1 0 -1 - 08 00023b3401d080a30000000000000000, 0000000000000000 0000043b 00000001 1 0 -1 - 08 00023b3601d080b30000000000000000, 0000000000000000 0000043c 00000001 1 0 -1 - 08 00023b3801d080b40000000000000000, 0000000000000000}hjsbah}(h]h ]h"]h$]h&]hhuh1j hhhM"hjMhhubh)}(hwhere the columns are:h]hwhere the columns are:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM.hjMhhubjG)}(hX6======= =============================================================== COLUMN DESCRIPTION ======= =============================================================== COOKIE The cookie debug ID (also appears in traces) VOLUME The parent volume cookie debug ID REF Number of references on the volume cookie ACT Number of times the cookie is marked for in use ACC Number of access pins in the cookie S State of the cookie FL Flags on the cookie DEF Key, auxiliary data ======= =============================================================== h]j)}(hhh]j)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthK?uh1jhjubj)}(hhh]j )}(hhh](j)}(hhh]h)}(hCOLUMNh]hCOLUMN}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM1hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h DESCRIPTIONh]h DESCRIPTION}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM1hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1jhjubjc)}(hhh](j )}(hhh](j)}(hhh]h)}(hCOOKIEh]hCOOKIE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM3hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h,The cookie debug ID (also appears in traces)h]h,The cookie debug ID (also appears in traces)}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM3hj)ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j)}(hhh]h)}(hVOLUMEh]hVOLUME}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM4hjIubah}(h]h ]h"]h$]h&]uh1jhjFubj)}(hhh]h)}(h!The parent volume cookie debug IDh]h!The parent volume cookie debug ID}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM4hj`ubah}(h]h ]h"]h$]h&]uh1jhjFubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j)}(hhh]h)}(hREFh]hREF}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM5hjubah}(h]h ]h"]h$]h&]uh1jhj}ubj)}(hhh]h)}(h)Number of references on the volume cookieh]h)Number of references on the volume cookie}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM5hjubah}(h]h ]h"]h$]h&]uh1jhj}ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j)}(hhh]h)}(hACTh]hACT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM6hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h/Number of times the cookie is marked for in useh]h/Number of times the cookie is marked for in use}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM6hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j)}(hhh]h)}(hACCh]hACC}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM7hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h#Number of access pins in the cookieh]h#Number of access pins in the cookie}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM7hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j)}(hhh]h)}(hjT h]hS}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM8hj%ubah}(h]h ]h"]h$]h&]uh1jhj"ubj)}(hhh]h)}(hState of the cookieh]hState of the cookie}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM8hj;ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j)}(hhh]h)}(hFLh]hFL}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM9hj[ubah}(h]h ]h"]h$]h&]uh1jhjXubj)}(hhh]h)}(hFlags on the cookieh]hFlags on the cookie}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM9hjrubah}(h]h ]h"]h$]h&]uh1jhjXubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j)}(hhh]h)}(hDEFh]hDEF}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM:hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hKey, auxiliary datah]hKey, auxiliary data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM:hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1jbhjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jFhhhM0hjMhhubeh}(h] cookie-listah ]h"] cookie listah$]h&]uh1hhhhhhhhMubh)}(hhh](h)}(h Debuggingh]h Debugging}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhM?ubh)}(hIf CONFIG_NETFS_DEBUG is enabled, the FS-Cache facility and NETFS support can have runtime debugging enabled by adjusting the value in::h]hIf CONFIG_NETFS_DEBUG is enabled, the FS-Cache facility and NETFS support can have runtime debugging enabled by adjusting the value in:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMAhjhhubj )}(h"/sys/module/netfs/parameters/debugh]h"/sys/module/netfs/parameters/debug}hjsbah}(h]h ]h"]h$]h&]hhuh1j hhhMDhjhhubh)}(h1This is a bitmask of debugging streams to enable:h]h1This is a bitmask of debugging streams to enable:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMFhjhhubjG)}(hX======= ======= =============================== ======================= BIT VALUE STREAM POINT ======= ======= =============================== ======================= 0 1 Cache management Function entry trace 1 2 Function exit trace 2 4 General 3 8 Cookie management Function entry trace 4 16 Function exit trace 5 32 General 6-8 (Not used) 9 512 I/O operation management Function entry trace 10 1024 Function exit trace 11 2048 General ======= ======= =============================== ======================= h]j)}(hhh]j)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj)ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj)ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj)ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj)ubj)}(hhh]j )}(hhh](j)}(hhh]h)}(hBITh]hBIT}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMIhjZubah}(h]h ]h"]h$]h&]uh1jhjWubj)}(hhh]h)}(hVALUEh]hVALUE}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMIhjqubah}(h]h ]h"]h$]h&]uh1jhjWubj)}(hhh]h)}(hSTREAMh]hSTREAM}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMIhjubah}(h]h ]h"]h$]h&]uh1jhjWubj)}(hhh]h)}(hPOINTh]hPOINT}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMIhjubah}(h]h ]h"]h$]h&]uh1jhjWubeh}(h]h ]h"]h$]h&]uh1j hjTubah}(h]h ]h"]h$]h&]uh1jhj)ubjc)}(hhh](j )}(hhh](j)}(hhh]h)}(h0h]h0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h1h]h1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hCache managementh]hCache management}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hFunction entry traceh]hFunction entry trace}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMKhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh](j)}(hhh]h)}(hjh]h1}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMLhj-ubah}(h]h ]h"]h$]h&]uh1jhj*ubj)}(hhh]h)}(h2h]h2}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMLhjCubah}(h]h ]h"]h$]h&]uh1jhj*ubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhj*ubj)}(hhh]h)}(hFunction exit traceh]hFunction exit trace}(hjfhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMLhjcubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh](j)}(hhh]h)}(hjHh]h2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h4h]h4}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMMhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hGeneralh]hGeneral}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMMhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh](j)}(hhh]h)}(h3h]h3}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMNhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h8h]h8}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMNhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hCookie managementh]hCookie management}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMNhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hFunction entry traceh]hFunction entry trace}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMNhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh](j)}(hhh]h)}(hjh]h4}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMOhj>ubah}(h]h ]h"]h$]h&]uh1jhj;ubj)}(hhh]h)}(h16h]h16}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMOhjTubah}(h]h ]h"]h$]h&]uh1jhj;ubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhj;ubj)}(hhh]h)}(hFunction exit traceh]hFunction exit trace}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMOhjtubah}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh](j)}(hhh]h)}(h5h]h5}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMPhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h32h]h32}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMPhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hGeneralh]hGeneral}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMPhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh](j)}(hhh]h)}(h6-8h]h6-8}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMQhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h (Not used)h]h (Not used)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMQhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh](j)}(hhh]h)}(h9h]h9}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMRhj4ubah}(h]h ]h"]h$]h&]uh1jhj1ubj)}(hhh]h)}(h512h]h512}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMRhjKubah}(h]h ]h"]h$]h&]uh1jhj1ubj)}(hhh]h)}(hI/O operation managementh]hI/O operation management}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMRhjbubah}(h]h ]h"]h$]h&]uh1jhj1ubj)}(hhh]h)}(hFunction entry traceh]hFunction entry trace}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMRhjyubah}(h]h ]h"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh](j)}(hhh]h)}(h10h]h10}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMShjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h1024h]h1024}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMShjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hFunction exit traceh]hFunction exit trace}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMShjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j hjubj )}(hhh](j)}(hhh]h)}(h11h]h11}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMThjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h2048h]h2048}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMThjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hGeneralh]hGeneral}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMThj'ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1j hjubeh}(h]h ]h"]h$]h&]uh1jbhj)ubeh}(h]h ]h"]h$]h&]colsKuh1jhj&ubah}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jFhhhMHhjhhubh)}(hpThe appropriate set of values should be OR'd together and the result written to the control file. For example::h]hqThe appropriate set of values should be OR’d together and the result written to the control file. For example:}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMWhjhhubj )}(h5echo $((1|8|512)) >/sys/module/netfs/parameters/debugh]h5echo $((1|8|512)) >/sys/module/netfs/parameters/debug}hjksbah}(h]h ]h"]h$]h&]hhuh1j hhhMZhjhhubh)}(h*will turn on all function entry debugging.h]h*will turn on all function entry debugging.}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM\hjhhubeh}(h] debuggingah ]h"] debuggingah$]h&]uh1hhhhhhhhM?ubeh}(h]general-filesystem-cachingah ]h"]general filesystem cachingah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksjfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourcehnj _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jjjwjtjt jq j j jJjGjjjju nametypes}(jjwjt j jJjjuh}(jhjthjq jzj jw jGj jjMjju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.