The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
* [TUHS] STREAMS performance
@ 2020-04-12 10:03 Paul Ruizendaal
  2020-04-12 22:55 ` joe mcguckin
  2020-04-12 23:15 ` Anthony Martin
  0 siblings, 2 replies; 7+ messages in thread
From: Paul Ruizendaal @ 2020-04-12 10:03 UTC (permalink / raw)
  To: TUHS main list


> Date: Sat, 11 Apr 2020 08:44:28 -0700
> From: Larry McVoy
> 
> On Sat, Apr 11, 2020 at 11:38:44AM -0400, Norman Wilson wrote:
>> -- Stream I/O system added; all communication-device
>> drivers (serial ports, Ethernet, Datakit) changed to
>> work with streams.  Pipes were streams.
> 
> How was performance?  Was this Dennis' streams, not Sys V STREAMS?

It was streams, not STREAMS.

> I ported Lachmans/Convergents STREAMS based TCP/IP stack to the
> ETA 10 Unix and SCO Unix and performance just sucked.  Ditto for
> the Solaris port (which I did not do, I don't think it made any
> difference who did the port though).

STREAMS are outside the limited scope I try to restrain myself to, but I’m intrigued.

What in the above case drove/caused the poor performance?

There was a debate on the LKML in the late 1990’s where Caldera wanted STREAMS support in Linux and to the extent the arguments were technical *), my understanding of them is that the main show stopper was that STREAMS would make ‘zero copy’ networking impossible. If so, then it is a comment more about the underlying buffer strategy than STREAMS itself.

Did STREAMS also perform poorly in the 1986 context they were developed in?

Paul

*) Other arguments pro- and con included forward maintenance and market need, but I’m not so interested in those aspects of the debate.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [TUHS] STREAMS performance
  2020-04-12 10:03 [TUHS] STREAMS performance Paul Ruizendaal
@ 2020-04-12 22:55 ` joe mcguckin
  2020-04-14 14:54   ` Tony Finch
  2020-04-12 23:15 ` Anthony Martin
  1 sibling, 1 reply; 7+ messages in thread
From: joe mcguckin @ 2020-04-12 22:55 UTC (permalink / raw)
  To: Paul Ruizendaal; +Cc: TUHS main list


I seem to remember that Sun was trying to sell boxes to the airline / reservation industry, and one of the ways they came up with
to make Solaris handle thousands of ascii terminals was to push the character discipline code into streams in order to eliminate the multiple user/kernel
crossings per character being handled…

Joe


Joe McGuckin
ViaNet Communications

joe@via.net
650-207-0372 cell
650-213-1302 office
650-969-2124 fax



> On Apr 12, 2020, at 3:03 AM, Paul Ruizendaal <pnr@planet.nl> wrote:
> 
> 
>> Date: Sat, 11 Apr 2020 08:44:28 -0700
>> From: Larry McVoy
>> 
>> On Sat, Apr 11, 2020 at 11:38:44AM -0400, Norman Wilson wrote:
>>> -- Stream I/O system added; all communication-device
>>> drivers (serial ports, Ethernet, Datakit) changed to
>>> work with streams.  Pipes were streams.
>> 
>> How was performance?  Was this Dennis' streams, not Sys V STREAMS?
> 
> It was streams, not STREAMS.
> 
>> I ported Lachmans/Convergents STREAMS based TCP/IP stack to the
>> ETA 10 Unix and SCO Unix and performance just sucked.  Ditto for
>> the Solaris port (which I did not do, I don't think it made any
>> difference who did the port though).
> 
> STREAMS are outside the limited scope I try to restrain myself to, but I’m intrigued.
> 
> What in the above case drove/caused the poor performance?
> 
> There was a debate on the LKML in the late 1990’s where Caldera wanted STREAMS support in Linux and to the extent the arguments were technical *), my understanding of them is that the main show stopper was that STREAMS would make ‘zero copy’ networking impossible. If so, then it is a comment more about the underlying buffer strategy than STREAMS itself.
> 
> Did STREAMS also perform poorly in the 1986 context they were developed in?
> 
> Paul
> 
> *) Other arguments pro- and con included forward maintenance and market need, but I’m not so interested in those aspects of the debate.
> 


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [TUHS] STREAMS performance
  2020-04-12 10:03 [TUHS] STREAMS performance Paul Ruizendaal
  2020-04-12 22:55 ` joe mcguckin
@ 2020-04-12 23:15 ` Anthony Martin
  2020-04-13  1:43   ` Rob Pike
  1 sibling, 1 reply; 7+ messages in thread
From: Anthony Martin @ 2020-04-12 23:15 UTC (permalink / raw)
  To: Paul Ruizendaal; +Cc: TUHS main list

As an aside, Plan 9 began with a descendant of dmr's streams
but replaced it in mid-1993 with a simple queued i/o scheme.
This was done for performance and to simplify the code since
they didn't end up using much of the streams functionality.

  Anthony

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [TUHS] STREAMS performance
  2020-04-12 23:15 ` Anthony Martin
@ 2020-04-13  1:43   ` Rob Pike
  2020-04-13  3:00     ` Anthony Martin
  0 siblings, 1 reply; 7+ messages in thread
From: Rob Pike @ 2020-04-13  1:43 UTC (permalink / raw)
  To: Anthony Martin; +Cc: TUHS main list, Paul Ruizendaal

It did? I think a version of streams showed up at some point, and were
replaced; of that you are correct. But it certainly didn't begin with
anything like streams. It began with a file system mux.

-rob

On Mon, Apr 13, 2020 at 9:16 AM Anthony Martin <ality@pbrane.org> wrote:
>
> As an aside, Plan 9 began with a descendant of dmr's streams
> but replaced it in mid-1993 with a simple queued i/o scheme.
> This was done for performance and to simplify the code since
> they didn't end up using much of the streams functionality.
>
>   Anthony

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [TUHS] STREAMS performance
  2020-04-13  1:43   ` Rob Pike
