aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block/drbd/drbd_int.h
diff options
context:
space:
mode:
authorLars Ellenberg <lars.ellenberg@linbit.com>2014-04-28 12:43:19 -0400
committerJens Axboe <axboe@fb.com>2014-04-30 15:46:54 -0400
commite82998743385ca861b9ec919eb2ba8177ce72180 (patch)
tree4cf895d0a9633eff1f11363f98ebe60713a4bcd7 /drivers/block/drbd/drbd_int.h
parent0e49d7b014c5d591a053d08888a455bd74a88646 (diff)
drbd: don't let application IO pre-empt resync too often
Before, application IO could pre-empt resync activity for up to hardcoded 20 seconds per resync request. A very busy server could throttle the effective resync bandwidth down to one request per 20 seconds. Now, we only let application IO pre-empt resync traffic while the current resync rate estimate is above c-min-rate. If you disable the c-min-rate throttle feature (set c-min-rate = 0), application IO will no longer pre-empt resync traffic at all. 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/block/drbd/drbd_int.h')
-rw-r--r--drivers/block/drbd/drbd_int.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/block/drbd/drbd_int.h b/drivers/block/drbd/drbd_int.h
index 361a2e9cd727..f0cabea5cda2 100644
--- a/drivers/block/drbd/drbd_int.h
+++ b/drivers/block/drbd/drbd_int.h
@@ -1339,7 +1339,8 @@ extern void start_resync_timer_fn(unsigned long data);
1339/* drbd_receiver.c */ 1339/* drbd_receiver.c */
1340extern int drbd_receiver(struct drbd_thread *thi); 1340extern int drbd_receiver(struct drbd_thread *thi);
1341extern int drbd_asender(struct drbd_thread *thi); 1341extern int drbd_asender(struct drbd_thread *thi);
1342extern int drbd_rs_should_slow_down(struct drbd_device *device, sector_t sector); 1342extern bool drbd_rs_c_min_rate_throttle(struct drbd_device *device);
1343extern bool drbd_rs_should_slow_down(struct drbd_device *device, sector_t sector);
1343extern int drbd_submit_peer_request(struct drbd_device *, 1344extern int drbd_submit_peer_request(struct drbd_device *,
1344 struct drbd_peer_request *, const unsigned, 1345 struct drbd_peer_request *, const unsigned,
1345 const int); 1346 const int);