• Home
  • Raw
  • Download

Lines Matching +full:i +full:- +full:cache +full:- +full:sets

2 	     IN-KERNEL CACHE OBJECT REPRESENTATION AND MANAGEMENT
13 - Provision of cpu time.
14 - Locking simplification.
25 FS-Cache maintains an in-kernel representation of each object that a netfs is
29 FS-Cache also maintains a separate in-kernel representation of the objects that
30 a cache backend is currently actively caching. Such objects are represented by
31 the fscache_object struct. The cache backends allocate these upon request, and
36 represented by multiple objects - an index may exist in more than one cache -
43 NETFS INDEX TREE : CACHE 1 : CACHE 2
45 : +-----------+ :
46 +----------->| IObject | :
47 +-----------+ | : +-----------+ :
48 | ICookie |-------+ : | :
49 +-----------+ | : | : +-----------+
50 | +------------------------------>| IObject |
51 | : | : +-----------+
53 | : +-----------+ : |
54 V +----------->| IObject | : |
55 +-----------+ | : +-----------+ : |
56 | ICookie |-------+ : | : V
57 +-----------+ | : | : +-----------+
58 | +------------------------------>| IObject |
59 +-----+-----+ : | : +-----------+
62 +-----------+ | : +-----------+ : |
63 | ICookie |------------------------->| IObject | : |
64 +-----------+ | : +-----------+ : |
66 | +-----------+ : | : +-----------+
67 | | ICookie |-------------------------------->| IObject |
68 | +-----------+ : | : +-----------+
70 +-----------+ | : +-----------+ : |
71 | DCookie |------------------------->| DObject | : |
72 +-----------+ | : +-----------+ : |
74 +-------+-------+ : : |
77 +-----------+ +-----------+ : : +-----------+
78 | DCookie | | DCookie |------------------------>| DObject |
79 +-----------+ +-----------+ : : +-----------+
84 multiple caches, but currently, non-index objects may not. Objects of any type
96 Within FS-Cache, each active object is managed by its own individual state
98 object->state. A cookie may point to a set of objects that are in different
102 wakes up in that state. There are four logical sets of states:
108 (2) Initialisation: states that perform lookups in the cache and validate
116 up in-memory resources.
121 which it is interested (object->event_mask) and relinquish the worker thread.
128 ---------------------
140 sleeping on I/O. This means that single-threaded and 1-per-CPU-threaded
145 ----------------------
149 to disconnecting the netfs's representation of a cache object (fscache_cookie)
150 from the cache backend's representation (fscache_object) - which may be
159 preparation states in which the object sets itself up and waits for its parent
165 the cache, it is expected that it will not be possible to look an object
169 There are initialisation states in which the object sets itself up and accesses
175 FS-Cache expects the cache backend to probe the cache to see whether this
179 The cache should call fscache_object_lookup_negative() to indicate lookup
183 At the completion of lookup, FS-Cache will let the netfs go ahead with
186 the first known page is uncached - as to that point there can be no data
187 to be read out of the cache for that file that isn't currently also held
195 FS-Cache expects the cache to create
197 The cache should call fscache_obtained_object() if creation completes
200 At the completion of creation, FS-Cache will start processing write
203 cache.
217 passed on to the cache.
223 going to clear out the cache entirely and reinitialise it. It will then
228 The state machine comes here to update the object in the cache from the
244 cookie has been relinquished by the netfs or because the cache is being
267 The object transits to this state if the cache decides it wants to
269 error or just because the whole cache is being withdrawn.
273 The object transits to this state when the in-memory object record is
279 -----------------
286 the cache backend to update the object, and the cache backend will ask the
301 This is signalled when an I/O error occurs during the processing of some
313 This is signalled when the cache backend wants to withdraw an object.