Subject: Re: 10x kernel slowdown in less than a week?
To: David Gilbert <dgilbert@jaywon.pci.on.ca>
From: Jason Thorpe <thorpej@nas.nasa.gov>
List: port-sparc
Date: 02/28/1996 19:31:40
On Wed, 28 Feb 1996 20:19:07 -0500 (EST)
David Gilbert <dgilbert@jaywon.pci.on.ca> wrote:
> I don't know what people have been doing, but now, using the
> same config file as a week ago, I get a kernel that is nearly 10x
> slower for disk operations.
>
> My Sun4/260 usually takes about 5 minutes to fsck it's 5 disks
> (5 partitions, 2 of the disks are one ccd). With Monday's Sup, it's
> taking nearly 45 minutes. The whole thing 'in use' is slow, too --- X
> and launching applications is noticably slower.
It turns out this is my fault. The MI 5380 code did something I didn't
really expect to force *polling* (i.e. non-interrupt driven I/O) during
regular operation. The change I made to keep the si driver from using
DVMA during a crash dump worked on my system, because I use
interrupt-driver I/O, but according to your kernel config, you do not.
I've backed out the offending change.
Sorry 'bout that.
(*sigh* I'll have to come up with another way to deal with that...)
BTW, attached below is the patch I just committed.
--------------------------------------------------------------------------
Jason R. Thorpe thorpej@nas.nasa.gov
NASA Ames Research Center Home: 408.866.1912
NAS: M/S 258-6 Work: 415.604.0935
Moffett Field, CA 94035 Pager: 415.428.6939
----- snip -----
Index: si.c
===================================================================
RCS file: /a/cvsroot/src/sys/arch/sparc/dev/si.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -c -r1.16 -r1.17
*** si.c 1996/02/25 21:53:57 1.16
--- si.c 1996/02/29 03:28:38 1.17
***************
*** 1,4 ****
! /* $NetBSD: si.c,v 1.16 1996/02/25 21:53:57 pk Exp $ */
/*
* Copyright (c) 1995 Jason R. Thorpe
--- 1,4 ----
! /* $NetBSD: si.c,v 1.17 1996/02/29 03:28:38 thorpej Exp $ */
/*
* Copyright (c) 1995 Jason R. Thorpe
***************
*** 635,651 ****
if ((sc->sc_options & SI_ENABLE_DMA) == 0)
return;
#endif
-
- /*
- * If the transfer flags say "poll", that means we're
- * probably doing:
- * - autoconfiguration
- * - crash dump
- * Doing DVMA during a crash dump can be potentially dangerous,
- * so we avoid it here.
- */
- if (xs->flags & SCSI_POLL)
- return;
addr = (u_long) ncr_sc->sc_dataptr;
xlen = ncr_sc->sc_datalen;
--- 635,640 ----