Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 25 Apr 2000 14:47:51 +0200 (CEST)
From:      Eric Masson <e-masson@kisoft-services.com>
To:        "Jim King" <king@sstar.com>
Cc:        <freebsd-stable@FreeBSD.ORG>
Subject:   Re: sio interrupt handler problem
Message-ID:  <14597.37879.611136.906144@localhost.nantes.kisoft-services.com>
In-Reply-To: <003801bfae25$39a6d100$a44b8486@jking>
References:  <5564.000424@pd.chel.ru> <20000424114057.A692@pir.net> <14596.37283.563515.214828@localhost.nantes.kisoft-services.com> <003801bfae25$39a6d100$a44b8486@jking>

next in thread | previous in thread | raw e-mail | index | archive | help
Jim King writes:
>One thing I've done in the past to overcome serial port problems is to patch
>sys/isa/sio.c to set the FIFO receive trigger level to 8 bytes instead of 14
>(FIFO_RX_MEDH instead of FIFO_RX_HIGH).  If you have a piece of hardware or
>a misbehaved driver that's causing high interrupt latency this change be
>really beneficial, and greatly outweighs the higher interrupt overhead when
>using an 8 byte trigger.
>
><soapbox>
>An 8 byte trigger is a safer option that causes better operation on weird
>hardware without signifcantly changing anything on good hardware.  I really
>wish sio.c would be changed to set the trigger to 8 bytes by default, or at
>least have a flags option to change the trigger level.
></soapbox>

I applied the following crappy patch to sio.c, and i still encounter the
SOs

*** /sys/isa/sio.c.ORIGINAL	Tue Apr 25 14:15:06 2000
--- /sys/isa/sio.c	Tue Apr 25 14:15:34 2000
***************
*** 1113,1119 ****
  				com->tx_fifo_size = 32;
  				printf(" ST16650A");
  			} else {
! 				com->tx_fifo_size = COM_FIFOSIZE(flags);
  				printf(" 16550A");
  			}
  		}
--- 1113,1119 ----
  				com->tx_fifo_size = 32;
  				printf(" ST16650A");
  			} else {
! 				com->tx_fifo_size = 8;
  				printf(" 16550A");
  			}
  		}


sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A lookalike with 8 bytes FIFO

sio0: 1 more silo overflow (total 1)
sio0: 1 more silo overflow (total 2)
sio0: 1 more silo overflow (total 3)
sio0: 2 more silo overflows (total 5)
sio0: 1 more silo overflow (total 6)
sio0: 1 more silo overflow (total 7)
sio0: 2 more silo overflows (total 9)
sio0: 2 more silo overflows (total 11)
sio0: 1 more silo overflow (total 12)
sio0: 1 more silo overflow (total 13)
sio0: 1 more silo overflow (total 14)
sio0: 2 more silo overflows (total 16)

Did I understand your point ? (Kernel patching isn't part of my daily work
:). 

Regards

Eric Masson
-- 
Opinions stated below are mine and can't be considered as
official Kisoft Services policy.



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




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