• Kent Overstreet's avatar
    bcachefs: btree key cache pcpu freedlist · 8f7f566f
    Kent Overstreet authored
    Originally, the btree key cache code would always allocate new entries
    by reusing from the recently-freed list, if that list wasn't empty. But
    that behaviour was dropped, for lock contention reasons.
    
    But it seems that entries stranded on the freed list have been
    contributing to some of our oom issues, because long running btree
    transactions will prevent them from being freed.
    
    This patch re-adds allocating from the freed list, but it also adds
    percpu buffers to solve the lock contention issues - and the new percpu
    freed lists will improve the evict paths, too.
    Signed-off-by: default avatarKent Overstreet <kent.overstreet@gmail.com>
    8f7f566f
btree_key_cache.c 19.9 KB