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>