| From: Tamir Duberstein <tamird@gmail.com> |
| Subject: XArray: minor documentation improvements |
| Date: Tue, 05 Nov 2024 08:03:42 -0400 |
| |
| - Replace "they" with "you" where "you" is used in the preceding |
| sentence fragment. |
| - Mention `xa_erase` in discussion of multi-index entries. Split this |
| into a separate sentence. |
| - Add "call" parentheses on "xa_store" for consistency and |
| linkification. |
| - Add caveat that `xa_store` and `xa_erase` are not equivalent in the |
| presence of `XA_FLAGS_ALLOC`. |
| |
| Link: https://lkml.kernel.org/r/20241105-xarray-documentation-v5-1-8e1702321b41@gmail.com |
| Signed-off-by: Tamir Duberstein <tamird@gmail.com> |
| Acked-by: Randy Dunlap <rdunlap@infradead.org> |
| Reviewed-by: Bagas Sanjaya <bagasdotme@gmail.com> |
| Cc: Jonathan Corbet <corbet@lwn.net> |
| Cc: Matthew Wilcox <willy@infradead.org> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| Documentation/core-api/xarray.rst | 24 +++++++++++++----------- |
| 1 file changed, 13 insertions(+), 11 deletions(-) |
| |
| --- a/Documentation/core-api/xarray.rst~xarray-minor-documentation-improvements |
| +++ a/Documentation/core-api/xarray.rst |
| @@ -42,8 +42,8 @@ call xa_tag_pointer() to create an entry |
| to turn a tagged entry back into an untagged pointer and xa_pointer_tag() |
| to retrieve the tag of an entry. Tagged pointers use the same bits that |
| are used to distinguish value entries from normal pointers, so you must |
| -decide whether they want to store value entries or tagged pointers in |
| -any particular XArray. |
| +decide whether you want to store value entries or tagged pointers in any |
| +particular XArray. |
| |
| The XArray does not support storing IS_ERR() pointers as some |
| conflict with value entries or internal entries. |
| @@ -52,8 +52,9 @@ An unusual feature of the XArray is the |
| occupy a range of indices. Once stored to, looking up any index in |
| the range will return the same entry as looking up any other index in |
| the range. Storing to any index will store to all of them. Multi-index |
| -entries can be explicitly split into smaller entries, or storing ``NULL`` |
| -into any entry will cause the XArray to forget about the range. |
| +entries can be explicitly split into smaller entries. Unsetting (using |
| +xa_erase() or xa_store() with ``NULL``) any entry will cause the XArray |
| +to forget about the range. |
| |
| Normal API |
| ========== |
| @@ -63,13 +64,14 @@ for statically allocated XArrays or xa_i |
| allocated ones. A freshly-initialised XArray contains a ``NULL`` |
| pointer at every index. |
| |
| -You can then set entries using xa_store() and get entries |
| -using xa_load(). xa_store will overwrite any entry with the |
| -new entry and return the previous entry stored at that index. You can |
| -use xa_erase() instead of calling xa_store() with a |
| -``NULL`` entry. There is no difference between an entry that has never |
| -been stored to, one that has been erased and one that has most recently |
| -had ``NULL`` stored to it. |
| +You can then set entries using xa_store() and get entries using |
| +xa_load(). xa_store() will overwrite any entry with the new entry and |
| +return the previous entry stored at that index. You can unset entries |
| +using xa_erase() or by setting the entry to ``NULL`` using xa_store(). |
| +There is no difference between an entry that has never been stored to |
| +and one that has been erased with xa_erase(); an entry that has most |
| +recently had ``NULL`` stored to it is also equivalent except if the |
| +XArray was initialized with ``XA_FLAGS_ALLOC``. |
| |
| You can conditionally replace an entry at an index by using |
| xa_cmpxchg(). Like cmpxchg(), it will only succeed if |
| _ |