diff options
author | 2025-01-15 18:33:30 +0100 | |
---|---|---|
committer | 2025-01-17 22:05:40 +0100 | |
commit | a38425935f7886cef5fe04c796f36715e9d0ef3f (patch) | |
tree | 7634ad090a6986457de6143960c764d6293f192c /scripts/generate_rust_analyzer.py | |
parent | dm: disable REQ_NOWAIT for flushes (diff) | |
download | wireguard-linux-a38425935f7886cef5fe04c796f36715e9d0ef3f.tar.xz wireguard-linux-a38425935f7886cef5fe04c796f36715e9d0ef3f.zip |
dm-transaction-manager: use red-black trees instead of linear lists
There was reported performance degradation when the shadow map contained
too many entries [1]. The shadow map uses 256-bucket hash with linear
lists - when there are too many entries, it has quadratic complexity.
Meir Elisha proposed to add a module parameter that could configure the
size of the hash array - however, this is not ideal because users don't
know that they should increase the parameter when they get bad
performance.
This commit replaces the linear lists with rb-trees (so that there's a
hash of rb-trees), they have logarithmic complexity, so it solves the
performance degradation.
Link: https://patchwork.kernel.org/project/dm-devel/patch/20241014134944.1264991-1-meir.elisha@volumez.com/ [1]
Reported-by: Meir Elisha <meir.elisha@volumez.com>
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Diffstat (limited to 'scripts/generate_rust_analyzer.py')
0 files changed, 0 insertions, 0 deletions