Re: [PATCH 3/5] md: Increase the frequency of recording checkpoint of recovery.
flat view
From: NeilBrown <hidden>
Date: 2012-10-28 21:41:47
On Sat, 27 Oct 2012 10:28:20 +0800 majianpeng [off-list ref] wrote:
quoted hunk ↗ jump to hunk
With the hard disk capacity of larger,the entire recovery process becomes longer.So it should increase the frequency. Supposed the speed of recovery is 100MB/s(i think for HDD is good). The total time of recovery 4TB hdd is about 666 minutes.So change the frequency from 16 to 64 times,it's about 10mins. Signed-off-by: Jianpeng Ma <redacted> --- drivers/md/md.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)diff --git a/drivers/md/md.c b/drivers/md/md.c index 01e25bd..ba328ee 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c@@ -7446,7 +7446,7 @@ void md_do_sync(struct md_thread *thread) if (!test_bit(MD_RECOVERY_RESHAPE, &mddev->recovery) && ((mddev->curr_resync > mddev->curr_resync_completed && (mddev->curr_resync - mddev->curr_resync_completed) - > (max_sectors >> 4)) || + > (max_sectors >> 6)) || (j - mddev->curr_resync_completed)*2 >= mddev->resync_max - mddev->curr_resync_completed )) {
I don't like this - the number '6' is completely arbitrary. The original '4' was never about number of minutes. It was a fraction of the total effort needed. I wanted to make sure you only repeated at most 10% of the required effort (one order of magnitude). >>4 is about 6% and easy to calculate. If you want it to be about time (which I don't object to), then make it about time. Keep track of the last time we updated curr_resync_completed, and if that is more than a few minutes ago, update it again. This is what I said last time - if you want something to be based on time, test the time. If 'echo idle > sync_action' doesn't work (Which it seems it doesn't), then it is OK to just do it in the kernel. NeilBrown
Attachments
- signature.asc [application/pgp-signature] 828 bytes