]> git.karo-electronics.de Git - karo-tx-linux.git/commit
drbd: improve throttling decisions of background resynchronisation
authorLars Ellenberg <lars.ellenberg@linbit.com>
Fri, 20 Dec 2013 10:22:13 +0000 (11:22 +0100)
committerPhilipp Reisner <philipp.reisner@linbit.com>
Thu, 10 Jul 2014 16:35:13 +0000 (18:35 +0200)
commitad3fee790088d36ad862e31535b5b99c25adeef4
tree916a5c23cf57283f9f6a5abf8418364c52249ad9
parent7753a4c17f9e305ed19d8851e1a3154c8c9abaaf
drbd: improve throttling decisions of background resynchronisation

Background resynchronisation does some "side-stepping", or throttles
itself, if it detects application IO activity, and the current resync
rate estimate is above the configured "cmin-rate".

What was not detected: if there is no application IO,
because it blocks on activity log transactions.

Introduce a new atomic_t ap_actlog_cnt, tracking such blocked requests,
and count non-zero as application IO activity.
This counter is exposed at proc_details level 2 and above.

Also make sure to release the currently locked resync extent
if we side-step due to such voluntary throttling.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
drivers/block/drbd/drbd_actlog.c
drivers/block/drbd/drbd_int.h
drivers/block/drbd/drbd_main.c
drivers/block/drbd/drbd_proc.c
drivers/block/drbd/drbd_receiver.c
drivers/block/drbd/drbd_req.c
drivers/block/drbd/drbd_worker.c