Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 9 Apr 1996 17:07:41 -0400 (EDT)
From:      "Marc G. Fournier" <scrappy@ki.net>
To:        current@freebsd.org
Subject:   Comments on change to sio.c
Message-ID:  <Pine.BSI.3.92.960409170131.9514s-100000@freebsd.ki.net>

next in thread | raw e-mail | index | archive | help


In response to my query to this user about whether his problem
has been fixed, I got the following reply:



 > >Description:
 >
 >         Kernel spits out lot of these
 >
 > Jun 18 05:14:47 pommi /kernel: sio1: 119 more interrupt-level buffer over
 > flows (total 3642)
 > Jun 18 05:14:47 pommi /kernel: sio1: 119 more interrupt-level buffer overflows (
 > total 3642)

I don't know if this is still an existing problem, as I have been inserting
a workaround for this since I realized this was considered a feature.  It
was fixed by this, in addition I got more performance and more reliablity.

options "TTYHOG=4096"
options "RS_IBUFSIZE=1024"

*** sys/i386/isa/sio.c.orig	Thu Aug 24 21:56:48 1995
--- sys/i386/isa/sio.c	Thu Aug 24 21:57:13 1995
***************
*** 71,77 ****
--- 71,79 ----

  #define	LOTS_OF_EVENTS	64	/* helps separate urgent events from input */
  #define	RB_I_HIGH_WATER	(TTYHOG - 2 * RS_IBUFSIZE)
+ #ifndef RS_IBUFSIZE
  #define	RS_IBUFSIZE	256
+ #endif

  #define	CALLOUT_MASK		0x80
  #define	CONTROL_MASK		0x60

--
Heikki Suonsivu, T{ysikuu 10 C 83/02210 Espoo/FINLAND, hsu@clinet.fi
mobile +358-40-5519679 work +358-0-4375360 fax -4555276 home -8031121

=========

	Now, I was tempted to throw the #ifndef/#endif into sio.c and
somehow documenting the availability of changing RS_IBUFSIZE in the
conf file.  I know that throwing the ifndef into the file won't affect
or break anything, but I'm curious as to whether this is something fixed
in -current and is therefore not required.

	I know that RS_IBUFSIZE is set to 256 in -current still, but
the user is claiming better performance/reliability as a result of
increasing his from 256 to 1024.


	His problem report, and environment, looks like:

        A 486-40 with 6 16550 ports and 4 ethernets (3 active)
        A 386-16 with 1 16550 ports and 1 ethernet (just a PPP router)

   Description


        Both these machines report "interrupt-level buffer overflow":s
        very frequently on a leased line running at 38400, badly dropping
        IP performance.

        On 386-16 I also saw several spontaneous reboots when loading the
        PPP link.

   How-To-Repeat


        It seems that this bites only me, even though it does this on two
        quite different configurations.  In addition the 486 machine has
        115.2k leased line connected with no apparent trouble.
        Thus I can't really tell you how to repeat this (other than sending
        the machines there :-).

   Fix


        I changed RS_IBUFSIZE from 256 to 4096, and the problem disappeared.
        It might be that a smaller amount would be sufficient (I don't mind
        8k memory waste per line in this case).  But it is apparent that
        256 bytes seems not sufficient for slow or loaded machines.

sio.c:
< #define      RS_IBUFSIZE     256
--
> #define      RS_IBUFSIZE     4096


=====

	Bruce, apologies, but I realized *after* I emailed this guy that
your were responsible for this problem report...I'm watching the "responsible"
field much closer now so that I don't do this again :(





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSI.3.92.960409170131.9514s-100000>