From owner-freebsd-bugs Fri Apr 6 6: 0: 9 2001 Delivered-To: freebsd-bugs@hub.freebsd.org Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id C512B37B446 for ; Fri, 6 Apr 2001 06:00:02 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.11.1/8.11.1) id f36D02P60663; Fri, 6 Apr 2001 06:00:02 -0700 (PDT) (envelope-from gnats) Date: Fri, 6 Apr 2001 06:00:02 -0700 (PDT) Message-Id: <200104061300.f36D02P60663@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org Cc: From: WATANABE Kiyoshi Subject: Re: i386/26261: silo overflow problem in sio driver Reply-To: WATANABE Kiyoshi Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org The following reply was made to PR i386/26261; it has been noted by GNATS. From: WATANABE Kiyoshi 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