Linux MIPS Architecture development
 help / color / mirror / Atom feed
* Linux: the next step
@ 1996-07-31  0:48 Ariel Faigon
  1996-08-02 15:37 ` Alistair Lambie
  0 siblings, 1 reply; 32+ messages in thread
From: Ariel Faigon @ 1996-07-31  0:48 UTC (permalink / raw)
  To: linux

Hi Linuxies,

So soon the port will be "over".

What's next?

Can we turn this from a neat hacker's adventure into
something really beneficial to SGI?

Thanks to Larry and David, I started collecting some
thoughts in:

	http://info.engr/linux/next-step.html


P.S. I also talked to some people who oppose all this
so I made their voices heard in:

	http://info.engr/linux/skeptic.html

I hope you'll find these two mildly interesting.
I wish TJ could join us in this new endeavor.

Any constructive input is as always welcome.
-- 
Peace, Ariel

^ permalink raw reply	[flat|nested] 32+ messages in thread
* Re: Linux: the next step
@ 1996-08-03  1:11 Larry McVoy
  0 siblings, 0 replies; 32+ messages in thread
From: Larry McVoy @ 1996-08-03  1:11 UTC (permalink / raw)
  To: Nigel Gamble; +Cc: Alistair Lambie, ariel, linux

: Dream on!  Here in ISD (Indigo2 land), we're working flat out just to
: get IRIX to run on any new platforms at first shipment, with all
: the neat features supported.  I think you'll find the same
: is true of all the other product divisions.

It's hard work.  I know people are working hard to keep IRIX going.  And 
there is a lot in IRIX that isn't in Linux.

However, there's a lot in IRIX that shouldn't be in IRIX, let alone Linux.
One of the cool things that David has done this summer was to keep the
generic code free of #ifdef *_WAR stuff that is littered throughout the
IRIX kernel.

: We are neither a hardware company nor a software company.
: We are a *systems* company.  

I agree.  But answer these questions:

	. would anyone buy our hardware if we didn't put the software on it?

	. would anyone buy our software on some other hardware?

I think that gives you an answer to what kind of comapny we really are.

: As for Linux,
: when will it support true symmetric multiprocessing with fine-grained
: semaphore and mutex locking, and a fully preemptible kernel?

The fine grained locking is a lose.  It costs us way too much and what I
am seeing is a trend backwards towards coarser grained locking.  If this
wasn't true, why did we build lego?  Why are we building Nexus?

Linux already has a RT kernel.  I just reviewed a fantastic Usenix paper
that added RT to Linux - fully preemptable, hard real time to < 100 usecs,
and less than 3K lines of code change.  Their test case was a 100Khz clock
pulse on a parallel port; they got it every time, with less than 15usecs
skew, while the system was tar-ing one file system to another, running 
netscape, and generally doing same old Unix stuff just like normal.  It's
really impressive and very uninvasive.

: At the San Diego Usenix earlier this year, Linus Torvalds
: thought that the probable answer was "not anytime soon".
: (By the way, in order to do this correctly, every device driver would
: have to be rewritten.)  

Almost none of the drivers need a rewrite for the RT stuff.  That work was
a good example of what I call "orthogonal thinking" or using a completely
different approach to solve the problem.

: Linux would need this *at a minimum* before
: there is any hope that it would supplant IRIX on the current
: generation of hardware, let alone any future new platforms.

Linux isn't going to replace IRIX any time soon.  However, Linux is
going to show off MTI's chips and SGI's hardware in a somewhat more
positive light.  If all that happens is that people get psyched about
the "hidden" performance in SGI hardware and get IRIX to show off that
performance, then the paltry amount we've spent on Linux will be worth it.

Finally, think about this:  how many times have you had a "great idea"
for better IRIX performance, gone off an prototyped it, only to find
that it makes no difference?  Linux lets you test out those ideas and
see the real performance difference, unadulterated by any surrounding
bloat.  That's cool.  We want that.

^ permalink raw reply	[flat|nested] 32+ messages in thread
* Re: Linux: the next step
@ 1996-08-12 20:32 Steve Alexander
  1996-08-12 20:32 ` Steve Alexander
  1996-08-12 20:52 ` Bob English
  0 siblings, 2 replies; 32+ messages in thread
From: Steve Alexander @ 1996-08-12 20:32 UTC (permalink / raw)
  To: Larry McVoy; +Cc: Nigel Gamble, Alistair Lambie, ariel, linux

lm@gate1-neteng (Larry McVoy) writes:
>The fine grained locking is a lose.  It costs us way too much and what I
>am seeing is a trend backwards towards coarser grained locking.  If this
>wasn't true, why did we build lego?  Why are we building Nexus?

I'd like to see some hard numbers for these assertions.  All of the bottlenecks
in ficus (that I am aware of) have to do with context-switching due to use of
mutexes rather than spinlocks.  The locking overhead itself isn't even on the
map as far as I can tell.

However, I agree that more locking is not the answer.  Eliminating as much
shared, global data as possible is the answer.  Nexus doesn't really do
anything towards that end that I can see.

>Linux already has a RT kernel.  I just reviewed a fantastic Usenix paper
>that added RT to Linux - fully preemptable, hard real time to < 100 usecs,
>and less than 3K lines of code change.  Their test case was a 100Khz clock
>pulse on a parallel port; they got it every time, with less than 15usecs
>skew, while the system was tar-ing one file system to another, running 
>netscape, and generally doing same old Unix stuff just like normal.  It's
>really impressive and very uninvasive.

I'd like to see that when it comes out.

>Finally, think about this:  how many times have you had a "great idea"
>for better IRIX performance, gone off an prototyped it, only to find
>that it makes no difference?  Linux lets you test out those ideas and
>see the real performance difference, unadulterated by any surrounding
>bloat.  That's cool.  We want that.

If it makes no difference, what difference does it make what platform you try
it on?  If it does make a difference, you would be able to measure it despite
the underlying bloat, and again the underlying platform makes no difference.

I'm in favor of some amount of Linux work on SGI gear, but this is a pretty
weak argument.

-- Steve

^ permalink raw reply	[flat|nested] 32+ messages in thread
* Re: Linux: the next step
@ 1996-08-12 21:09 Larry McVoy
  0 siblings, 0 replies; 32+ messages in thread
From: Larry McVoy @ 1996-08-12 21:09 UTC (permalink / raw)
  To: Steve Alexander; +Cc: lm, Nigel Gamble, Alistair Lambie, ariel, linux

: However, I agree that more locking is not the answer.  Eliminating as much
: shared, global data as possible is the answer.  Nexus doesn't really do
: anything towards that end that I can see.

Yeah.

: >Linux already has a RT kernel.  I just reviewed a fantastic Usenix paper
: >that added RT to Linux - fully preemptable, hard real time to < 100 usecs,
: >and less than 3K lines of code change.  Their test case was a 100Khz clock
: >pulse on a parallel port; they got it every time, with less than 15usecs
: >skew, while the system was tar-ing one file system to another, running 
: >netscape, and generally doing same old Unix stuff just like normal.  It's
: >really impressive and very uninvasive.
: 
: I'd like to see that when it comes out.

You'll have to borrow my copy, Usenix rejected it.  Fuckheads.

: >Finally, think about this:  how many times have you had a "great idea"
: >for better IRIX performance, gone off an prototyped it, only to find
: >that it makes no difference?  Linux lets you test out those ideas and
: >see the real performance difference, unadulterated by any surrounding
: >bloat.  That's cool.  We want that.
: 
: If it makes no difference, what difference does it make what platform you try
: it on?  If it does make a difference, you would be able to measure it despite
: the underlying bloat, and again the underlying platform makes no difference.

Suppose you are trying to reach some performance point, X.  Whatever that
is.  You do some work that would, in theory, get you closer to point X.
It doesn't, you can't see the difference.  Just for the sake of argument,
suppose that that work was indeed correctly focussed on something that
needed to get fixed in order to get to point X.  But the effects of that
work were overshadowed by all of the surrounding bloat.  That doesn't mean
that the work was useless or wrong, it means that the bloat dominates.  If
the bloat wasn't there, you would need to do the work to get to X.

A more concrete example: IRIX syscall entry is something like 15-30 usecs,
if I remember correctly.  On Linux, it's about .5 - 5 usecs.  In the
Linux world, optimizations that made a 100% difference would be lost in
the bloat in IRIX.  Does that mean that those optimizations are pointless?

Not to me, it doesn't.  I want a kernel that is fast enough that dropping
into to diddle something and then popping back out is about a procedure
call, no more.  IRIX is miles from that, Linux is approaching it.

^ permalink raw reply	[flat|nested] 32+ messages in thread
* Re: Linux: the next step
@ 1996-08-12 21:18 Steve Alexander
  1996-08-12 21:18 ` Steve Alexander
  1996-08-12 21:24 ` Bob English
  0 siblings, 2 replies; 32+ messages in thread
From: Steve Alexander @ 1996-08-12 21:18 UTC (permalink / raw)
  To: Bob English; +Cc: Larry McVoy, Nigel Gamble, Alistair Lambie, ariel, linux

Bob English <renglish@ratliff> writes:
>If you look at larry's context switch and pipe benchmarks, you'll see
>that they run much faster on a single CPU than on two or more.  A lot of
>the difference is due to fine-grained locking, which causes more dirty
>cache lines to thrash than is actually necessary for the operations
>involved.  Pipe communication takes locks at the vnode and inode
>level.  Context switches take locks on threads, accounting structures,
>and queues.

If I look at those benchmarks, they'll probably run faster on Linux on an Indy
than they do on IRIX on an Indy, so I doubt the locking is the big problem we
need to be looking at.  I don't have numbers from David to quote, so maybe I'm
wrong.  I'd like to be wrong.

-- Steve

^ permalink raw reply	[flat|nested] 32+ messages in thread
* Re: Linux: the next step
@ 1996-08-12 21:20 Steve Alexander
  1996-08-12 21:20 ` Steve Alexander
                   ` (2 more replies)
  0 siblings, 3 replies; 32+ messages in thread
From: Steve Alexander @ 1996-08-12 21:20 UTC (permalink / raw)
  To: Larry McVoy; +Cc: lm, Nigel Gamble, Alistair Lambie, ariel, linux

lm@gate1-neteng (Larry McVoy) writes:
>You'll have to borrow my copy, Usenix rejected it.  Fuckheads.

No doubt to make room for some paper on TCL scripts or something.  Feh.
Yeah, if you can make me a copy or convince the authors to send me one I'd
appreciate it.

>A more concrete example: IRIX syscall entry is something like 15-30 usecs,
>if I remember correctly.  On Linux, it's about .5 - 5 usecs.  In the
>Linux world, optimizations that made a 100% difference would be lost in
>the bloat in IRIX.  Does that mean that those optimizations are pointless?

To some degree, yes.  This is why application developers often have a lot of
platform-specific code; optimizations that work on one system won't necessarily
work on all systems.  I'm not saying this is good, mind you.

-- Steve

^ permalink raw reply	[flat|nested] 32+ messages in thread
* Re: Linux: the next step
@ 1996-08-12 21:49 Larry McVoy
  1996-08-12 21:49 ` Larry McVoy
  1996-08-12 22:59 ` Nigel Gamble
  0 siblings, 2 replies; 32+ messages in thread
From: Larry McVoy @ 1996-08-12 21:49 UTC (permalink / raw)
  To: John E. Schimmel; +Cc: Steve Alexander, lm, nigel, alambie, ariel, linux

: > No doubt to make room for some paper on TCL scripts or something.  Feh.
: > Yeah, if you can make me a copy or convince the authors to send me one I'd
: > appreciate it.
: 
: Now wait a minute here.  Read the paper before commenting.
: They create a "real-time" thread under Linux.  That does not
: mean that it does anything, that the OS has real time support,
: etc.  There was nothing particularly new about what it did.

Here's what they did:  they took over control of interrupt disable/enable
and dispatch.  They run Linux as a thread and allow you to have 0 or more
real time threads.   If all you are doing is running Linux, it looked
to me like there was minimal impact to the performance of the system.

Real time threads run on the bare hardware, they have little
integration with the OS, other than a pipe like communications device.
The programming paradigm is you run two processes, one real time that
gathers events and stuffs them in the "pipe", and one normal that reads
events out of the pipe and does time _un_critical processing.

They can guarentee real time response of 10Khz, with less than 15 usec
variation.  That was with Linux running a 

	tar f - /usr | (cd /newusr; tar xf -)

a web browser, X, etc, etc.  Good luck doing that on IRIX up.  Maybe MP.

I thought the new work was the idea of *not* buggering up your entire OS
to support real time.  They give the real time guys ownership of the CPU
with minimal impact on the rest of the system.  And they had to do next
to nothing to make this work, they just use Unix for everything except
the lowest level of RT work.  I dunno, maybe I'm projecting some pipe
dream, but I think this is really cool work.   Points for orthogonal
thinking on their part.

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

end of thread, other threads:[~1996-08-13 16:46 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
1996-07-31  0:48 Linux: the next step Ariel Faigon
1996-08-02 15:37 ` Alistair Lambie
1996-08-02 23:07   ` Nigel Gamble
1996-08-02 23:54     ` David S. Miller
1996-08-03  0:12     ` Alistair Lambie
1996-08-03  0:12       ` Alistair Lambie
  -- strict thread matches above, loose matches on Subject: below --
