mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-23 05:56:14 -04:00
drbd: revert "delay probes", feature is being re-implemented differently
It was a now abandoned attempt to throttle resync bandwidth based on the delay it causes on the bulk data socket. It has no userbase yet, and has been disabled by 9173465ccb51c09cc3102a10af93e9f469a0af6f already. This removes the now unused code. The basic feature, namely using up "idle" bandwith of network and disk IO subsystem, with minimal impact to application IO, is being reimplemented differently. Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com> Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
This commit is contained in:
committed by
Jens Axboe
parent
85f4cc17a6
commit
e7f52dfb4f
@@ -2184,43 +2184,6 @@ int drbd_send_ov_request(struct drbd_conf *mdev, sector_t sector, int size)
|
||||
return ok;
|
||||
}
|
||||
|
||||
static int drbd_send_delay_probe(struct drbd_conf *mdev, struct drbd_socket *ds)
|
||||
{
|
||||
struct p_delay_probe dp;
|
||||
int offset, ok = 0;
|
||||
struct timeval now;
|
||||
|
||||
mutex_lock(&ds->mutex);
|
||||
if (likely(ds->socket)) {
|
||||
do_gettimeofday(&now);
|
||||
offset = now.tv_usec - mdev->dps_time.tv_usec +
|
||||
(now.tv_sec - mdev->dps_time.tv_sec) * 1000000;
|
||||
dp.seq_num = cpu_to_be32(mdev->delay_seq);
|
||||
dp.offset = cpu_to_be32(offset);
|
||||
|
||||
ok = _drbd_send_cmd(mdev, ds->socket, P_DELAY_PROBE,
|
||||
(struct p_header *)&dp, sizeof(dp), 0);
|
||||
}
|
||||
mutex_unlock(&ds->mutex);
|
||||
|
||||
return ok;
|
||||
}
|
||||
|
||||
static int drbd_send_delay_probes(struct drbd_conf *mdev)
|
||||
{
|
||||
int ok;
|
||||
|
||||
mdev->delay_seq++;
|
||||
do_gettimeofday(&mdev->dps_time);
|
||||
ok = drbd_send_delay_probe(mdev, &mdev->meta);
|
||||
ok = ok && drbd_send_delay_probe(mdev, &mdev->data);
|
||||
|
||||
mdev->dp_volume_last = mdev->send_cnt;
|
||||
mod_timer(&mdev->delay_probe_timer, jiffies + mdev->sync_conf.dp_interval * HZ / 10);
|
||||
|
||||
return ok;
|
||||
}
|
||||
|
||||
/* called on sndtimeo
|
||||
* returns FALSE if we should retry,
|
||||
* TRUE if we think connection is dead
|
||||
@@ -2369,27 +2332,6 @@ static int _drbd_send_zc_ee(struct drbd_conf *mdev, struct drbd_epoch_entry *e)
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void consider_delay_probes(struct drbd_conf *mdev)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
static int w_delay_probes(struct drbd_conf *mdev, struct drbd_work *w, int cancel)
|
||||
{
|
||||
if (!cancel && mdev->state.conn == C_SYNC_SOURCE)
|
||||
drbd_send_delay_probes(mdev);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void delay_probe_timer_fn(unsigned long data)
|
||||
{
|
||||
struct drbd_conf *mdev = (struct drbd_conf *) data;
|
||||
|
||||
if (list_empty(&mdev->delay_probe_work.list))
|
||||
drbd_queue_work(&mdev->data.work, &mdev->delay_probe_work);
|
||||
}
|
||||
|
||||
/* Used to send write requests
|
||||
* R_PRIMARY -> Peer (P_DATA)
|
||||
*/
|
||||
@@ -2453,9 +2395,6 @@ int drbd_send_dblock(struct drbd_conf *mdev, struct drbd_request *req)
|
||||
|
||||
drbd_put_data_sock(mdev);
|
||||
|
||||
if (ok)
|
||||
consider_delay_probes(mdev);
|
||||
|
||||
return ok;
|
||||
}
|
||||
|
||||
@@ -2502,9 +2441,6 @@ int drbd_send_block(struct drbd_conf *mdev, enum drbd_packets cmd,
|
||||
|
||||
drbd_put_data_sock(mdev);
|
||||
|
||||
if (ok)
|
||||
consider_delay_probes(mdev);
|
||||
|
||||
return ok;
|
||||
}
|
||||
|
||||
@@ -2666,10 +2602,6 @@ static void drbd_set_defaults(struct drbd_conf *mdev)
|
||||
/* .rate = */ DRBD_RATE_DEF,
|
||||
/* .after = */ DRBD_AFTER_DEF,
|
||||
/* .al_extents = */ DRBD_AL_EXTENTS_DEF,
|
||||
/* .dp_volume = */ DRBD_DP_VOLUME_DEF,
|
||||
/* .dp_interval = */ DRBD_DP_INTERVAL_DEF,
|
||||
/* .throttle_th = */ DRBD_RS_THROTTLE_TH_DEF,
|
||||
/* .hold_off_th = */ DRBD_RS_HOLD_OFF_TH_DEF,
|
||||
/* .verify_alg = */ {}, 0,
|
||||
/* .cpu_mask = */ {}, 0,
|
||||
/* .csums_alg = */ {}, 0,
|
||||
@@ -2736,24 +2668,17 @@ void drbd_init_set_defaults(struct drbd_conf *mdev)
|
||||
INIT_LIST_HEAD(&mdev->unplug_work.list);
|
||||
INIT_LIST_HEAD(&mdev->md_sync_work.list);
|
||||
INIT_LIST_HEAD(&mdev->bm_io_work.w.list);
|
||||
INIT_LIST_HEAD(&mdev->delay_probes);
|
||||
INIT_LIST_HEAD(&mdev->delay_probe_work.list);
|
||||
|
||||
mdev->resync_work.cb = w_resync_inactive;
|
||||
mdev->unplug_work.cb = w_send_write_hint;
|
||||
mdev->md_sync_work.cb = w_md_sync;
|
||||
mdev->bm_io_work.w.cb = w_bitmap_io;
|
||||
mdev->delay_probe_work.cb = w_delay_probes;
|
||||
init_timer(&mdev->resync_timer);
|
||||
init_timer(&mdev->md_sync_timer);
|
||||
init_timer(&mdev->delay_probe_timer);
|
||||
mdev->resync_timer.function = resync_timer_fn;
|
||||
mdev->resync_timer.data = (unsigned long) mdev;
|
||||
mdev->md_sync_timer.function = md_sync_timer_fn;
|
||||
mdev->md_sync_timer.data = (unsigned long) mdev;
|
||||
mdev->delay_probe_timer.function = delay_probe_timer_fn;
|
||||
mdev->delay_probe_timer.data = (unsigned long) mdev;
|
||||
|
||||
|
||||
init_waitqueue_head(&mdev->misc_wait);
|
||||
init_waitqueue_head(&mdev->state_wait);
|
||||
|
||||
Reference in New Issue
Block a user