@ 2020-04-13  3:00     ` Anthony Martin
  2020-04-13  3:14       ` Rob Pike
  0 siblings, 1 reply; 7+ messages in thread
From: Anthony Martin @ 2020-04-13  3:00 UTC (permalink / raw)
  To: Rob Pike; +Cc: TUHS main list, Paul Ruizendaal

Rob Pike <robpike@gmail.com> once said:
> It did? I think a version of streams showed up at some point, and were
> replaced; of that you are correct. But it certainly didn't begin with
> anything like streams. It began with a file system mux.

I realize you would probably know better, but ...

I didn't mean that streams was the first thing in Plan 9, just that the
I/O system for pipes, network devices, etc. was descended from streams.
That was the case at least as far back as 1990.

Look at the early Plan 9 code for the pipe¹ and ethernet² devices, the
code for Streams, Queues, and Blocks in port/stream.c³ and power/dat.h⁴,
and tell me that doesn't descend from v8 streams. :)

Also, thanks for Plan 9. It's lovely.

  Anthony

1. https://github.com/0intro/9hist/blob/13601b6f49db83aa369e382f5242927a46d2a433/port/devpipe.c
2. https://github.com/0intro/9hist/blob/13601b6f49db83aa369e382f5242927a46d2a433/port/devlance.c#L256
3. https://github.com/0intro/9hist/blob/13601b6f49db83aa369e382f5242927a46d2a433/port/stream.c
4. https://github.com/0intro/9hist/blob/13601b6f49db83aa369e382f5242927a46d2a433/power/dat.h#L338

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [TUHS] STREAMS performance
  2020-04-13  3:00     ` Anthony Martin
@ 2020-04-13  3:14       ` Rob Pike
  0 siblings, 0 replies; 7+ messages in thread
From: Rob Pike @ 2020-04-13  3:14 UTC (permalink / raw)
  To: Anthony Martin; +Cc: TUHS main list, Paul Ruizendaal

Nice to see Egreg again.

-rob

On Mon, Apr 13, 2020 at 1:00 PM Anthony Martin <ality@pbrane.org> wrote:
>
> Rob Pike <robpike@gmail.com> once said:
> > It did? I think a version of streams showed up at some point, and were
> > replaced; of that you are correct. But it certainly didn't begin with
> > anything like streams. It began with a file system mux.
>
> I realize you would probably know better, but ...
>
> I didn't mean that streams was the first thing in Plan 9, just that the
> I/O system for pipes, network devices, etc. was descended from streams.
> That was the case at least as far back as 1990.
>
> Look at the early Plan 9 code for the pipe¹ and ethernet² devices, the
> code for Streams, Queues, and Blocks in port/stream.c³ and power/dat.h⁴,
> and tell me that doesn't descend from v8 streams. :)
>
> Also, thanks for Plan 9. It's lovely.
>
>   Anthony
>
> 1. https://github.com/0intro/9hist/blob/13601b6f49db83aa369e382f5242927a46d2a433/port/devpipe.c
> 2. https://github.com/0intro/9hist/blob/13601b6f49db83aa369e382f5242927a46d2a433/port/devlance.c#L256
> 3. https://github.com/0intro/9hist/blob/13601b6f49db83aa369e382f5242927a46d2a433/port/stream.c
> 4. https://github.com/0intro/9hist/blob/13601b6f49db83aa369e382f5242927a46d2a433/power/dat.h#L338

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [TUHS] STREAMS performance
  2020-04-12 22:55 ` joe mcguckin
@ 2020-04-14 14:54   ` Tony Finch
  0 siblings, 0 replies; 7+ messages in thread
From: Tony Finch @ 2020-04-14 14:54 UTC (permalink / raw)
  To: joe mcguckin; +Cc: TUHS main list, Paul Ruizendaal

[-- Attachment #1: Type: text/plain, Size: 1384 bytes --]

joe mcguckin <joe@via.net> wrote:
>
> I seem to remember that Sun was trying to sell boxes to the airline /
> reservation industry, and one of the ways they came up with to make
> Solaris handle thousands of ascii terminals was to push the character
> discipline code into streams in order to eliminate the multiple
> user/kernel crossings per character being handled…

I encountered this feature when deploying some new Solaris 2.5.1 / 2.6 web
servers in about 1997/8. We were chroot()ing the user login daemons
(telnet and ftp) to improve security, and they wouldn't work on a freshly
rebooted server. Eventually I worked out that telnetd loaded a kernel
module on demand, and this didn't work when it was chroot()ed, but telnetd
could skip it if the module had previously been loaded. (I could see from
truss and/or strings that telnetd was specifying an absolute path to the
module rather than expecting the kernel to know where to find it.) I was
kind of impressed by the performance engineering, and it stuck in my
memory because it took me so long to understand why it sometimes didn't
work...

Tony.
-- 
f.anthony.n.finch  <dot@dotat.at>  http://dotat.at/
Trafalgar: Variable 3 or 4 at first in southeast, otherwise cyclonic 5 to 7.
Moderate or rough, occasionally very rough at first in northwest. Rain or
thundery showers. Good, occasionally poor.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-04-14 14:55 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-12 10:03 [TUHS] STREAMS performance Paul Ruizendaal
2020-04-12 22:55 ` joe mcguckin
2020-04-14 14:54   ` Tony Finch
2020-04-12 23:15 ` Anthony Martin
2020-04-13  1:43   ` Rob Pike
2020-04-13  3:00     ` Anthony Martin
2020-04-13  3:14       ` Rob Pike

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).