Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Jan 2010 20:51:04 +0000 (UTC)
From:      Jung-uk Kim <jkim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
Subject:   svn commit: r201671 - stable/7/sys/dev/aac
Message-ID:  <201001062051.o06Kp4V9036041@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jkim
Date: Wed Jan  6 20:51:04 2010
New Revision: 201671
URL: http://svn.freebsd.org/changeset/base/201671

Log:
  MFC:	r200251
  
  - Try pre-allocating all FIBs upfront.  Previously we tried pre-allocating
  128 FIBs first and allocated more later if necessary.  Remove now unused
  definitions from the header file.
  - Force sequential bus scanning.  It seems parallel scanning is in fact
  slower and causes more harm than good.  Adjust a comment to reflect that.

Modified:
  stable/7/sys/dev/aac/aac.c
  stable/7/sys/dev/aac/aac_cam.c
  stable/7/sys/dev/aac/aacvar.h
Directory Properties:
  stable/7/sys/   (props changed)
  stable/7/sys/cddl/contrib/opensolaris/   (props changed)
  stable/7/sys/contrib/dev/acpica/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)

Modified: stable/7/sys/dev/aac/aac.c
==============================================================================
--- stable/7/sys/dev/aac/aac.c	Wed Jan  6 20:46:05 2010	(r201670)
+++ stable/7/sys/dev/aac/aac.c	Wed Jan  6 20:51:04 2010	(r201671)
@@ -604,7 +604,7 @@ aac_alloc(struct aac_softc *sc)
 	TAILQ_INIT(&sc->aac_fibmap_tqh);
 	sc->aac_commands = malloc(sc->aac_max_fibs * sizeof(struct aac_command),
 				  M_AACBUF, M_WAITOK|M_ZERO);
-	while (sc->total_fibs < AAC_PREALLOCATE_FIBS) {
+	while (sc->total_fibs < sc->aac_max_fibs) {
 		if (aac_alloc_commands(sc) != 0)
 			break;
 	}

Modified: stable/7/sys/dev/aac/aac_cam.c
==============================================================================
--- stable/7/sys/dev/aac/aac_cam.c	Wed Jan  6 20:46:05 2010	(r201670)
+++ stable/7/sys/dev/aac/aac_cam.c	Wed Jan  6 20:51:04 2010	(r201671)
@@ -260,8 +260,11 @@ aac_cam_action(struct cam_sim *sim, unio
 		cpi->hba_inquiry = PI_WIDE_16;
 		cpi->target_sprt = 0;
 
-		/* Resetting via the passthrough causes problems. */
-		cpi->hba_misc = PIM_NOBUSRESET;
+		/*
+		 * Resetting via the passthrough or parallel bus scan
+		 * causes problems.
+		 */
+		cpi->hba_misc = PIM_NOBUSRESET | PIM_SEQSCAN;
 		cpi->hba_eng_cnt = 0;
 		cpi->max_target = camsc->inf->TargetsPerBus;
 		cpi->max_lun = 8;	/* Per the controller spec */

Modified: stable/7/sys/dev/aac/aacvar.h
==============================================================================
--- stable/7/sys/dev/aac/aacvar.h	Wed Jan  6 20:46:05 2010	(r201670)
+++ stable/7/sys/dev/aac/aacvar.h	Wed Jan  6 20:51:04 2010	(r201671)
@@ -57,13 +57,6 @@
 #define AAC_ADAPTER_FIBS	8
 
 /*
- * FIBs are allocated in page-size chunks and can grow up to the 512
- * limit imposed by the hardware.
- */
-#define AAC_PREALLOCATE_FIBS	128
-#define AAC_NUM_MGT_FIB		8
-
-/*
  * The controller reports status events in AIFs.  We hang on to a number of
  * these in order to pass them out to user-space management tools.
  */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201001062051.o06Kp4V9036041>