Loading Documentation/filesystems/caching/backend-api.txt +37 −1 Original line number Diff line number Diff line Loading @@ -308,6 +308,18 @@ performed on the denizens of the cache. These are held in a structure of type: obtained by calling object->cookie->def->get_aux()/get_attr(). (*) Invalidate data object [mandatory]: int (*invalidate_object)(struct fscache_operation *op) This is called to invalidate a data object (as pointed to by op->object). All the data stored for this object should be discarded and an attr_changed operation should be performed. The caller will follow up with an object update operation. fscache_op_complete() must be called on op before returning. (*) Discard object [mandatory]: void (*drop_object)(struct fscache_object *object) Loading Loading @@ -419,7 +431,10 @@ performed on the denizens of the cache. These are held in a structure of type: If an I/O error occurs, fscache_io_error() should be called and -ENOBUFS returned if possible or fscache_end_io() called with a suitable error code.. code. fscache_put_retrieval() should be called after a page or pages are dealt with. This will complete the operation when all pages are dealt with. (*) Request pages be read from cache [mandatory]: Loading Loading @@ -526,6 +541,27 @@ FS-Cache provides some utilities that a cache backend may make use of: error value should be 0 if successful and an error otherwise. (*) Record that one or more pages being retrieved or allocated have been dealt with: void fscache_retrieval_complete(struct fscache_retrieval *op, int n_pages); This is called to record the fact that one or more pages have been dealt with and are no longer the concern of this operation. When the number of pages remaining in the operation reaches 0, the operation will be completed. (*) Record operation completion: void fscache_op_complete(struct fscache_operation *op); This is called to record the completion of an operation. This deducts this operation from the parent object's run state, potentially permitting one or more pending operations to start running. (*) Set highest store limit: void fscache_set_store_limit(struct fscache_object *object, Loading Documentation/filesystems/caching/netfs-api.txt +38 −8 Original line number Diff line number Diff line Loading @@ -35,8 +35,9 @@ This document contains the following sections: (12) Index and data file update (13) Miscellaneous cookie operations (14) Cookie unregistration (15) Index and data file invalidation (16) FS-Cache specific page flags. (15) Index invalidation (16) Data file invalidation (17) FS-Cache specific page flags. ============================= Loading Loading @@ -767,13 +768,42 @@ the cookies for "child" indices, objects and pages have been relinquished first. ================================ INDEX AND DATA FILE INVALIDATION ================================ ================== INDEX INVALIDATION ================== There is no direct way to invalidate an index subtree. To do this, the caller should relinquish and retire the cookie they have, and then acquire a new one. ====================== DATA FILE INVALIDATION ====================== Sometimes it will be necessary to invalidate an object that contains data. Typically this will be necessary when the server tells the netfs of a foreign change - at which point the netfs has to throw away all the state it had for an inode and reload from the server. To indicate that a cache object should be invalidated, the following function can be called: void fscache_invalidate(struct fscache_cookie *cookie); This can be called with spinlocks held as it defers the work to a thread pool. All extant storage, retrieval and attribute change ops at this point are cancelled and discarded. Some future operations will be rejected until the cache has had a chance to insert a barrier in the operations queue. After that, operations will be queued again behind the invalidation operation. The invalidation operation will perform an attribute change operation and an auxiliary data update operation as it is very likely these will have changed. Using the following function, the netfs can wait for the invalidation operation to have reached a point at which it can start submitting ordinary operations once again: There is no direct way to invalidate an index subtree or a data file. To do this, the caller should relinquish and retire the cookie they have, and then acquire a new one. void fscache_wait_on_invalidate(struct fscache_cookie *cookie); =========================== Loading Documentation/filesystems/caching/object.txt +15 −8 Original line number Diff line number Diff line Loading @@ -216,7 +216,14 @@ servicing netfs requests: The normal running state. In this state, requests the netfs makes will be passed on to the cache. (6) State FSCACHE_OBJECT_UPDATING. (6) State FSCACHE_OBJECT_INVALIDATING. The object is undergoing invalidation. When the state comes here, it discards all pending read, write and attribute change operations as it is going to clear out the cache entirely and reinitialise it. It will then continue to the FSCACHE_OBJECT_UPDATING state. (7) State FSCACHE_OBJECT_UPDATING. The state machine comes here to update the object in the cache from the netfs's records. This involves updating the auxiliary data that is used Loading @@ -225,13 +232,13 @@ servicing netfs requests: And there are terminal states in which an object cleans itself up, deallocates memory and potentially deletes stuff from disk: (7) State FSCACHE_OBJECT_LC_DYING. (8) State FSCACHE_OBJECT_LC_DYING. The object comes here if it is dying because of a lookup or creation error. This would be due to a disk error or system error of some sort. Temporary data is cleaned up, and the parent is released. (8) State FSCACHE_OBJECT_DYING. (9) State FSCACHE_OBJECT_DYING. The object comes here if it is dying due to an error, because its parent cookie has been relinquished by the netfs or because the cache is being Loading @@ -241,27 +248,27 @@ memory and potentially deletes stuff from disk: can destroy themselves. This object waits for all its children to go away before advancing to the next state. (9) State FSCACHE_OBJECT_ABORT_INIT. (10) State FSCACHE_OBJECT_ABORT_INIT. The object comes to this state if it was waiting on its parent in FSCACHE_OBJECT_INIT, but its parent died. The object will destroy itself so that the parent may proceed from the FSCACHE_OBJECT_DYING state. (10) State FSCACHE_OBJECT_RELEASING. (11) State FSCACHE_OBJECT_RECYCLING. (11) State FSCACHE_OBJECT_RELEASING. (12) State FSCACHE_OBJECT_RECYCLING. The object comes to one of these two states when dying once it is rid of all its children, if it is dying because the netfs relinquished its cookie. In the first state, the cached data is expected to persist, and in the second it will be deleted. (12) State FSCACHE_OBJECT_WITHDRAWING. (13) State FSCACHE_OBJECT_WITHDRAWING. The object transits to this state if the cache decides it wants to withdraw the object from service, perhaps to make space, but also due to error or just because the whole cache is being withdrawn. (13) State FSCACHE_OBJECT_DEAD. (14) State FSCACHE_OBJECT_DEAD. The object transits to this state when the in-memory object record is ready to be deleted. The object processor shouldn't ever see an object in Loading Documentation/filesystems/caching/operations.txt +1 −1 Original line number Diff line number Diff line Loading @@ -174,7 +174,7 @@ Operations are used through the following procedure: necessary (the object might have died whilst the thread was waiting). When it has finished doing its processing, it should call fscache_put_operation() on it. fscache_op_complete() and fscache_put_operation() on it. (4) The operation holds an effective lock upon the object, preventing other exclusive ops conflicting until it is released. The operation can be Loading Documentation/hwmon/it87 +10 −0 Original line number Diff line number Diff line Loading @@ -209,3 +209,13 @@ doesn't use CPU cycles. Trip points must be set properly before switching to automatic fan speed control mode. The driver will perform basic integrity checks before actually switching to automatic control mode. Temperature offset attributes ----------------------------- The driver supports temp[1-3]_offset sysfs attributes to adjust the reported temperature for thermal diodes or diode-connected thermal transistors. If a temperature sensor is configured for thermistors, the attribute values are ignored. If the thermal sensor type is Intel PECI, the temperature offset must be programmed to the critical CPU temperature. Loading
Documentation/filesystems/caching/backend-api.txt +37 −1 Original line number Diff line number Diff line Loading @@ -308,6 +308,18 @@ performed on the denizens of the cache. These are held in a structure of type: obtained by calling object->cookie->def->get_aux()/get_attr(). (*) Invalidate data object [mandatory]: int (*invalidate_object)(struct fscache_operation *op) This is called to invalidate a data object (as pointed to by op->object). All the data stored for this object should be discarded and an attr_changed operation should be performed. The caller will follow up with an object update operation. fscache_op_complete() must be called on op before returning. (*) Discard object [mandatory]: void (*drop_object)(struct fscache_object *object) Loading Loading @@ -419,7 +431,10 @@ performed on the denizens of the cache. These are held in a structure of type: If an I/O error occurs, fscache_io_error() should be called and -ENOBUFS returned if possible or fscache_end_io() called with a suitable error code.. code. fscache_put_retrieval() should be called after a page or pages are dealt with. This will complete the operation when all pages are dealt with. (*) Request pages be read from cache [mandatory]: Loading Loading @@ -526,6 +541,27 @@ FS-Cache provides some utilities that a cache backend may make use of: error value should be 0 if successful and an error otherwise. (*) Record that one or more pages being retrieved or allocated have been dealt with: void fscache_retrieval_complete(struct fscache_retrieval *op, int n_pages); This is called to record the fact that one or more pages have been dealt with and are no longer the concern of this operation. When the number of pages remaining in the operation reaches 0, the operation will be completed. (*) Record operation completion: void fscache_op_complete(struct fscache_operation *op); This is called to record the completion of an operation. This deducts this operation from the parent object's run state, potentially permitting one or more pending operations to start running. (*) Set highest store limit: void fscache_set_store_limit(struct fscache_object *object, Loading
Documentation/filesystems/caching/netfs-api.txt +38 −8 Original line number Diff line number Diff line Loading @@ -35,8 +35,9 @@ This document contains the following sections: (12) Index and data file update (13) Miscellaneous cookie operations (14) Cookie unregistration (15) Index and data file invalidation (16) FS-Cache specific page flags. (15) Index invalidation (16) Data file invalidation (17) FS-Cache specific page flags. ============================= Loading Loading @@ -767,13 +768,42 @@ the cookies for "child" indices, objects and pages have been relinquished first. ================================ INDEX AND DATA FILE INVALIDATION ================================ ================== INDEX INVALIDATION ================== There is no direct way to invalidate an index subtree. To do this, the caller should relinquish and retire the cookie they have, and then acquire a new one. ====================== DATA FILE INVALIDATION ====================== Sometimes it will be necessary to invalidate an object that contains data. Typically this will be necessary when the server tells the netfs of a foreign change - at which point the netfs has to throw away all the state it had for an inode and reload from the server. To indicate that a cache object should be invalidated, the following function can be called: void fscache_invalidate(struct fscache_cookie *cookie); This can be called with spinlocks held as it defers the work to a thread pool. All extant storage, retrieval and attribute change ops at this point are cancelled and discarded. Some future operations will be rejected until the cache has had a chance to insert a barrier in the operations queue. After that, operations will be queued again behind the invalidation operation. The invalidation operation will perform an attribute change operation and an auxiliary data update operation as it is very likely these will have changed. Using the following function, the netfs can wait for the invalidation operation to have reached a point at which it can start submitting ordinary operations once again: There is no direct way to invalidate an index subtree or a data file. To do this, the caller should relinquish and retire the cookie they have, and then acquire a new one. void fscache_wait_on_invalidate(struct fscache_cookie *cookie); =========================== Loading
Documentation/filesystems/caching/object.txt +15 −8 Original line number Diff line number Diff line Loading @@ -216,7 +216,14 @@ servicing netfs requests: The normal running state. In this state, requests the netfs makes will be passed on to the cache. (6) State FSCACHE_OBJECT_UPDATING. (6) State FSCACHE_OBJECT_INVALIDATING. The object is undergoing invalidation. When the state comes here, it discards all pending read, write and attribute change operations as it is going to clear out the cache entirely and reinitialise it. It will then continue to the FSCACHE_OBJECT_UPDATING state. (7) State FSCACHE_OBJECT_UPDATING. The state machine comes here to update the object in the cache from the netfs's records. This involves updating the auxiliary data that is used Loading @@ -225,13 +232,13 @@ servicing netfs requests: And there are terminal states in which an object cleans itself up, deallocates memory and potentially deletes stuff from disk: (7) State FSCACHE_OBJECT_LC_DYING. (8) State FSCACHE_OBJECT_LC_DYING. The object comes here if it is dying because of a lookup or creation error. This would be due to a disk error or system error of some sort. Temporary data is cleaned up, and the parent is released. (8) State FSCACHE_OBJECT_DYING. (9) State FSCACHE_OBJECT_DYING. The object comes here if it is dying due to an error, because its parent cookie has been relinquished by the netfs or because the cache is being Loading @@ -241,27 +248,27 @@ memory and potentially deletes stuff from disk: can destroy themselves. This object waits for all its children to go away before advancing to the next state. (9) State FSCACHE_OBJECT_ABORT_INIT. (10) State FSCACHE_OBJECT_ABORT_INIT. The object comes to this state if it was waiting on its parent in FSCACHE_OBJECT_INIT, but its parent died. The object will destroy itself so that the parent may proceed from the FSCACHE_OBJECT_DYING state. (10) State FSCACHE_OBJECT_RELEASING. (11) State FSCACHE_OBJECT_RECYCLING. (11) State FSCACHE_OBJECT_RELEASING. (12) State FSCACHE_OBJECT_RECYCLING. The object comes to one of these two states when dying once it is rid of all its children, if it is dying because the netfs relinquished its cookie. In the first state, the cached data is expected to persist, and in the second it will be deleted. (12) State FSCACHE_OBJECT_WITHDRAWING. (13) State FSCACHE_OBJECT_WITHDRAWING. The object transits to this state if the cache decides it wants to withdraw the object from service, perhaps to make space, but also due to error or just because the whole cache is being withdrawn. (13) State FSCACHE_OBJECT_DEAD. (14) State FSCACHE_OBJECT_DEAD. The object transits to this state when the in-memory object record is ready to be deleted. The object processor shouldn't ever see an object in Loading
Documentation/filesystems/caching/operations.txt +1 −1 Original line number Diff line number Diff line Loading @@ -174,7 +174,7 @@ Operations are used through the following procedure: necessary (the object might have died whilst the thread was waiting). When it has finished doing its processing, it should call fscache_put_operation() on it. fscache_op_complete() and fscache_put_operation() on it. (4) The operation holds an effective lock upon the object, preventing other exclusive ops conflicting until it is released. The operation can be Loading
Documentation/hwmon/it87 +10 −0 Original line number Diff line number Diff line Loading @@ -209,3 +209,13 @@ doesn't use CPU cycles. Trip points must be set properly before switching to automatic fan speed control mode. The driver will perform basic integrity checks before actually switching to automatic control mode. Temperature offset attributes ----------------------------- The driver supports temp[1-3]_offset sysfs attributes to adjust the reported temperature for thermal diodes or diode-connected thermal transistors. If a temperature sensor is configured for thermistors, the attribute values are ignored. If the thermal sensor type is Intel PECI, the temperature offset must be programmed to the critical CPU temperature.