Date: Fri, 6 Apr 2001 06:00:02 -0700 (PDT) From: WATANABE Kiyoshi <aab10490@pop16.odn.ne.jp> To: freebsd-bugs@FreeBSD.org Subject: Re: i386/26261: silo overflow problem in sio driver Message-ID: <200104061300.f36D02P60663@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR i386/26261; it has been noted by GNATS.
From: WATANABE Kiyoshi <aab10490@pop16.odn.ne.jp>
To: freebsd-gnats-submit@FreeBSD.org, richw@webcom.com,
bde@zeta.org.au
Cc:
Subject: Re: i386/26261: silo overflow problem in sio driver
Date: Fri, 06 Apr 2001 21:51:16 +0900
Sorry I sent temporary patch to gnats by mistake.
Bruce Evans wrote:
> On Tue, 3 Apr 2001, Rich Wales wrote:
>
> > WATANABE Kiyoshi wrote:
> >
> > > try this patch.
> > > + cp4ticks *= 10; /* to avoid buffer overflow */
> >
> > Thanks. This helped to some extent, though I'm still seeing some
> > silo overflows even with the above patch. Should the "10" be bumped
> > up to something larger, perhaps?
>
> This can't possibly help reduce silo overflows, since it increases the
> size a driver buffer, but silo overflows occur when a hardware buffer is
> too small.
>
> Silo overflows are caused by non-sio hardware hogging the bus or by
> interrupt latency outside the driver. They should never occur at low
I agree.
> speeds like 115200 bps even on 386/20's (except in -current, where
> interrupt latency outside the driver is certainly broken enough to
> matter even on 486DX2/66's).
I guess that INTR_TYPE_FAST flag is suspicious.
Only sio, cy, and loran use this flag.
but I cant get silo overflows in my Celeron-700Mhz/i810 machine.
so I cant test.
--- /usr/src/sys/isa/sio.c.orig Tue Oct 10 19:08:12 2000
+++ /usr/src/sys/isa/sio.c Fri Apr 6 21:19:41 2001
@@ -1333,16 +1333,20 @@
com->irqres = bus_alloc_resource(dev, SYS_RES_IRQ, &rid, 0ul, ~0ul, 1,
RF_ACTIVE);
if (com->irqres) {
+#if 0
ret = BUS_SETUP_INTR(device_get_parent(dev), dev, com->irqres,
INTR_TYPE_TTY | INTR_TYPE_FAST,
siointr, com, &com->cookie);
if (ret) {
+#endif
ret = BUS_SETUP_INTR(device_get_parent(dev), dev,
com->irqres, INTR_TYPE_TTY,
siointr, com, &com->cookie);
+#if 0
if (ret == 0)
device_printf(dev, "unable to activate interrupt in fast mode - using normal mode");
}
+#endif
if (ret)
device_printf(dev, "could not activate interrupt\n");
}
WATANABE Kiyoshi aab10490@pop16.odn.ne.jp
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200104061300.f36D02P60663>