1996-08-03  1:11 Larry McVoy
1996-08-12 20:32 Steve Alexander
1996-08-12 20:32 ` Steve Alexander
1996-08-12 20:52 ` Bob English
1996-08-12 20:52   ` Bob English
1996-08-12 21:09 Larry McVoy
1996-08-12 21:18 Steve Alexander
1996-08-12 21:18 ` Steve Alexander
1996-08-12 21:24 ` Bob English
1996-08-12 21:24   ` Bob English
1996-08-12 21:20 Steve Alexander
1996-08-12 21:20 ` Steve Alexander
     [not found] ` <sca@refugee.engr.sgi.com>
1996-08-12 21:35   ` Sandeep Cariapa
1996-08-12 21:39 ` John E. Schimmel
1996-08-12 21:39   ` John E. Schimmel
1996-08-12 21:49 Larry McVoy
1996-08-12 21:49 ` Larry McVoy
1996-08-12 22:59 ` Nigel Gamble
1996-08-12 22:59   ` Nigel Gamble
1996-08-12 23:31   ` Bob English
1996-08-12 23:31     ` Bob English
1996-08-13 11:45   ` David S. Miller
1996-08-13 11:45     ` David S. Miller
1996-08-13 15:36     ` Nigel Gamble
1996-08-13 16:45       ` Greg Chesson
1996-08-13 16:45         ` Greg Chesson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox