Serial buffer flushing problems under 1.0

Serial buffer flushing problems under 1.0

Post by Ben Kelley (good g » Sun, 07 Aug 1994 12:37:01

Hi. I have been having problems getting SLIP to work. I have tried DIP 3.3.7
and dslip 2.01, both of which have problems.

The problem with dip is that it just doesn't send any characters. If I
go to TERM mode and type stuff, nothing is transmitted. (I have a HP
protocol analyser on the line to check that) I can receive OK, but not
transmit. When I quit dip, the stuff I typed gets transmitted.

With dslip, similar problem. My expect script doesn't send the text until
it quits, which means that it doesn't see the response to what it sent.

If I run seyon or kermit, neither of these have problems.

Any clues??

                                                - Ben Kelley

"Help! My cat's dirty!"
"Yes, I know, why don't you ... My, what a red volume control you have on your
pencil sharpener there!"

... We apologise for the above lapse in sensability. Sensible .sig follows ...

Ph +61 (0)2 258 2382 - Ring 2 and a half times for...Sorry, sorry. No really!


Serial buffer flushing problems under 1.0

Post by George Neun » Wed, 10 Aug 1994 12:25:54

I am having difficulty sending large amounts of data via TCP over
ethernet from a Sun SparcStation 5 to a Pentium running Linux.  
The problem is quite strange:

    - UDP messaging works correctly in both directions
      regardless of message size (within the atomicity
      limits) and regardless of delay between messages

    - NFS transfers work correctly in both directions
      (except that Linux can't export, but that's a
      separate question). Linux can mount the Sun drives
      and read/write them without difficulty

    - TCP streaming works from Linux to the Sun regardless
      of buffer size

    - TCP streaming does not work (fails 90% of the time)
      from Sun to Linux regardless of buffer size.  It fails
      unpredictably and always hangs Linux

    - TCP fails 100% of the time when performing
      simultaneous transfers in both directions.

This sounds like the classic too-slow adapter problem, but
no packet overruns or retransmissions are ever reported, the
Linux system merely goes away and never comes back (and once
managed to hang the Sun as well).  This is occurring on a lightly
loaded network running my own software.  The programs work
correctly between pairs of Suns (even slow ones), it is only when
Linux is involved that there is trouble.

The Sun system is a SparcStation 5 running Solaris 2.41/SunOS 5.

The Linux system consists of:
    Gateway 2000 P5-60 w/ 16MB ram and 540MB IDE drive
    Eagle NE2000+ 3 Ethernet adapter
    PCI bus ET4000/W32p video
    PS/2 mouse
    Sony 31a CDROM
    Yggdrasil CDROM Linux version 1.1.0  April 23, 1994

The NE2000 is on IRQ 5 at port 0x320 using programmed I/O.
There are no device conflicts.  I mention the PS/2 mouse and
PCI video board because they have proved troublesome to other
PC *nix implementations.

I have reviewed the relevant sections of "The Linux Bible" and
all the FAQs I could find.  I know that there was a bug in early
NE2000 drivers that caused* when a retransmission occurred
during a timer tick.  That bug is supposed to have been fixed
in my version of the kernel.

I have tried turning "trailers" on and off from ifconfig, and
tried reconfiguring the adapter for normal and late I/O timing
and early and normal I/O compatibility (Eagle's terms, not mine)
as recommended in a FAQ regarding errors reported by ifconfig.

Does anyone have an idea?  Any help would be greatly appreciated.



1. No way to flush rx buffer in serial driver?

I've been looking at serial driver code (2.4.18), and low level
drivers provide a way to flush the tx buffer by calling

         tty->driver.flush_buffer(tty);    // from tty_ioctl.c

but there does not seem to be a corresponding call to flush the
rx buffer.  Why not?

TCOFLUSH flushes both line-discipline and low-level driver
buffers, but TCIFLUSH only flushes line-discipline buffers.
This seems wrong...

Grant Edwards                   grante             Yow!  Wait... is this a FUN
                                  at               THING or the END of LIFE in
                                 Petticoat Junction??

2. router throughput profiling?

3. doing buffered RPC via clnt_call: how to do a buffer flush?

4. HP SureStore Tape 12000e

5. Q: starting KDE on Solaris

6. is there any graphical setup for ipchains ie user friendly

7. HP JetDirect: Flushing buffer on printer

8. How do I flush buffers from a script?

9. Well, flush my buffers!

10. Automatically flushing STDOUT buffer?

11. Forcing a flush of stdout buffer