From owner-freebsd-scsi@FreeBSD.ORG Wed Aug 6 08:29:50 2003 Return-Path: Delivered-To: freebsd-scsi@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1A4D337B401; Wed, 6 Aug 2003 08:29:50 -0700 (PDT) Received: from mail.sandvine.com (sandvine.com [199.243.201.138]) by mx1.FreeBSD.org (Postfix) with ESMTP id 33BC943FA3; Wed, 6 Aug 2003 08:29:49 -0700 (PDT) (envelope-from don@sandvine.com) Received: by mail.sandvine.com with Internet Mail Service (5.5.2653.19) id <305LHM8S>; Wed, 6 Aug 2003 11:29:47 -0400 Message-ID: From: Don Bowman To: "'Justin T. Gibbs'" , Don Bowman , "'freebsd-scsi@freebsd.org'" , "'aic7xxx@freebsd.org'" Date: Wed, 6 Aug 2003 11:29:42 -0400 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: text/plain; charset="iso-8859-1" Subject: RE: Ongoing U320 AIC7902 Seagate ST318453LW issues, SCB timed out X-BeenThere: freebsd-scsi@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: SCSI subsystem List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Aug 2003 15:29:50 -0000 > From: Justin T. Gibbs [mailto:gibbs@scsiguy.com] > Sent: August 6, 2003 10:59 > To: Don Bowman; 'freebsd-scsi@freebsd.org'; 'aic7xxx@freebsd.org' > Subject: RE: Ongoing U320 AIC7902 Seagate ST318453LW issues, SCB timed > out > > > > I'm continuing to test without the throttle. I'm @ a loss for why > > it tracks some systems and not others. > > > > There doesn't seem to be a reliable way to drop the number of > > tags since the system may not always come up. I don't think > > there's an option in the kernel to do so. > > Just add a call to camcontrol early in the rc process, prior to > fsck starting up. camcontrol is on the root filesystem. You can > also modify the ahd driver to tell cam that it can only handle 32 > commands per-target. I offer this patch to make a loader tunable out of the maximum tags supported. $ cvs diff -u3 aic79xx_osm.c Index: aic79xx_osm.c =================================================================== RCS file: /usr/cvs/src/sys/dev/aic7xxx/aic79xx_osm.c,v retrieving revision 1.3.2.3.1000.3 diff -u -3 -r1.3.2.3.1000.3 aic79xx_osm.c --- aic79xx_osm.c 28 Jul 2003 00:26:42 -0000 1.3.2.3.1000.3 +++ aic79xx_osm.c 6 Aug 2003 15:28:44 -0000 @@ -119,10 +119,17 @@ struct cam_path *path; long s; int count; + int max_tags = 256; /* Controller can really handle 512 transactions + per device, but CAM is still using a byte + to hold the max tag depth field + */ count = 0; sim = NULL; + sprintf(ahd_info, "hw.ahd%d.max_tags", device_get_unit(ahd->dev_softc)); + TUNABLE_INT_FETCH(ahd_info, &max_tags); + ahd_controller_info(ahd, ahd_info); printf("%s\n", ahd_info); ahd_lock(ahd, &s); @@ -139,7 +146,7 @@ */ sim = cam_sim_alloc(ahd_action, ahd_poll, "ahd", ahd, device_get_unit(ahd->dev_softc), - 1, /*XXX*/256, devq); + 1, max_tags, devq); if (sim == NULL) { cam_simq_free(devq); goto fail;