diff options
author | Konstantin Khlebnikov <khlebnikov@openvz.org> | 2010-05-20 23:21:41 +0400 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2010-05-24 09:06:59 +0200 |
commit | 80b15c7389caa81a3860f9fc2ee47ec0ea572a63 (patch) | |
tree | 469486c0371134b18f32741be35bce59f783d864 /block/elevator.c | |
parent | bca4b914b5da3d8e7b9b647f620b71dc85c0c394 (diff) | |
download | linux-80b15c7389caa81a3860f9fc2ee47ec0ea572a63.tar.gz linux-80b15c7389caa81a3860f9fc2ee47ec0ea572a63.tar.bz2 linux-80b15c7389caa81a3860f9fc2ee47ec0ea572a63.zip |
cfq-iosched: compact io_context radix_tree
Use small consequent indexes as radix tree keys instead of sparse cfqd address.
This change will reduce radix tree depth from 11 (6 for 32-bit hosts)
to 1 if host have <=64 disks under cfq control, or to 0 if there only one disk.
So, this patch save 10*560 bytes for each process (5*296 for 32-bit hosts)
For each cfqd allocate cic index from ida.
To unlink dead cic from tree without cfqd access store index into ->key.
(bit 0 -- dead mark, bits 1..30 -- index: ida produce id in range 0..2^31-1)
Signed-off-by: Konstantin Khlebnikov <khlebnikov@openvz.org>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'block/elevator.c')
0 files changed, 0 insertions, 0 deletions