Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) .. SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3) ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4) General Filesystem Caching
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) ==========================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) Overview
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) ========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) This facility is a general purpose cache for network filesystems, though it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) could be used for caching other things such as ISO9660 filesystems too.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) FS-Cache mediates between cache backends (such as CacheFS) and network
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) filesystems::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) 	+---------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) 	|         |                        +--------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) 	|   NFS   |--+                     |              |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) 	|         |  |                 +-->|   CacheFS    |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) 	+---------+  |   +----------+  |   |  /dev/hda5   |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) 	             |   |          |  |   +--------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) 	+---------+  +-->|          |  |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) 	|         |      |          |--+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) 	|   AFS   |----->| FS-Cache |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) 	|         |      |          |--+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) 	+---------+  +-->|          |  |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) 	             |   |          |  |   +--------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) 	+---------+  |   +----------+  |   |              |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) 	|         |  |                 +-->|  CacheFiles  |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) 	|  ISOFS  |--+                     |  /var/cache  |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) 	|         |                        +--------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) 	+---------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) Or to look at it another way, FS-Cache is a module that provides a caching
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) facility to a network filesystem such that the cache is transparent to the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) user::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) 	+---------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) 	|         |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) 	| Server  |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) 	|         |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) 	+---------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) 	     |                  NETWORK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) 	~~~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) 	     |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) 	     |           +----------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) 	     V           |          |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) 	+---------+      |          |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) 	|         |      |          |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) 	|   NFS   |----->| FS-Cache |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) 	|         |      |          |--+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) 	+---------+      |          |  |   +--------------+   +--------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) 	     |           |          |  |   |              |   |              |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) 	     V           +----------+  +-->|  CacheFiles  |-->|  Ext3        |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) 	+---------+                        |  /var/cache  |   |  /dev/sda6   |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) 	|         |                        +--------------+   +--------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) 	|   VFS   |                                ^                     ^
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) 	|         |                                |                     |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) 	+---------+                                +--------------+      |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) 	     |                  KERNEL SPACE                      |      |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) 	~~~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|~~~~~~|~~~~
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) 	     |                  USER SPACE                        |      |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 	     V                                                    |      |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) 	+---------+                                           +--------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 	|         |                                           |              |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) 	| Process |                                           | cachefilesd  |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 	|         |                                           |              |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) 	+---------+                                           +--------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) FS-Cache does not follow the idea of completely loading every netfs file
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) opened in its entirety into a cache before permitting it to be accessed and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) then serving the pages out of that cache rather than the netfs inode because:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75)  (1) It must be practical to operate without a cache.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77)  (2) The size of any accessible file must not be limited to the size of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78)      cache.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80)  (3) The combined size of all opened files (this includes mapped libraries)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81)      must not be limited to the size of the cache.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83)  (4) The user should not be forced to download an entire file just to do a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84)      one-off access of a small portion of it (such as might be done with the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85)      "file" program).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) It instead serves the cache out in PAGE_SIZE chunks as and when requested by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) the netfs('s) using it.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) FS-Cache provides the following facilities:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93)  (1) More than one cache can be used at once.  Caches can be selected
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94)      explicitly by use of tags.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96)  (2) Caches can be added / removed at any time.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98)  (3) The netfs is provided with an interface that allows either party to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99)      withdraw caching facilities from a file (required for (2)).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101)  (4) The interface to the netfs returns as few errors as possible, preferring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102)      rather to let the netfs remain oblivious.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104)  (5) Cookies are used to represent indices, files and other objects to the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105)      netfs.  The simplest cookie is just a NULL pointer - indicating nothing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106)      cached there.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)  (6) The netfs is allowed to propose - dynamically - any index hierarchy it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109)      desires, though it must be aware that the index search function is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110)      recursive, stack space is limited, and indices can only be children of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111)      indices.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113)  (7) Data I/O is done direct to and from the netfs's pages.  The netfs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114)      indicates that page A is at index B of the data-file represented by cookie
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115)      C, and that it should be read or written.  The cache backend may or may
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116)      not start I/O on that page, but if it does, a netfs callback will be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117)      invoked to indicate completion.  The I/O may be either synchronous or
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118)      asynchronous.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120)  (8) Cookies can be "retired" upon release.  At this point FS-Cache will mark
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121)      them as obsolete and the index hierarchy rooted at that point will get
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122)      recycled.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124)  (9) The netfs provides a "match" function for index searches.  In addition to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125)      saying whether a match was made or not, this can also specify that an
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126)      entry should be updated or deleted.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) (10) As much as possible is done asynchronously.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) FS-Cache maintains a virtual indexing tree in which all indices, files, objects
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) and pages are kept.  Bits of this tree may actually reside in one or more
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) caches::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135)                                             FSDEF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136)                                               |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137)                          +------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138)                          |                                    |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139)                         NFS                                  AFS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140)                          |                                    |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141)             +--------------------------+                +-----------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142)             |                          |                |           |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143)          homedir                     mirror          afs.org   redhat.com
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144)             |                          |                            |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145)       +------------+           +---------------+              +----------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146)       |            |           |               |              |          |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147)     00001        00002       00007           00125        vol00001   vol00002
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148)       |            |           |               |                         |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149)   +---+---+     +-----+      +---+      +------+------+            +-----+----+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150)   |   |   |     |     |      |   |      |      |      |            |     |    |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151)  PG0 PG1 PG2   PG0  XATTR   PG0 PG1   DIRENT DIRENT DIRENT        R/W   R/O  Bak
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152)                       |                                            |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153)                      PG0                                       +-------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154)                                                                |       |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155)                                                              00001   00003
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156)                                                                |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157)                                                            +---+---+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158)                                                            |   |   |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159)                                                           PG0 PG1 PG2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) In the example above, you can see two netfs's being backed: NFS and AFS.  These
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) have different index hierarchies:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164)    * The NFS primary index contains per-server indices.  Each server index is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165)      indexed by NFS file handles to get data file objects.  Each data file
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166)      objects can have an array of pages, but may also have further child
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167)      objects, such as extended attributes and directory entries.  Extended
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168)      attribute objects themselves have page-array contents.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170)    * The AFS primary index contains per-cell indices.  Each cell index contains
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171)      per-logical-volume indices.  Each of volume index contains up to three
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172)      indices for the read-write, read-only and backup mirrors of those volumes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173)      Each of these contains vnode data file objects, each of which contains an
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174)      array of pages.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) The very top index is the FS-Cache master index in which individual netfs's
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) have entries.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) Any index object may reside in more than one cache, provided it only has index
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) children.  Any index with non-index object children will be assumed to only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) reside in one cache.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) The netfs API to FS-Cache can be found in:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) 	Documentation/filesystems/caching/netfs-api.rst
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) The cache backend API to FS-Cache can be found in:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) 	Documentation/filesystems/caching/backend-api.rst
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) A description of the internal representations and object state machine can be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) found in:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) 	Documentation/filesystems/caching/object.rst
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) Statistical Information
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) =======================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) If FS-Cache is compiled with the following options enabled::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) 	CONFIG_FSCACHE_STATS=y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) 	CONFIG_FSCACHE_HISTOGRAM=y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) then it will gather certain statistics and display them through a number of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) proc files.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) /proc/fs/fscache/stats
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) ----------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212)      This shows counts of a number of events that can happen in FS-Cache:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) +--------------+-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) |CLASS         |EVENT  |MEANING                                                |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) +==============+=======+=======================================================+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) |Cookies       |idx=N  |Number of index cookies allocated                      |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) |              |dat=N  |Number of data storage cookies allocated               |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) |              |spc=N  |Number of special cookies allocated                    |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) +--------------+-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) |Objects       |alc=N  |Number of objects allocated                            |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) |              |nal=N  |Number of object allocation failures                   |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) |              |avl=N  |Number of objects that reached the available state     |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) |              |ded=N  |Number of objects that reached the dead state          |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) +--------------+-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) |ChkAux        |non=N  |Number of objects that didn't have a coherency check   |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) |              |ok=N   |Number of objects that passed a coherency check        |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) |              |upd=N  |Number of objects that needed a coherency data update  |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) |              |obs=N  |Number of objects that were declared obsolete          |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) +--------------+-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) |Pages         |mrk=N  |Number of pages marked as being cached                 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) |              |unc=N  |Number of uncache page requests seen                   |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) +--------------+-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) |Acquire       |n=N    |Number of acquire cookie requests seen                 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) |              |nul=N  |Number of acq reqs given a NULL parent                 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) |              |noc=N  |Number of acq reqs rejected due to no cache available  |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) |              |ok=N   |Number of acq reqs succeeded                           |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) |              |nbf=N  |Number of acq reqs rejected due to error               |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) |              |oom=N  |Number of acq reqs failed on ENOMEM                    |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) +--------------+-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) |Lookups       |n=N    |Number of lookup calls made on cache backends          |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) |              |neg=N  |Number of negative lookups made                        |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) |              |pos=N  |Number of positive lookups made                        |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) |              |crt=N  |Number of objects created by lookup                    |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) |              |tmo=N  |Number of lookups timed out and requeued               |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) +--------------+-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) |Updates       |n=N    |Number of update cookie requests seen                  |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) |              |nul=N  |Number of upd reqs given a NULL parent                 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) |              |run=N  |Number of upd reqs granted CPU time                    |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) +--------------+-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) |Relinqs       |n=N    |Number of relinquish cookie requests seen              |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) |              |nul=N  |Number of rlq reqs given a NULL parent                 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) |              |wcr=N  |Number of rlq reqs waited on completion of creation    |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) +--------------+-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) |AttrChg       |n=N    |Number of attribute changed requests seen              |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) |              |ok=N   |Number of attr changed requests queued                 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) |              |nbf=N  |Number of attr changed rejected -ENOBUFS               |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) |              |oom=N  |Number of attr changed failed -ENOMEM                  |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) |              |run=N  |Number of attr changed ops given CPU time              |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) +--------------+-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) |Allocs        |n=N    |Number of allocation requests seen                     |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) |              |ok=N   |Number of successful alloc reqs                        |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) |              |wt=N   |Number of alloc reqs that waited on lookup completion  |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) |              |nbf=N  |Number of alloc reqs rejected -ENOBUFS                 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) |              |int=N  |Number of alloc reqs aborted -ERESTARTSYS              |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) |              |ops=N  |Number of alloc reqs submitted                         |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) |              |owt=N  |Number of alloc reqs waited for CPU time               |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) |              |abt=N  |Number of alloc reqs aborted due to object death       |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) +--------------+-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) |Retrvls       |n=N    |Number of retrieval (read) requests seen               |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) |              |ok=N   |Number of successful retr reqs                         |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) |              |wt=N   |Number of retr reqs that waited on lookup completion   |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) |              |nod=N  |Number of retr reqs returned -ENODATA                  |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) |              |nbf=N  |Number of retr reqs rejected -ENOBUFS                  |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) |              |int=N  |Number of retr reqs aborted -ERESTARTSYS               |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) |              |oom=N  |Number of retr reqs failed -ENOMEM                     |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) |              |ops=N  |Number of retr reqs submitted                          |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) |              |owt=N  |Number of retr reqs waited for CPU time                |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) |              |abt=N  |Number of retr reqs aborted due to object death        |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) +--------------+-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) |Stores        |n=N    |Number of storage (write) requests seen                |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) |              |ok=N   |Number of successful store reqs                        |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) |              |agn=N  |Number of store reqs on a page already pending storage |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) |              |nbf=N  |Number of store reqs rejected -ENOBUFS                 |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) |              |oom=N  |Number of store reqs failed -ENOMEM                    |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) |              |ops=N  |Number of store reqs submitted                         |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) |              |run=N  |Number of store reqs granted CPU time                  |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) |              |pgs=N  |Number of pages given store req processing time        |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) |              |rxd=N  |Number of store reqs deleted from tracking tree        |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) |              |olm=N  |Number of store reqs over store limit                  |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) +--------------+-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) |VmScan        |nos=N  |Number of release reqs against pages with no           |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) |              |       |pending store                                          |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) |              |gon=N  |Number of release reqs against pages stored by         |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) |              |       |time lock granted                                      |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) |              |bsy=N  |Number of release reqs ignored due to in-progress store|
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) |              |can=N  |Number of page stores cancelled due to release req     |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) +--------------+-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) |Ops           |pend=N |Number of times async ops added to pending queues      |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) |              |run=N  |Number of times async ops given CPU time               |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) |              |enq=N  |Number of times async ops queued for processing        |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) |              |can=N  |Number of async ops cancelled                          |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360) |              |rej=N  |Number of async ops rejected due to object             |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) |              |       |lookup/create failure                                  |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) |              |ini=N  |Number of async ops initialised                        |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) |              |dfr=N  |Number of async ops queued for deferred release        |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) |              |rel=N  |Number of async ops released                           |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) |              |       |(should equal ini=N when idle)                         |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) |              |gc=N   |Number of deferred-release async ops garbage collected |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) +--------------+-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) |CacheOp       |alo=N  |Number of in-progress alloc_object() cache ops         |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) |              |luo=N  |Number of in-progress lookup_object() cache ops        |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) |              |luc=N  |Number of in-progress lookup_complete() cache ops      |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) |              |gro=N  |Number of in-progress grab_object() cache ops          |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) |              |upo=N  |Number of in-progress update_object() cache ops        |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) |              |dro=N  |Number of in-progress drop_object() cache ops          |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) |              |pto=N  |Number of in-progress put_object() cache ops           |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) |              |syn=N  |Number of in-progress sync_cache() cache ops           |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) |              |atc=N  |Number of in-progress attr_changed() cache ops         |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) |              |rap=N  |Number of in-progress read_or_alloc_page() cache ops   |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) |              |ras=N  |Number of in-progress read_or_alloc_pages() cache ops  |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) |              |alp=N  |Number of in-progress allocate_page() cache ops        |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) |              |als=N  |Number of in-progress allocate_pages() cache ops       |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) |              |wrp=N  |Number of in-progress write_page() cache ops           |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400) |              |ucp=N  |Number of in-progress uncache_page() cache ops         |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) |              |dsp=N  |Number of in-progress dissociate_pages() cache ops     |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) +--------------+-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404) |CacheEv       |nsp=N  |Number of object lookups/creations rejected due to     |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) |              |       |lack of space                                          |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407) |              |stl=N  |Number of stale objects deleted                        |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) |              |rtr=N  |Number of objects retired when relinquished            |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) +              +-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411) |              |cul=N  |Number of objects culled                               |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412) +--------------+-------+-------------------------------------------------------+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416) /proc/fs/fscache/histogram
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417) --------------------------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419)      ::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421) 	cat /proc/fs/fscache/histogram
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422) 	JIFS  SECS  OBJ INST  OP RUNS   OBJ RUNS  RETRV DLY RETRIEVLS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423) 	===== ===== ========= ========= ========= ========= =========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425)      This shows the breakdown of the number of times each amount of time
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426)      between 0 jiffies and HZ-1 jiffies a variety of tasks took to run.  The
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427)      columns are as follows:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429) 	=========	=======================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430) 	COLUMN		TIME MEASUREMENT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431) 	=========	=======================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432) 	OBJ INST	Length of time to instantiate an object
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) 	OP RUNS		Length of time a call to process an operation took
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) 	OBJ RUNS	Length of time a call to process an object event took
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435) 	RETRV DLY	Time between an requesting a read and lookup completing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436) 	RETRIEVLS	Time between beginning and end of a retrieval
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437) 	=========	=======================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439)      Each row shows the number of events that took a particular range of times.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440)      Each step is 1 jiffy in size.  The JIFS column indicates the particular
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441)      jiffy range covered, and the SECS field the equivalent number of seconds.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445) Object List
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) ===========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448) If CONFIG_FSCACHE_OBJECT_LIST is enabled, the FS-Cache facility will maintain a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) list of all the objects currently allocated and allow them to be viewed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450) through::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) 	/proc/fs/fscache/objects
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454) This will look something like::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456) 	[root@andromeda ~]# head /proc/fs/fscache/objects
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457) 	OBJECT   PARENT   STAT CHLDN OPS OOP IPR EX READS EM EV F S | NETFS_COOKIE_DEF TY FL NETFS_DATA       OBJECT_KEY, AUX_DATA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458) 	======== ======== ==== ===== === === === == ===== == == = = | ================ == == ================ ================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) 	   17e4b        2 ACTV     0   0   0   0  0     0 7b  4 0 0 | NFS.fh           DT  0 ffff88001dd82820 010006017edcf8bbc93b43298fdfbe71e50b57b13a172c0117f38472, e567634700000000000000000000000063f2404a000000000000000000000000c9030000000000000000000063f2404a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460) 	   1693a        2 ACTV     0   0   0   0  0     0 7b  4 0 0 | NFS.fh           DT  0 ffff88002db23380 010006017edcf8bbc93b43298fdfbe71e50b57b1e0162c01a2df0ea6, 420ebc4a000000000000000000000000420ebc4a0000000000000000000000000e1801000000000000000000420ebc4a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462) where the first set of columns before the '|' describe the object:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464) 	=======	===============================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465) 	COLUMN	DESCRIPTION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466) 	=======	===============================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467) 	OBJECT	Object debugging ID (appears as OBJ%x in some debug messages)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468) 	PARENT	Debugging ID of parent object
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469) 	STAT	Object state
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470) 	CHLDN	Number of child objects of this object
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471) 	OPS	Number of outstanding operations on this object
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472) 	OOP	Number of outstanding child object management operations
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473) 	IPR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474) 	EX	Number of outstanding exclusive operations
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475) 	READS	Number of outstanding read operations
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476) 	EM	Object's event mask
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477) 	EV	Events raised on this object
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478) 	F	Object flags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479) 	S	Object work item busy state mask (1:pending 2:running)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480) 	=======	===============================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 482) and the second set of columns describe the object's cookie, if present:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 483) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 484) 	================ ======================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 485) 	COLUMN		 DESCRIPTION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 486) 	================ ======================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 487) 	NETFS_COOKIE_DEF Name of netfs cookie definition
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 488) 	TY		 Cookie type (IX - index, DT - data, hex - special)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 489) 	FL		 Cookie flags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 490) 	NETFS_DATA	 Netfs private data stored in the cookie
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 491) 	OBJECT_KEY	 Object key } 1 column, with separating comma
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 492) 	AUX_DATA	 Object aux data } presence may be configured
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 493) 	================ ======================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 494) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 495) The data shown may be filtered by attaching the a key to an appropriate keyring
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 496) before viewing the file.  Something like::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 497) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 498) 		keyctl add user fscache:objlist <restrictions> @s
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 499) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 500) where <restrictions> are a selection of the following letters:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 501) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 502) 	==	=========================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 503) 	K	Show hexdump of object key (don't show if not given)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 504) 	A	Show hexdump of object aux data (don't show if not given)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 505) 	==	=========================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 506) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 507) and the following paired letters:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 508) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 509) 	==	=========================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 510) 	C	Show objects that have a cookie
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 511) 	c	Show objects that don't have a cookie
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 512) 	B	Show objects that are busy
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 513) 	b	Show objects that aren't busy
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 514) 	W	Show objects that have pending writes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 515) 	w	Show objects that don't have pending writes
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 516) 	R	Show objects that have outstanding reads
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 517) 	r	Show objects that don't have outstanding reads
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 518) 	S	Show objects that have work queued
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 519) 	s	Show objects that don't have work queued
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 520) 	==	=========================================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 521) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 522) If neither side of a letter pair is given, then both are implied.  For example:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 523) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 524) 	keyctl add user fscache:objlist KB @s
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 525) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 526) shows objects that are busy, and lists their object keys, but does not dump
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 527) their auxiliary data.  It also implies "CcWwRrSs", but as 'B' is given, 'b' is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 528) not implied.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 529) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 530) By default all objects and all fields will be shown.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 531) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 532) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 533) Debugging
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 534) =========
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 535) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 536) If CONFIG_FSCACHE_DEBUG is enabled, the FS-Cache facility can have runtime
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 537) debugging enabled by adjusting the value in::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 538) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 539) 	/sys/module/fscache/parameters/debug
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 540) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 541) This is a bitmask of debugging streams to enable:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 542) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 543) 	=======	=======	===============================	=======================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 544) 	BIT	VALUE	STREAM				POINT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 545) 	=======	=======	===============================	=======================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 546) 	0	1	Cache management		Function entry trace
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 547) 	1	2					Function exit trace
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 548) 	2	4					General
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 549) 	3	8	Cookie management		Function entry trace
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 550) 	4	16					Function exit trace
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 551) 	5	32					General
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 552) 	6	64	Page handling			Function entry trace
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 553) 	7	128					Function exit trace
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 554) 	8	256					General
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 555) 	9	512	Operation management		Function entry trace
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 556) 	10	1024					Function exit trace
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 557) 	11	2048					General
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 558) 	=======	=======	===============================	=======================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 559) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 560) The appropriate set of values should be OR'd together and the result written to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 561) the control file.  For example::
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 562) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 563) 	echo $((1|8|64)) >/sys/module/fscache/parameters/debug
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 564) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 565) will turn on all function entry debugging.