diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2024-02-21 23:15:39 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2024-05-08 15:09:37 -0400 |
commit | b7a963a18accfeee7da159cb49fd0303f798c5a7 (patch) | |
tree | 159e3efb4000d5d257a30355fd943e912d15bf4b /drivers/dax | |
parent | de0f32d02f83e61be850b8626ee8da87eb6e711f (diff) |
codetag: rcu-ify idx to codetag lookupmemalloc-prof-v7
This substantially reworks how we store and iterate over codetags in
multiple modules.
We now provide a stable index for each codetag, which doesn't change as
modules are loaded and unloaded - meaning on module load, we find a free
range of indices for the new module.
Index-to-codetag lookup uses an eytzinger tree, and we use RCU for the
eytzinger tree for lockless lookup. The eytzinger tree has one entry per
module, where entries store the starting index for each module's range.
After eytzinger lookup we use eytzinger_to_inorder(), as the
codetag_modules are still a flat array.
With the new stable indices, iteration becomes simpler; the iterator
just stores the current index and peek() finds the first codetag >= the
current index.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'drivers/dax')
0 files changed, 0 insertions, 0 deletions