This is a respin of the test_xarray multi-index tests [0] which use and demonstrate the advanced API which is used by the page cache. This should let folks more easily follow how we use multi-index to support for example a min order later in the page cache. It also lets us grow the selftests to mimic more of what we do in the page cache. Changes since v1: - Fixed RCU stall, the issue was the misssing RCU locks when fetching an entry, so we now add test_get_entry() which mimics filemap_get_entry() - Provide a bit more comments - Check for alignment on the index to the order on check_xa_multi_store_adv_add() - Use a helper check_xa_multi_store_adv_del_entry() to mimic what we do in page_cache_delete() Changes since RFC: - Moved out from tmpfs large folio patches [1] so to keep these patches separate - Update cmpxchg test to include another entry at 1 << order that 'keeps' the node around and order information. - Update cmpxchg test to verify the entries and order in all tied indexes. - Drop previous Luis Chamberlain's review as changes are significant from the RFC. [0] https://lkml.kernel.org/r/20231104005747.1389762-1-da.gomez@xxxxxxxxxxx [1] https://lore.kernel.org/all/20231028211518.3424020-1-da.gomez@xxxxxxxxxxx/ Daniel Gomez (1): XArray: add cmpxchg order test Luis Chamberlain (1): test_xarray: add tests for advanced multi-index use lib/test_xarray.c | 218 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 218 insertions(+) -- 2.43.0