Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 2 May 2004 19:52:19 +0200
From:      Burkard Meyendriesch <bm@malepartus.de>
To:        Bruce Evans <bde@zeta.org.au>
Cc:        atkin901@yahoo.com
Subject:   Re: sio: lots of silo overflows on Asus K8V with Moxa Smartio C104H/PCI solved
Message-ID:  <20040502195219.21874618.bm@malepartus.de>
In-Reply-To: <20040501212314.N20783@gamplex.bde.org>
References:  <20040426111754.38a855c4.bm@malepartus.de> <20040426233925.Y5300@gamplex.bde.org> <20040430102504.477152ce.bm@malepartus.de> <c6u3nd$f8q$1@sea.gmane.org> <20040501102705.7a7ec726.bm@malepartus.de> <20040501212314.N20783@gamplex.bde.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 1 May 2004 21:41:27 +1000 (EST) Bruce Evans wrote:
> ...
> So there must be something holding Giant for too long, and if my other
> patch doesn't help then there must also be a thread with priority
> higher than PI_TTYLOW that runs for too long.  This doesn't seem to
> be much of a problem in my local configurations, so you can test fixes
> and workarounds for it better than me.  Try the following untested
> hack to get higher priority than most threads:
> 
> %%%
> Index: sio.c
> ===================================================================
> RCS file: /home/ncvs/src/sys/dev/sio/sio.c,v
> retrieving revision 1.428
> diff -u -2 -r1.428 sio.c
> --- sio.c	30 Apr 2004 21:16:52 -0000	1.428
> +++ sio.c	1 May 2004 11:29:44 -0000
> @@ -1164,5 +1302,6 @@
>  		if (ret) {
>  			ret = BUS_SETUP_INTR(device_get_parent(dev), dev,
> -					     com->irqres, INTR_TYPE_TTY,
> +					     com->irqres,
> +					     INTR_TYPE_CLOCK | INTR_MPSAFE,
>  					     siointr, com, &com->cookie);
>  			if (ret == 0)
> %%%
> 
> This is a superset of the previous patch.
> 
I applied your patch to version 1.428 of sio.c of my actual source
tree. The compiler complains:

/usr/src/sys/dev/sio/sio.c: In function `sioattach':
/usr/src/sys/dev/sio/sio.c:1167: error: `INTR_TYPE_CLOCK' undeclared (first use in this function)
/usr/src/sys/dev/sio/sio.c:1167: error: (Each undeclared identifier is reported only once
/usr/src/sys/dev/sio/sio.c:1167: error: for each function it appears in.)
*** Error code 1

I grep'ed the complete source tree for INTR_TYPE_CLOCK but couldn't
find it. Did you mean INTR_TYPE_CLK out of /usr/src/sys/sys/bus.h?

I tried INTR_TYPE_CLK. The boot message is now:

May  2 16:09:34 Reineke kernel: puc0: <Moxa Technologies, Smartio C104H/PCI> port 0xa000-0xa00f,0xa400-0xa43f,0xa800-0xa87f irq 19 at device 14.0 on pci0
May  2 16:09:34 Reineke kernel: puc0: Reserved 0x40 bytes for rid 0x18 type 4 at 0xa400
May  2 16:09:34 Reineke kernel: sio4: <Moxa Technologies, Smartio C104H/PCI> on puc0
May  2 16:09:34 Reineke kernel: sio4: type 16550A
May  2 16:09:34 Reineke kernel: sio5: <Moxa Technologies, Smartio C104H/PCI> on puc0
May  2 16:09:34 Reineke kernel: sio5: type 16550A
May  2 16:09:34 Reineke kernel: sio6: <Moxa Technologies, Smartio C104H/PCI> on puc0
May  2 16:09:34 Reineke kernel: sio6: type 16550A
May  2 16:09:34 Reineke kernel: sio7: <Moxa Technologies, Smartio C104H/PCI> on puc0
May  2 16:09:34 Reineke kernel: sio7: type 16550A

I made a complete backup of my Palm Tungsten T3. systat -v showed
me a sustained interrupt rate of 1400 ints/s on puc while iostat 1
showed reasonable 11000 chars of input/s at 115200 bps. The Palm
backup took about 58 minutes and produced absolutely NO silo
overflow. The problem is obviously solved . . .

Thank you!

> > Btw, "device apic" doesn't exist; did you mean "device acpi"?
> 
> They both exist in -current.  "device apic" is newer.
> 
/usr/src/UPDATING explains "device apic" as a device for i386 kernels.
For amd64 it doesn't seem to work.

Burkard

--
Burkard Meyendriesch
Stevern 2
D-48301 Nottuln



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