在 2024/08/13 15:21, Christoph Hellwig 写道:
On Sat, Aug 10, 2024 at 10:08:28AM +0800, Yu Kuai wrote:
From: Yu Kuai <yukuai3@xxxxxxxxxx>
The background is that currently bitmap is using a global spin_lock,
cauing lock contention and huge IO performance degration for all raid
levels.
However, it's impossible to implement a new lock free bitmap with
current situation that md-bitmap exposes the internal implementation
with lots of exported apis. Hence bitmap_operations is invented, to
describe bitmap core implementation, and a new bitmap can be introduced
with a new bitmap_operations, we only need to switch to the new one
during initialization.
And with this we can build bitmap as kernel module, but that's not
our concern for now.
Noted I just compile this patchset, not tested yet.
Refactoring the bitmap code to be modular seems like a good idea.
But I'd just turn this into plain function calls and maybe a hidden
data structure if you feel really fancy. No need to introduce expensive
indirect calls and a separate module.
Got it, and will make the struct bitmap a hidden structure in the next
version. This is exactly what I'm doing now locally, get rid of bitmap
direct dereference :).
Thanks for the review!
Kuai
.