From owner-svn-src-projects@FreeBSD.ORG Tue Jan 11 22:40:18 2011 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8F2DF106566B; Tue, 11 Jan 2011 22:40:18 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7E8008FC15; Tue, 11 Jan 2011 22:40:18 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id p0BMeIVN040437; Tue, 11 Jan 2011 22:40:18 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id p0BMeIve040435; Tue, 11 Jan 2011 22:40:18 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201101112240.p0BMeIve040435@svn.freebsd.org> From: Warner Losh Date: Tue, 11 Jan 2011 22:40:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r217293 - projects/graid/head/sys/geom/raid X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Jan 2011 22:40:18 -0000 Author: imp Date: Tue Jan 11 22:40:18 2011 New Revision: 217293 URL: http://svn.freebsd.org/changeset/base/217293 Log: Go ahead and log read recovery operations now that I grok the G_RAID_LOGREQ macro. 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 Tue Jan 11 22:15:30 2011 (r217292) +++ projects/graid/head/sys/geom/raid/tr_raid1.c Tue Jan 11 22:40:18 2011 (r217293) @@ -300,12 +300,17 @@ g_raid_tr_iodone_raid1(struct g_raid_tr_ pbp = bp->bio_parent; if (bp->bio_error != 0 && bp->bio_cmd == BIO_READ && pbp->bio_children == 1) { + /* * Retry the read error on the other disk drive, if * available, before erroring out the read. */ vol = tr->tro_volume; sd->sd_read_errs++; + G_RAID_LOGREQ(3, bp, + "Read failure, attempting recovery. %d total read errs", + sd->sd_read_errs); + /* * XXX Check threshold of sd_read_errs here to declare * this subdisk bad? @@ -319,6 +324,7 @@ g_raid_tr_iodone_raid1(struct g_raid_tr_ cbp = g_clone_bio(pbp); if (cbp == NULL) break; + G_RAID_LOGREQ(3, cbp, "Retrying read"); g_raid_subdisk_iostart(nsd, cbp); pbp->bio_inbed++; return; @@ -329,6 +335,7 @@ g_raid_tr_iodone_raid1(struct g_raid_tr_ * * XXX degrade/break the mirror? */ + G_RAID_LOGREQ(3, bp, "Couldn't retry read, failing it"); } pbp->bio_inbed++; if (pbp->bio_cmd == BIO_READ && pbp->bio_children == 2) { @@ -344,6 +351,7 @@ g_raid_tr_iodone_raid1(struct g_raid_tr_ * * XXX TODO */ + G_RAID_LOGREQ(3, bp, "Recovered data from other drive"); } if (pbp->bio_children == pbp->bio_inbed) { pbp->bio_completed = pbp->bio_length;