linux/drivers/block
Lars Ellenberg 27ea1d876e drbd: al_write_transaction: skip re-scanning of bitmap page pointer array
For larger devices, the array of bitmap page pointers can grow very
large (8000 pointers per TB of storage).

For each activity log transaction, we need to flush the associated
bitmap pages to stable storage. Currently, we just "mark" the respective
pages while setting up the transaction, then tell the bitmap code to
write out all marked pages, but skip unchanged pages.

But one such transaction can affect only a small number of bitmap pages,
there is no need to scan the full array of several (ten-)thousand
page pointers to find the few marked ones.

Instead, remember the index numbers of the few affected pages,
and later only re-check those to skip duplicates and unchanged ones.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
2016-06-13 21:43:08 -06:00
..
aoe mm: rename _count, field of the struct page, to _refcount 2016-05-19 19:12:14 -07:00
drbd drbd: al_write_transaction: skip re-scanning of bitmap page pointer array 2016-06-13 21:43:08 -06:00
mtip32xx drivers: use req op accessor 2016-06-07 13:41:38 -06:00
paride paride: make 'verbose' parameter an 'int' again 2016-03-15 16:55:16 -07:00
rsxx block, fs, mm, drivers: use bio set/get op accessors 2016-06-07 13:41:38 -06:00
xen-blkback block: add a separate operation type for secure erase 2016-06-09 09:52:25 -06:00
zram block, fs, mm, drivers: use bio set/get op accessors 2016-06-07 13:41:38 -06:00
amiflop.c block: drop owner assignment from platform_drivers 2014-10-20 16:20:18 +02:00
ataflop.c Merge branch 'for-3.16/core' of git://git.kernel.dk/linux-block into next 2014-06-02 09:29:34 -07:00
brd.c block, fs, mm, drivers: use bio set/get op accessors 2016-06-07 13:41:38 -06:00
cciss_cmd.h
cciss_scsi.c scsi: Do not set cmd_per_lun to 1 in the host template 2015-05-31 18:06:28 -07:00
cciss_scsi.h
cciss.c SCSI misc on 20160113 2016-01-13 19:37:36 -08:00
cciss.h
cryptoloop.c block: cryptoloop - Use new skcipher interface 2016-01-27 20:35:43 +08:00
DAC960.c block: use pci_zalloc_consistent 2014-08-08 15:57:28 -07:00
DAC960.h
floppy.c block, fs, mm, drivers: use bio set/get op accessors 2016-06-07 13:41:38 -06:00
hd.c block: hd: remove deprecated IRQF_DISABLED 2014-10-01 08:16:07 -06:00
Kconfig cpqarray: remove it from the kernel 2016-03-14 09:06:01 -06:00
loop.c block, drivers: add REQ_OP_FLUSH operation 2016-06-07 13:41:38 -06:00
loop.h block: loop: support DIO & AIO 2015-09-23 11:01:16 -06:00
Makefile drivers:block: cpqarray clean up 2016-03-15 15:59:47 -07:00
mg_disk.c mg_disk: fix enum REQ_OP_ kbuild error 2016-06-08 15:01:16 -06:00
nbd.c block, drivers: add REQ_OP_FLUSH operation 2016-06-07 13:41:38 -06:00
null_blk.c null_blk: add lightnvm null_blk device to the nullb_list 2016-03-18 18:10:37 -07:00
osdblk.c block, drivers: add REQ_OP_FLUSH operation 2016-06-07 13:41:38 -06:00
pktcdvd.c block, fs, mm, drivers: use bio set/get op accessors 2016-06-07 13:41:38 -06:00
ps3disk.c block, drivers: add REQ_OP_FLUSH operation 2016-06-07 13:41:38 -06:00
ps3vram.c block: change ->make_request_fn() and users to return a queue cookie 2015-11-07 10:40:46 -07:00
rbd_types.h rbd: get rid of RBD_MAX_SEG_NAME_LEN 2012-12-17 08:37:29 -06:00
rbd.c drivers: use req op accessor 2016-06-07 13:41:38 -06:00
skd_main.c block, drivers: add REQ_OP_FLUSH operation 2016-06-07 13:41:38 -06:00
skd_s1120.h skd: fix formatting in skd_s1120.h 2013-11-08 09:10:30 -07:00
smart1,2.h
sunvdc.c sunvdc: reconnect ldc after vds service domain restarts 2014-12-11 18:52:45 -08:00
swim3.c powerpc: Move Power Macintosh drivers to generic byteswappers 2015-03-23 14:29:40 +11:00
swim_asm.S
swim.c block: drop owner assignment from platform_drivers 2014-10-20 16:20:18 +02:00
sx8.c sx8: use real time for the command seconds 2015-12-23 08:42:59 -07:00
umem.c block, drivers, cgroup: use op_is_write helper instead of checking for REQ_WRITE 2016-06-07 13:41:38 -06:00
umem.h
virtio_blk.c block, drivers: add REQ_OP_FLUSH operation 2016-06-07 13:41:38 -06:00
xen-blkfront.c block: add a separate operation type for secure erase 2016-06-09 09:52:25 -06:00
xsysace.c block: systemace: Remove .owner field for driver 2014-08-21 20:37:54 -05:00
z2ram.c block: remove struct request buffer member 2014-04-15 14:03:02 -06:00