Thread (4 messages) 4 messages, 2 authors, 2012-10-31

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

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help