summaryrefslogtreecommitdiff
path: root/drivers/ata
diff options
context:
space:
mode:
authorLars Ellenberg <lars.ellenberg@linbit.com>2016-06-13 22:26:38 (GMT)
committerJens Axboe <axboe@fb.com>2016-06-14 03:43:08 (GMT)
commit27ea1d876e16c0ca5ae6335fc85cf4f278f5c98c (patch)
treecf6bc0c2019b0b573ca90112003976063d480884 /drivers/ata
parent13c2088d41e9c63e1a484a08a1d250ff74b299b5 (diff)
downloadlinux-27ea1d876e16c0ca5ae6335fc85cf4f278f5c98c.tar.xz
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>
Diffstat (limited to 'drivers/ata')
0 files changed, 0 insertions, 0 deletions