Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 10 Apr 2000 04:58:56 -0700
From:      Alfred Perlstein <bright@wintelcom.net>
To:        msmith@FreeBSD.ORG
Cc:        stable@FreeBSD.ORG
Subject:   commit candidate Re: Mini amr MFC?
Message-ID:  <20000410045856.Y4381@fw.wintelcom.net>
In-Reply-To: <20000410031100.S4381@fw.wintelcom.net>; from bright@wintelcom.net on Mon, Apr 10, 2000 at 03:11:00AM -0700
References:  <20000410031100.S4381@fw.wintelcom.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Ok, this looks like my machine is doing fine with this patch and doesn't
wedge under heavy IO anymore.

Mike, any objections to putting this in 4.0?

thanks,
-Alfred

* Alfred Perlstein <bright@wintelcom.net> [000410 03:13] wrote:
> Mike, I've been really busy over here with a _lot_ of things. :)
> 
> Anyhow, I wasn't able to follow the entire thread about resolving
> the lockups with the amr driver (I was getting lockups as well).
> 
> The gist I got from what I was able to skim was that the deciding
> change that made it stable was simply limiting the commands to
> AMR_LIMITCMD (120).
> 
> Anyhow, here's a diff, I plan to commit it asap if my box survives
> a cvs up off a local repo after patching, or would that not solve
> the problem in RELENG_4?
> 
> 
> Index: amr.c
> ===================================================================
> RCS file: /home/ncvs/src/sys/dev/amr/amr.c,v
> retrieving revision 1.7
> diff -u -r1.7 amr.c
> --- amr.c	2000/02/17 23:33:57	1.7
> +++ amr.c	2000/04/10 09:35:47
> @@ -698,7 +698,11 @@
>  			  ae->ae_adapter.aa_memorysize);
>  	}
>  	sc->amr_maxdrives = 8;
> -	sc->amr_maxio = ae->ae_adapter.aa_maxio;
> +	/*
> +	 * Cap the maximum number of outstanding I/Os.  AMI's Linux driver doesn't trust
> +	 * the controller's reported value, and lockups have been seen when we do.
> +	 */
> +	sc->amr_maxio = imin(ae->ae_adapter.aa_maxio, AMR_LIMITCMD);
>  	for (i = 0; i < ae->ae_ldrv.al_numdrives; i++) {
>  	    sc->amr_drive[i].al_size = ae->ae_ldrv.al_size[i];
>  	    sc->amr_drive[i].al_state = ae->ae_ldrv.al_state[i];
> Index: amrvar.h
> ===================================================================
> RCS file: /home/ncvs/src/sys/dev/amr/amrvar.h,v
> retrieving revision 1.2
> diff -u -r1.2 amrvar.h
> --- amrvar.h	1999/10/26 23:18:57	1.2
> +++ amrvar.h	2000/04/10 09:34:28
> @@ -38,6 +38,7 @@
>  #define AMR_SIGNATURE	0x3344
>  
>  #define AMR_MAXCMD	255		/* ident = 0 not allowed */
> +#define AMR_LIMITCMD	120
>  #define AMR_MAXLD      	40
>  
>  #define AMR_BLKSIZE	512
> 
> 
> -- 
> -Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org]
> "I have the heart of a child; I keep it in a jar on my desk."
> 
> 
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-stable" in the body of the message

-- 
-Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org]
"I have the heart of a child; I keep it in a jar on my desk."


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




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