pre-patch-2.1.37-2 ipv6 as module w. SMP + patch

Michael L. Galbraith (mikeg@weiden.de)
Fri, 2 May 1997 17:33:35 +0200 (MET DST)


Hi All,

In order to get ipv6 to compile (and load at least) as a module with
SMP, I had to..

diff -urN linux-2.1.37.vanilla/net/ipv6/datagram.c linux-2.1.37/net/ipv6/datagram.c
--- linux-2.1.37.vanilla/net/ipv6/datagram.c Mon Apr 14 18:31:10 1997
+++ linux-2.1.37/net/ipv6/datagram.c Fri May 2 10:24:11 1997
@@ -17,6 +17,13 @@
#include <linux/types.h>
#include <linux/socket.h>
#include <linux/sockios.h>
+#ifdef __SMP__
+#include <linux/kernel.h>
+#include <linux/sched.h>
+#include <asm/system.h>
+#include <linux/smp.h>
+#include <linux/smp_lock.h>
+#endif
#include <linux/in6.h>
#include <linux/ipv6.h>
#include <linux/route.h>

On my uniprocessor machine, the scheduling is choppy. While compiling a
kernel, I logged in on another term. The login itself went quick, but
the various junk from my .profile took a long (several secs.) to run.
The load average was over 4 with just one compile running. At the monent,
I'm running a non-smp pre-37 and compiling the kernel yet again..

5:26pm up 8 min, 3 users, load average: 2.04, 1.75, 0.93

load is still too high.. at least much higher than 2.0.30.

The SMP kernel doesn't seem to lose too much performance on a uniprocessor
machine for just one task, but it deffinately doesn't like having only
one cpu.

(63 is SMP kernel on unibox)

Processor, Processes - times in microseconds
--------------------------------------------
Host OS Mhz Null Null Simple /bin/sh Mmap 2-proc 8-proc
Syscall Process Process Process lat ctxsw ctxsw
--------- ------------- ---- ------- ------- ------- ------- ---- ------ ------
mikeg.63 Linux 2.1.37 151 2 1K 8K 20K 41 10 17
mikeg.62 Linux 2.1.37 151 1 1K 8K 20K 37 6 13

*Local* Communication latencies in microseconds
-----------------------------------------------
Host OS Pipe UDP RPC/ TCP RPC/
UDP TCP
--------- ------------- ------- ------- ------- ------- -------
mikeg.63 Linux 2.1.37 35 209 425 291 595
mikeg.62 Linux 2.1.37 21 152 345 217 489

*Local* Communication bandwidths in megabytes/second
----------------------------------------------------
Host OS Pipe TCP File Mmap Bcopy Bcopy Mem Mem
reread reread (libc) (hand) read write
--------- ------------- ---- ---- ------ ------ ------ ------ ---- -----
mikeg.63 Linux 2.1.37 28 11 25 80 26 26 94 37
mikeg.62 Linux 2.1.37 30 12 26 82 26 26 94 37

Processor, Processes - factor slower than the best
--------------------------------------------------
Host OS Mhz Null Null Simple /bin/sh Mmap 2-proc 8-proc
Syscall Process Process Process lat ctxsw ctxsw
--------- ------------- ---- ------- ------- ------- ------- ---- ------ ------
mikeg.63 Linux 2.1.37 151 2.0 1.1 1.0 *19.7K 1.1 1.7 1.3
mikeg.62 Linux 2.1.37 151 *1 *1.3K *7.9K 1.0 *37 *6 *13

*Local* Communication latencies - factor slower than the best
-------------------------------------------------------------
Host OS Pipe UDP RPC/ TCP RPC/
UDP TCP
--------- ------------- ------- ------- ------- ------- -------
mikeg.63 Linux 2.1.37 1.7 1.4 1.2 1.3 1.2
mikeg.62 Linux 2.1.37 *21 *152 *345 *217 *489

*Local* Communication bandwidths - percentage of the best
---------------------------------------------------------
Host OS Pipe TCP File Mmap Bcopy Bcopy Mem Mem
reread reread (libc) (hand) read write
--------- ------------- ---- ---- ------ ------ ------ ------ ---- -----
mikeg.63 Linux 2.1.37 94% 91% 98% 96% *25 99% *93 99%
mikeg.62 Linux 2.1.37 *29 *12 *25 *82 *25 *26 99% *37

-Mike