[net.unix-wizards] Speeding up Unix

reiher@ucla-cs.UUCP (02/06/85)

What kernel modifications do all you wizards think would produce the
greatest speedup in Unix (let's assume Sys V, to give a common base for
discussion)?  How difficult to you think they would be to make?  How much
can be done without introducing incompatibilites, at least at the source code
level?  Are there any potential speedups of such overriding benefit that
minor incompatibilities might be worth it?
-- 

        			Peter Reiher
        			reiher@ucla-cs.arpa
        			{...ihnp4,ucbvax,sdcrdcf}!ucla-cs!reiher

ado@elsie.UUCP (Arthur David Olson) (02/08/85)

> What kernel modifications do all you wizards think would produce the
> greatest speedup in Unix (let's assume Sys V, to give a common base for
> discussion)?

Remove all the gunk that's been added since Version 7.
--
	UUCP:  ..decvax!seismo!elsie!ado	ARPA:  you've got me!
	DEC, VAX and Elsie are Digital Equipment and Borden trademarks

Doug Gwyn (VLD/VMB) <gwyn@Brl-Vld.ARPA> (02/10/85)

The exact tradeoffs depend on the specific hardware involved.  Here
are some ideas that should work especially well for smaller systems:

Item # 1:  Install the 3B20A semaphores in all UNIX kernels, so
that unnecessary lockout of interrupts does not occur.

Item # 2:  Fix the scheduler.

Item # 3:  Locate and fix all linear searches through tables that
might grow larger than a dozen or so entries.

Item # 4:  Install stream I/O.  This in itself may not speed things
up much, but it provides the base for moving functionality out of
the host CPU and into smart I/O processors (terminal driver in your
5620, anyone?).

Item # 5:  Do not resort to overly complicated algorithms; the CPU
is not a "free" resource.

Item # 6:  Start ripping stuff out of the kernel if it can be done
well in user mode with the support of a more general kernel facility.
The wasted memory reclaimed will improve performance of user processes.

dave@lsuc.UUCP (David Sherman) (02/11/85)

Forget kernel mods. There's one simple change at the applications
program level which make a huge difference to many interactive
programs. Simple call setbuf on stdout, and put fflush(stdout)
where appropriate. Make sure you don't miss any important fflush's, though.
-- 
{utzoo pesnta nrcaero utcs}!lsuc!dave
{allegra decvax ihnp4 linus}!utcsrgv!lsuc!dave