svn commit: r218281 - projects/graid/head/sys/geom/raid
Alexander Motin
mav at FreeBSD.org
Fri Feb 4 15:47:15 UTC 2011
Author: mav
Date: Fri Feb 4 15:47:14 2011
New Revision: 218281
URL: http://svn.freebsd.org/changeset/base/218281
Log:
When volume is not idle, use shorter rebuild requests and truncate size of
requests that already running. This should be a compromise between faster
rebuild and lower payload performance degradation. Not exactly solution I
would like to see, but still better.
Modified:
projects/graid/head/sys/geom/raid/tr_raid1.c
Modified: projects/graid/head/sys/geom/raid/tr_raid1.c
==============================================================================
--- projects/graid/head/sys/geom/raid/tr_raid1.c Fri Feb 4 15:45:48 2011 (r218280)
+++ projects/graid/head/sys/geom/raid/tr_raid1.c Fri Feb 4 15:47:14 2011 (r218281)
@@ -68,7 +68,7 @@ SYSCTL_UINT(_kern_geom_raid_raid1, OID_A
&g_raid1_rebuild_fair_io, RAID1_REBUILD_FAIR_IO,
"Fraction of the I/O bandwidth to use when disk busy for rebuild.");
-#define RAID1_REBUILD_CLUSTER_IDLE 10
+#define RAID1_REBUILD_CLUSTER_IDLE 100
static int g_raid1_rebuild_cluster_idle = RAID1_REBUILD_CLUSTER_IDLE;
TUNABLE_INT("kern.geom.raid.raid1.rebuild_cluster_idle",
&g_raid1_rebuild_slab);
@@ -578,6 +578,8 @@ g_raid_tr_iostart_raid1(struct g_raid_tr
!(bp->bio_cflags & G_RAID_BIO_FLAG_SPECIAL)) {
if (--trs->trso_fair_io <= 0)
g_raid_tr_raid1_rebuild_some(tr, trs->trso_failed_sd);
+ /* Make this new or running now round short. */
+ trs->trso_recover_slabs = 0;
}
switch (bp->bio_cmd) {
case BIO_READ:
More information about the svn-src-projects
mailing list