Skip to content

Commit

Permalink
md: remove 'go_faster' option from ->sync_request()
Browse files Browse the repository at this point in the history
This option is not well justified and testing suggests that
it hardly ever makes any difference.

The comment suggests there might be a need to wait for non-resync
activity indicated by ->nr_waiting, however raise_barrier()
already waits for all of that.

So just remove it to simplify reasoning about speed limiting.

This allows us to remove a 'FIXME' comment from raid5.c as that
never used the flag.

Signed-off-by: NeilBrown <[email protected]>
  • Loading branch information
neilbrown committed Apr 21, 2015
1 parent 50c37b1 commit 0931479
Show file tree
Hide file tree
Showing 5 changed files with 6 additions and 21 deletions.
5 changes: 2 additions & 3 deletions drivers/md/md.c
Original file line number Diff line number Diff line change
Expand Up @@ -7820,8 +7820,7 @@ void md_do_sync(struct md_thread *thread)
if (test_bit(MD_RECOVERY_INTR, &mddev->recovery))
break;

sectors = mddev->pers->sync_request(mddev, j, &skipped,
currspeed < speed_min(mddev));
sectors = mddev->pers->sync_request(mddev, j, &skipped);
if (sectors == 0) {
set_bit(MD_RECOVERY_INTR, &mddev->recovery);
break;
Expand Down Expand Up @@ -7898,7 +7897,7 @@ void md_do_sync(struct md_thread *thread)
wait_event(mddev->recovery_wait, !atomic_read(&mddev->recovery_active));

/* tell personality that we are finished */
mddev->pers->sync_request(mddev, max_sectors, &skipped, 1);
mddev->pers->sync_request(mddev, max_sectors, &skipped);

if (mddev_is_clustered(mddev))
md_cluster_ops->resync_finish(mddev);
Expand Down
2 changes: 1 addition & 1 deletion drivers/md/md.h
Original file line number Diff line number Diff line change
Expand Up @@ -506,7 +506,7 @@ struct md_personality
int (*hot_add_disk) (struct mddev *mddev, struct md_rdev *rdev);
int (*hot_remove_disk) (struct mddev *mddev, struct md_rdev *rdev);
int (*spare_active) (struct mddev *mddev);
sector_t (*sync_request)(struct mddev *mddev, sector_t sector_nr, int *skipped, int go_faster);
sector_t (*sync_request)(struct mddev *mddev, sector_t sector_nr, int *skipped);
int (*resize) (struct mddev *mddev, sector_t sectors);
sector_t (*size) (struct mddev *mddev, sector_t sectors, int raid_disks);
int (*check_reshape) (struct mddev *mddev);
Expand Down
9 changes: 1 addition & 8 deletions drivers/md/raid1.c
Original file line number Diff line number Diff line change
Expand Up @@ -2480,7 +2480,7 @@ static int init_resync(struct r1conf *conf)
* that can be installed to exclude normal IO requests.
*/

static sector_t sync_request(struct mddev *mddev, sector_t sector_nr, int *skipped, int go_faster)
static sector_t sync_request(struct mddev *mddev, sector_t sector_nr, int *skipped)
{
struct r1conf *conf = mddev->private;
struct r1bio *r1_bio;
Expand Down Expand Up @@ -2533,13 +2533,6 @@ static sector_t sync_request(struct mddev *mddev, sector_t sector_nr, int *skipp
*skipped = 1;
return sync_blocks;
}
/*
* If there is non-resync activity waiting for a turn,
* and resync is going fast enough,
* then let it though before starting on this new sync request.
*/
if (!go_faster && conf->nr_waiting)
msleep_interruptible(1000);

bitmap_cond_end_sync(mddev->bitmap, sector_nr);
r1_bio = mempool_alloc(conf->r1buf_pool, GFP_NOIO);
Expand Down
8 changes: 1 addition & 7 deletions drivers/md/raid10.c
Original file line number Diff line number Diff line change
Expand Up @@ -2889,7 +2889,7 @@ static int init_resync(struct r10conf *conf)
*/

static sector_t sync_request(struct mddev *mddev, sector_t sector_nr,
int *skipped, int go_faster)
int *skipped)
{
struct r10conf *conf = mddev->private;
struct r10bio *r10_bio;
Expand Down Expand Up @@ -2994,12 +2994,6 @@ static sector_t sync_request(struct mddev *mddev, sector_t sector_nr,
if (conf->geo.near_copies < conf->geo.raid_disks &&
max_sector > (sector_nr | chunk_mask))
max_sector = (sector_nr | chunk_mask) + 1;
/*
* If there is non-resync activity waiting for us then
* put in a delay to throttle resync.
*/
if (!go_faster && conf->nr_waiting)
msleep_interruptible(1000);

/* Again, very different code for resync and recovery.
* Both must result in an r10bio with a list of bios that
Expand Down
3 changes: 1 addition & 2 deletions drivers/md/raid5.c
Original file line number Diff line number Diff line change
Expand Up @@ -5050,8 +5050,7 @@ static sector_t reshape_request(struct mddev *mddev, sector_t sector_nr, int *sk
return reshape_sectors;
}

/* FIXME go_faster isn't used */
static inline sector_t sync_request(struct mddev *mddev, sector_t sector_nr, int *skipped, int go_faster)
static inline sector_t sync_request(struct mddev *mddev, sector_t sector_nr, int *skipped)
{
struct r5conf *conf = mddev->private;
struct stripe_head *sh;
Expand Down

0 comments on commit 0931479

Please sign in to comment.