Re: ports/sysutils/diskcheckd (Re: bad sector in gmirror HDD)
On 25 August 2011 18:54, Chris Rees utis...@gmail.com wrote: On 24 August 2011 16:14, per...@pluto.rain.com wrote: When the specified or calculated rate exceeds 64KB/sec, the required sleep interval between 64KB chunks is less than one second. Since diskcheckd calculates the interval in whole seconds -- because it calls sleep() rather than usleep() or nanosleep() -- an interval of less than one second is calculated as zero ... I suspect the fix will be to calculate in microseconds, and call usleep() instead of sleep(). I think I may have this fixed. Could one of you try the attached patch? I'm especially interested to see if this also clears up the issues reported as connected with gmirror (http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/143566), since I haven't been able to reproduce that part here. Summary of changes: * Calculate delays in microseconds, so that delays of less than one second between reads (needed to implement rates exceeding 64KB/sec) do not get rounded down to zero. * Fix a reinitialization problem when handling SIGHUP. * Additional debug messages (only with -d). * Comment and manpage improvememts. Hi Perry, The changes look good, so if there's no response for a few days I'll commit the changes. Thanks for rescuing the port :) Committed. Thanks! -- Chris Rees | FreeBSD Developer cr...@freebsd.org | http://people.freebsd.org/~crees ___ freebsd-stable@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-stable To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org
Re: ports/sysutils/diskcheckd (Re: bad sector in gmirror HDD)
On 24 August 2011 16:14, per...@pluto.rain.com wrote: When the specified or calculated rate exceeds 64KB/sec, the required sleep interval between 64KB chunks is less than one second. Since diskcheckd calculates the interval in whole seconds -- because it calls sleep() rather than usleep() or nanosleep() -- an interval of less than one second is calculated as zero ... I suspect the fix will be to calculate in microseconds, and call usleep() instead of sleep(). I think I may have this fixed. Could one of you try the attached patch? I'm especially interested to see if this also clears up the issues reported as connected with gmirror (http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/143566), since I haven't been able to reproduce that part here. Summary of changes: * Calculate delays in microseconds, so that delays of less than one second between reads (needed to implement rates exceeding 64KB/sec) do not get rounded down to zero. * Fix a reinitialization problem when handling SIGHUP. * Additional debug messages (only with -d). * Comment and manpage improvememts. Hi Perry, The changes look good, so if there's no response for a few days I'll commit the changes. Thanks for rescuing the port :) Chris -- Chris Rees | FreeBSD Developer cr...@freebsd.org | http://people.freebsd.org/~crees ___ freebsd-stable@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-stable To unsubscribe, send any mail to freebsd-stable-unsubscr...@freebsd.org