On Tue, Mar 15, 2011 at 6:41 AM, NeilBrown <neilb@xxxxxxx> wrote: > On Tue, 15 Mar 2011 06:16:22 +0300 CoolCold <coolthecold@xxxxxxxxx> wrote: > >> Hello! >> >> On Tue, Feb 8, 2011 at 3:25 AM, NeilBrown <neilb@xxxxxxx> wrote: >> [snip] >> > Then start either the >> > 'next' array at the beginning, or the 'current' array at the current point >> > (write to sync_min). >> I couldn't find documentation for sync_min/sync_max sysfs params at >> least for repo cloned from >> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.37.y.git >> coolcold@coolcold:~/gits/linux-2.6.37.y$ grep -qi sync_min >> Documentation/md.txt || echo failed find docs >> failed find docs > > Yes, sorry about that. May be I can help and create patch for md.txt after this thread? If yes, it would be nice to get some link for proper patch providing instructions, never did patches for kernel ;) > >> >> As I could understand from sources - resync_min & resync_max are >> expressed in sectors (512bytes?) and are set to 0 & total sectors on >> device accordingly. resync_max value should be divisible by array >> chunk size (in sectors) . After setting this values, one can trugger >> "check" / "repair" into sync_action. > > Yes - sectors (multiples of 512 bytes) > Yes - 0 and a big number. sync_max is actually set to MAX_LONG rather than > the actual total number of sectors. > > Yes - one can trigger 'check' or 'repair' and it will obey these limits. > When it reaches 'sync_max' it will pause rather than complete. You can > use 'select' or 'poll' on "sync_completed" to wait for that number to > reach sync_max. Then you can either increase sync_max, or can write > "idle" to "sync_action". > >> >> My basic idea is to use this method to clear pending sectors from >> SMART checks and looks like this gonna work, am i right? >> > > I don't know exactly what "pending sectors" are, but if they are sectors > which return an error to READ and can be fixed by writing data to them, then > you are right, this should 'clear' any pending sectors. Yes, i meant that kind. > > Of course you will need to be careful about mapping the sector number > from smart to the second number given to 'sync_min'. I guess you meant "sector" not "second" here? > Not only must you > adjust for any partition table, but also the 'data offset' of the > md array must be allowed for. So, for 0.9 metadata format offset is always gonna be 0, right? And if the bad thing happens - bad block with read error is found on metadata section, will mdadm with --update <something> will be enought to do force write? > > NeilBrown > > > >> > Then wait for however long you want, abort the check (write 'idle' to >> > 'sync_action') and find out where it got up to (read sync_min) and record >> > that for next time. >> > >> > NeilBrown >> > >> >> > > -- Best regards, [COOLCOLD-RIPN] -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html