brd: use XArray instead of radix-tree to index backing pages
authorPankaj Raghav <p.raghav@samsung.com>
Thu, 11 May 2023 12:15:44 +0000 (14:15 +0200)
committerJens Axboe <axboe@kernel.dk>
Tue, 16 May 2023 15:03:23 +0000 (09:03 -0600)
commit786bb02458819df7a833361c6c7448a4925a89ce
tree815d4b9c319a48c81f00d74a02514c16fa6119a2
parentf1fcbaa18b28dec10281551dfe6ed3a3ed80e3d6
brd: use XArray instead of radix-tree to index backing pages

XArray was introduced to hold large array of pointers with a simple API.
XArray API also provides array semantics which simplifies the way we store
and access the backing pages, and the code becomes significantly easier
to understand.

No performance difference was noticed between the two implementation
using fio with direct=1 [1].

[1] Performance in KIOPS:

          |  radix-tree |    XArray  |   Diff
          |             |            |
write     |    315      |     313    |   -0.6%
randwrite |    286      |     290    |   +1.3%
read      |    330      |     335    |   +1.5%
randread  |    309      |     312    |   +0.9%

Signed-off-by: Pankaj Raghav <p.raghav@samsung.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Link: https://lore.kernel.org/r/20230511121544.111648-1-p.raghav@samsung.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/block/brd.c