[comp.dcom.modems] throughput using CTS flow control on a Trailblazer+

dyer@spdcc.COM (Steve Dyer) (04/17/88)

I'm using a Telebit Trailblazer+ on one of my dialin ports, fixed at 19.2kb
using hardware flow control (gettydefs has EXTA and CTSFLOW defined).  I'm
finding that effective UUCP throughput ranges between 80-100 bytes per second
when a UUCP neighbor without a Trailblazer dials in at 2400 baud, completely
negating any benefit of the neighbor's >1200 baud speed.  The CTS light seems
to blink on every SD (send data) blink.  People who dial in to this line at
2400 baud also report jerkiness (although this seems to be hidden and not
observable at 1200 baud.)

Note we don't appear to be losing data; the low transfer rate isn't due to
retransmissions, but due to (excessive?) throttling of the output stream.

Any ideas of what to try?

/Steve
-- 
Steve Dyer
dyer@harvard.harvard.edu
dyer@spdcc.COM aka {ihnp4,harvard,husc6,linus,ima,bbn,m2c}!spdcc!dyer

sl@van-bc.UUCP (pri=-10 Stuart Lynne) (04/18/88)

In article <871@spdcc.COM> dyer@spdcc.COM (Steve Dyer) writes:
>I'm using a Telebit Trailblazer+ on one of my dialin ports, fixed at 19.2kb
>using hardware flow control (gettydefs has EXTA and CTSFLOW defined).  I'm
>finding that effective UUCP throughput ranges between 80-100 bytes per second
>when a UUCP neighbor without a Trailblazer dials in at 2400 baud, completely
>negating any benefit of the neighbor's >1200 baud speed.  The CTS light seems
>to blink on every SD (send data) blink.  People who dial in to this line at
>2400 baud also report jerkiness (although this seems to be hidden and not
>observable at 1200 baud.)
>
>Note we don't appear to be losing data; the low transfer rate isn't due to
>retransmissions, but due to (excessive?) throttling of the output stream.
>
>Any ideas of what to try?

I'm assuming that you are running on an IBM AT with SCO Xenix (as evidenced
from cross posting and use of CTSFLOW).

Do you have SCO's fix's for Telebit Support? Phone and ask for it if you
don't.

Why are you running with a fixed speed? SCO's software all seems to work very
well using the auto baud feature. 

What I would think is happening is that you have turned hardware flow
control on in the Telebit. When you do this and connect at slower speeds the
Telebit seems to use CTS to regulate your dataflow down to the connect speed
instead of bufferring it (which it will do if you just ignore CTS).

SCO has implemented CTS flow control in their serial driver. But remember that 
CTS is not supported by the 8250/16450 Serial chip. It must be implemented 
higher up in the interrupt service routine.

Meaning for every CTS state change you must service an interrupt, and do some
work to get things stopped or started. This is very inefficent, you will see
*two* state changes for every character you send. This increases your
interrupt loading from 1 to 3 for each character sent.

As an aside, here at home I *do* run with a fixed speed to solve other
problems with my serial drivers and getty. I don't run into the same problem
as seen here because the serial chip (8274) supports CTS directly. So even
though I see the CTS light blinking madly away in tandem with the SD light
it doesn't affect performance at all.

I would suggest that you don't use hardware flow control unless you are
connected in FAST mode. It does work well there.

An alternate suggeston would be for Telebit to not worry about CTS for each
character. Perhaps make it configurable, ATS??=n, where n is the number of
characters to buffer before worrying about dropping CTS.

-- 
{ihnp4!alberta!ubc-vision,uunet}!van-bc!Stuart.Lynne Vancouver,BC,604-937-7532

dyer@spdcc.COM (Steve Dyer) (04/18/88)

If a Trailblazer Plus cannot exploit its own buffering capacity when
using hardware flow control so as to yield a throughput equivalent to
the calling party (i.e. 2400 baud incoming to a 19.2kb TB+ should be
close to 2400 baud throughput), I'd call it a bug.

What do the folks at Telebit have to say?
-- 
Steve Dyer
dyer@harvard.harvard.edu
dyer@spdcc.COM aka {ihnp4,harvard,husc6,linus,ima,bbn,m2c}!spdcc!dyer

caf@omen.UUCP (Chuck Forsberg WA7KGX) (04/18/88)

In article <871@spdcc.COM> dyer@spdcc.COM (Steve Dyer) writes:
:I'm using a Telebit Trailblazer+ on one of my dialin ports, fixed at 19.2kb
:using hardware flow control (gettydefs has EXTA and CTSFLOW defined).  I'm
:finding that effective UUCP throughput ranges between 80-100 bytes per second
:when a UUCP neighbor without a Trailblazer dials in at 2400 baud, completely
:negating any benefit of the neighbor's >1200 baud speed.  The CTS light seems
:to blink on every SD (send data) blink.  People who dial in to this line at
:2400 baud also report jerkiness (although this seems to be hidden and not
:observable at 1200 baud.)
:
:Note we don't appear to be losing data; the low transfer rate isn't due to
:retransmissions, but due to (excessive?) throttling of the output stream.
:
TeleGodzilla uses a TrailBlazer (not plus) with the current software ROMS.
For a brief period of time I had TeleGodzilla switch to 19200 bps and
enable flow control when an MNP connection was established at 1200 or
2400 bps.  This had the same disappointing results as Steve has seen
with uucp.

Moral: With the current TB ROMS, It's OK to use flow control with PEP
but not MNP.  A bit of a problem for UUCP, unless it's front ended
with Pro-YAM.


Chuck Forsberg WA7KGX          ...!tektronix!reed!omen!caf 
Author of YMODEM, ZMODEM, Professional-YAM, ZCOMM, and DSZ
  Omen Technology Inc    "The High Reliability Software"
17505-V NW Sauvie IS RD   Portland OR 97231   503-621-3406
TeleGodzilla BBS: 621-3746   CIS: 70007,2304    Genie: CAF

sl@van-bc.UUCP (pri=-10 Stuart Lynne) (04/19/88)

In article <881@spdcc.COM> dyer@spdcc.COM (Steve Dyer) writes:
>If a Trailblazer Plus cannot exploit its own buffering capacity when
>using hardware flow control so as to yield a throughput equivalent to
>the calling party (i.e. 2400 baud incoming to a 19.2kb TB+ should be
>close to 2400 baud throughput), I'd call it a bug.
>
>What do the folks at Telebit have to say?

No, I'd call it a feature.

The TB+ does seem to use it's buffering capacity if you ignore CTS entirely.

By using CTS to throttle the data rate from the host down to 2400 without
buffering things like ^C work well. You interrupt and the host see's it and
stops. With large buffers in the TB+ you can get several more screens of
data. 

With proper hardware support in the host (eg Intel 8274 MPSC) throughput is
bang on 2400 bps because the serial chip responds directly to CTS starting
and stopping output without even telling the host. With a serial chip which
doesn't support CTS directly (eg NS 16450) you get a modem status interrupt
which you have to service.


-- 
{ihnp4!alberta!ubc-vision,uunet}!van-bc!Stuart.Lynne Vancouver,BC,604-937-7532

glowell@hpcupt1.HP.COM (Gary Lowell) (04/22/88)

     I am using a TB+ on a 286 based system, and of course the TB+ can
     easily overwhelm the CPU.  I am working on building a simple
     Serial Card and writing my own driver for it.  Several chips 
     have been mentioned here that will provide flow control on 
     CTS without involving the host.  Are there any chips that 
     provide similer features for RTS flow control, which I believe
     the TB+ supports ?  I want to make sure that regardless of
     the data-rate, I won't lose any characters if the CPU's not
     keeping up.

     The next step after that is to see what I can do to improve
     the throughput.  The most obvious way I see to do this, is to
     not interrupt the CPU on each character.  Adding an onboard
     uP to the serial card makes it not simple and I'd like to avoid
     that at this point.  However, some serial chips have FIFO's, 
     do DMA, etc.  Can anyone provide pointers as to what features
     are useful for improving throughput, and how I might write a
     driver that would take advantage of them ?

     Thanks in advance.

     Gary Lowell
     {uunet,hplabs}!hpda!glowell

rick@pcrat.UUCP (Rick Richardson) (05/01/88)

In article <6810002@hpcupt1.HP.COM> glowell@hpcupt1.HP.COM (Gary Lowell) writes:
)
)     I am using a TB+ on a 286 based system, and of course the TB+ can
)     easily overwhelm the CPU.  I am working on building a simple
)     Serial Card and writing my own driver for it.  Several chips 
)     have been mentioned here that will provide flow control on 
)     CTS without involving the host.  Are there any chips that 
)     provide similer features for RTS flow control, which I believe
)     the TB+ supports ?  I want to make sure that regardless of
)     the data-rate, I won't lose any characters if the CPU's not
)     keeping up.

AT&T sells a serial part with EIA flow control modes.  It's 4/6
deep FIFO buffering, and includes speed matching (autobaud).  I
forget the number, its called the "ARTI".  It is in their Communications
Devices book.
-- 
		Rick Richardson, President, PC Research, Inc.

(201) 542-3734 (voice, nights)   OR     (201) 834-1378 (voice, days)
uunet!pcrat!rick (UUCP)			rick%pcrat.uucp@uunet.uu.net (INTERNET)