At last here are a few results. I am comparing
1) a stock 2.6.11-rc5 kernel with selinux+capabilities,
2) 2.6.11-rc5 with stacker + selinux + cap_stack
3. 2.6.11-rc5 with modified stacker + selinux + cap_stack
The modified stacker creates a list_head for each LSM hook and adds a
module's hook to the list only if it is defined. This way we don't have
to check for (module->operation) for each module on each hook call.
This results in performance on macrobenchmarks (kernel compile) which
actually seems on par with or slightly better than non-stacker. Lmbench
results (attached) for some reason do not back this up. I can't explain
those results. Might just try a whole new set of lmbench tests, in case
I left some service enabled.
The modified stacker.c is attached. Note that you cannot yet (safely)
unload modules with this stacker - it was purely a test for performance.
All other patches are the same as before, except for a ppc64 fix which
is now on sf.net/projects/lsm-stacker. (Tests were still on x86).
Kernel compile (nostack):
71.438
71.323
72.112
# elements: 3, mean 71.624333, variance 0.121114, std dev 0.348014
Kernel compile (stack):
71.624
71.816
72.173
# elements: 3, mean 71.871000, variance 0.051746, std dev 0.227477
Kernel compile (modified stacker) (few extra tests to be sure)
1m11.149s
1m11.394s
1m11.215s
1m11.399s
1m11.696s
# elements: 5, mean 71.370600, variance 0.036111, std dev 0.190030
On Tue, 2005-02-22 at 11:00 -0500, Stephen Smalley wrote:
> On Tue, 2005-02-22 at 09:57 -0600, Serge Hallyn wrote:
> > No, unfortunately I don't have that data yet. I need to set up a
> > selinux-capable system in our testing pool, then I will generate
> > numbers.
>
> Ok. Targeted policy is fine for such performance benchmarking.
>
--
Serge Hallyn <serue@private>
L M B E N C H 2 . 0 S U M M A R Y
------------------------------------
Basic system parameters
----------------------------------------------------
Host OS Description Mhz
--------- ------------- ----------------------- ----
serge.aus Linux 2.6.11- i686-pc-linux-gnu 2368
serge.aus Linux 2.6.11- i686-pc-linux-gnu 2368
serge.aus Linux 2.6.11- i686-pc-linux-gnu 2368
serge.aus Linux 2.6.11- i686-pc-linux-gnu 2368
serge.aus Linux 2.6.11- i686-pc-linux-gnu 2368
Processor, Processes - times in microseconds - smaller is better
----------------------------------------------------------------
Host OS Mhz null null open selct sig sig fork exec sh
call I/O stat clos TCP inst hndl proc proc proc
--------- ------------- ---- ---- ---- ---- ---- ----- ---- ---- ---- ---- ----
serge.aus Linux 2.6.11- 2368 0.17 0.46 3.68 4.48 6.917 0.66 2.13 135. 524. 2575
serge.aus Linux 2.6.11- 2368 0.17 0.46 3.83 4.46 7.215 0.65 2.14 136. 535. 2580
serge.aus Linux 2.6.11- 2368 0.17 0.46 3.83 4.58 7.148 0.65 2.14 135. 537. 2584
serge.aus Linux 2.6.11- 2368 0.17 0.47 3.85 4.53 7.242 0.66 2.16 137. 538. 2601
serge.aus Linux 2.6.11- 2368 0.17 0.46 3.80 4.58 7.200 0.65 2.18 136. 541. 2574
MEAN 2368 0.17 0.46 3.80 4.53 7.144 0.65 2.15 136 535 2583
STDEV 0 0 .004 0.06 0.05 0.118 .004 0.02 1 6 10
Context switching - times in microseconds - smaller is better
-------------------------------------------------------------
Host OS 2p/0K 2p/16K 2p/64K 8p/16K 8p/64K 16p/16K 16p/64K
ctxsw ctxsw ctxsw ctxsw ctxsw ctxsw ctxsw
--------- ------------- ----- ------ ------ ------ ------ ------- -------
serge.aus Linux 2.6.11- 2.230 3.3700 5.9800 4.1100 30.8 7.44000 42.3
serge.aus Linux 2.6.11- 2.260 3.4700 5.9600 3.8300 34.9 9.08000 42.0
serge.aus Linux 2.6.11- 2.310 3.4000 5.9900 5.1100 33.2 9.67000 42.2
serge.aus Linux 2.6.11- 2.540 3.3400 5.9700 4.2700 33.4 8.45000 42.3
serge.aus Linux 2.6.11- 2.340 3.3000 5.9900 4.5600 34.7 9.57000 42.4
MEAN 2.336 3.376 5.978 4.376 33.4 8.842 42.2
STDEV 0.109 0.057 0.012 0.437 1.5 0.824 0.1
*Local* Communication latencies in microseconds - smaller is better
-------------------------------------------------------------------
Host OS 2p/0K Pipe AF UDP RPC/ TCP RPC/ TCP
ctxsw UNIX UDP TCP conn
--------- ------------- ----- ----- ---- ----- ----- ----- ----- ----
serge.aus Linux 2.6.11- 2.230 7.461 13.3 28.1 86.5
serge.aus Linux 2.6.11- 2.260 7.301 13.3 28.0 85.9
serge.aus Linux 2.6.11- 2.310 7.440 13.3 28.2 87.8
serge.aus Linux 2.6.11- 2.540 7.261 13.4 28.7 86.8
serge.aus Linux 2.6.11- 2.340 7.427 13.2 27.9 86.3
MEAN 2.336 7.378 13.3 28.2 86.7
STDEV 0.109 0.081 0.1 0.3 0.6
File & VM system latencies in microseconds - smaller is better
--------------------------------------------------------------
Host OS 0K File 10K File Mmap Prot Page
Create Delete Create Delete Latency Fault Fault
--------- ------------- ------ ------ ------ ------ ------- ----- -----
serge.aus Linux 2.6.11- 48.2 9.2370 92.2 20.2 886.0 0.784 2.00000
serge.aus Linux 2.6.11- 48.0 9.2900 92.8 20.1 884.0 0.770 2.00000
serge.aus Linux 2.6.11- 48.0 9.4000 91.5 20.3 917.0 0.799 2.00000
serge.aus Linux 2.6.11- 48.0 9.2300 94.3 20.2 900.0 0.780 2.00000
serge.aus Linux 2.6.11- 48.2 9.2730 91.5 20.1 887.0 0.727 2.00000
MEAN 48.1 9.286 92.5 20.2 894.8 0.772 2
STDEV 0.1 0.061 1.0 0.1 12.4 0.024
*Local* Communication bandwidths in MB/s - bigger is better
-----------------------------------------------------------
Host OS Pipe AF TCP File Mmap Bcopy Bcopy Mem Mem
UNIX reread reread (libc) (hand) read write
--------- ------------- ---- ---- ---- ------ ------ ------ ------ ---- -----
serge.aus Linux 2.6.11- 1901 1333 380. 1310.7 1651.6 373.6 383.4 1652 516.0
serge.aus Linux 2.6.11- 1782 2138 399. 1313.1 1663.1 365.3 374.4 1653 517.3
serge.aus Linux 2.6.11- 1897 2092 405. 1318.0 1671.2 367.4 377.1 1660 518.8
serge.aus Linux 2.6.11- 1867 1617 393. 1309.3 1651.5 369.1 381.0 1657 526.5
serge.aus Linux 2.6.11- 1883 1759 416. 1317.9 1655.6 372.0 385.3 1660 525.8
MEAN 1866 1788 399 1313.8 1658.6 369.5 380.2 1656 520.9
STDEV 44 301 12 3.6 7.6 3.0 4.0 3 4.4
Memory latencies in nanoseconds - smaller is better
(WARNING - may not be correct, check graphs)
---------------------------------------------------
Host OS Mhz L1 $ L2 $ Main mem Guesses
--------- ------------- ---- ----- ------ -------- -------
serge.aus Linux 2.6.11- 2368 0.837 7.7670 115.8
serge.aus Linux 2.6.11- 2368 0.848 7.7630 115.5
serge.aus Linux 2.6.11- 2368 0.836 7.7600 114.2
serge.aus Linux 2.6.11- 2368 0.836 7.7620 114.0
serge.aus Linux 2.6.11- 2368 0.901 7.7640 115.8
MEAN 2368 0.852 7.763 115.1
STDEV 0 0.025 0.002 0.8
L M B E N C H 2 . 0 S U M M A R Y
------------------------------------
Basic system parameters
----------------------------------------------------
Host OS Description Mhz
--------- ------------- ----------------------- ----
serge.aus Linux 2.6.11- i686-pc-linux-gnu 2367
serge.aus Linux 2.6.11- i686-pc-linux-gnu 2367
serge.aus Linux 2.6.11- i686-pc-linux-gnu 2367
serge.aus Linux 2.6.11- i686-pc-linux-gnu 2367
serge.aus Linux 2.6.11- i686-pc-linux-gnu 2367
Processor, Processes - times in microseconds - smaller is better
----------------------------------------------------------------
Host OS Mhz null null open selct sig sig fork exec sh
call I/O stat clos TCP inst hndl proc proc proc
--------- ------------- ---- ---- ---- ---- ---- ----- ---- ---- ---- ---- ----
serge.aus Linux 2.6.11- 2367 0.17 0.43 3.60 4.31 6.968 0.66 2.13 134. 532. 2543
serge.aus Linux 2.6.11- 2367 0.17 0.43 3.63 4.37 7.081 0.66 2.10 138. 536. 2558
serge.aus Linux 2.6.11- 2367 0.17 0.43 3.66 4.35 6.886 0.66 2.14 137. 545. 2544
serge.aus Linux 2.6.11- 2367 0.17 0.43 3.64 4.38 6.991 0.66 2.18 134. 533. 2566
serge.aus Linux 2.6.11- 2367 0.17 0.44 3.66 4.46 6.911 0.66 2.13 136. 560. 2552
MEAN 3.64 4.37 6.967 2.14 136 541 2553
STDEV 0.02 0.05 0.068 0.03 2 10 9
CI (95%)
Context switching - times in microseconds - smaller is better
-------------------------------------------------------------
Host OS 2p/0K 2p/16K 2p/64K 8p/16K 8p/64K 16p/16K 16p/64K
ctxsw ctxsw ctxsw ctxsw ctxsw ctxsw ctxsw
--------- ------------- ----- ------ ------ ------ ------ ------- -------
serge.aus Linux 2.6.11- 2.280 3.2800 5.8500 4.0700 33.7 9.43000 41.7
serge.aus Linux 2.6.11- 2.270 3.3000 5.7600 4.4400 32.7 9.94000 41.5
serge.aus Linux 2.6.11- 2.320 3.2600 5.8200 4.1100 32.6 8.59000 41.8
serge.aus Linux 2.6.11- 2.230 3.2200 5.9500 4.3900 33.9 9.87000 42.0
serge.aus Linux 2.6.11- 2.280 3.2800 5.8500 3.9300 32.6 8.83000 41.6
MEAN 2.276 3.27 5.85 4.19 33.1 9.33 41.7
STDEV 0.029 0.03 0.06 0.20 0.6 0.54 0.2
*Local* Communication latencies in microseconds - smaller is better
-------------------------------------------------------------------
Host OS 2p/0K Pipe AF UDP RPC/ TCP RPC/ TCP
ctxsw UNIX UDP TCP conn
--------- ------------- ----- ----- ---- ----- ----- ----- ----- ----
serge.aus Linux 2.6.11- 2.280 7.141 12.9 26.9
serge.aus Linux 2.6.11- 2.270 7.095 13.1 23.8 27.3
serge.aus Linux 2.6.11- 2.320 7.151 13.0 23.7 27.1
serge.aus Linux 2.6.11- 2.230 6.495 13.0 23.9 27.0
serge.aus Linux 2.6.11- 2.280 7.178 13.1 23.9 27.4
MEAN 2.28 7.012 13.0 23.8 27.1
STDEV 0.03 0.260 0.1 0.1 0.2
File & VM system latencies in microseconds - smaller is better
--------------------------------------------------------------
Host OS 0K File 10K File Mmap Prot Page
Create Delete Create Delete Latency Fault Fault
--------- ------------- ------ ------ ------ ------ ------- ----- -----
serge.aus Linux 2.6.11- 46.9 9.0100 90.3 18.7 890.0 0.794 2.00000
serge.aus Linux 2.6.11- 46.7 8.9630 86.7 18.8 888.0 0.818 2.00000
serge.aus Linux 2.6.11- 46.6 8.9870 89.2 18.7 885.0 0.801 2.00000
serge.aus Linux 2.6.11- 46.7 9.0160 90.5 18.5 887.0 0.793 2.00000
serge.aus Linux 2.6.11- 46.7 9.0810 86.8 18.7 886.0 0.771 2.00000
MEAN 46.7 9.011 88.7 18.7 887.2 0.795 2
STDEV 0.1 0.040 1.7 0.1 1.7 0.015 0
*Local* Communication bandwidths in MB/s - bigger is better
-----------------------------------------------------------
Host OS Pipe AF TCP File Mmap Bcopy Bcopy Mem Mem
UNIX reread reread (libc) (hand) read write
--------- ------------- ---- ---- ---- ------ ------ ------ ------ ---- -----
serge.aus Linux 2.6.11- 1928 1367 424. 1320.9 1662.7 388.6 411.8 1658 572.9
serge.aus Linux 2.6.11- 1936 2191 428. 1321.5 1663.6 422.5 421.8 1664 583.2
serge.aus Linux 2.6.11- 1867 2167 379. 1322.1 1663.7 401.4 427.1 1658 594.0
serge.aus Linux 2.6.11- 1918 2219 406. 1318.1 1660.1 402.9 425.9 1658 598.9
serge.aus Linux 2.6.11- 1831 1121 444. 1320.7 1660.5 403.2 429.9 1662 606.4
MEAN 1896 1813 416 1320.7 1662.1 403.7 423.3 1660 581.1
STDEV 40 471 22 1.4 1.5 10.8 6.3 3 11.8
Memory latencies in nanoseconds - smaller is better
(WARNING - may not be correct, check graphs)
---------------------------------------------------
Host OS Mhz L1 $ L2 $ Main mem Guesses
--------- ------------- ---- ----- ------ -------- -------
serge.aus Linux 2.6.11- 2367 0.782 7.7890 115.1
serge.aus Linux 2.6.11- 2367 0.782 7.7140 113.4
serge.aus Linux 2.6.11- 2367 0.849 7.7140 114.4
serge.aus Linux 2.6.11- 2367 0.784 7.7400 114.4
serge.aus Linux 2.6.11- 2367 0.782 7.7140 114.1
MEAN 2367 0.796 7.734 114.3
STDEV 0 0.027 0.029 0.5
L M B E N C H 2 . 0 S U M M A R Y
------------------------------------
Basic system parameters
----------------------------------------------------
Host OS Description Mhz
--------- ------------- ----------------------- ----
serge.aus Linux 2.6.11- i686-pc-linux-gnu 2368
serge.aus Linux 2.6.11- i686-pc-linux-gnu 2368
serge.aus Linux 2.6.11- i686-pc-linux-gnu 2368
serge.aus Linux 2.6.11- i686-pc-linux-gnu 2368
serge.aus Linux 2.6.11- i686-pc-linux-gnu 2368
Processor, Processes - times in microseconds - smaller is better
----------------------------------------------------------------
Host OS Mhz null null open selct sig sig fork exec sh
call I/O stat clos TCP inst hndl proc proc proc
--------- ------------- ---- ---- ---- ---- ---- ----- ---- ---- ---- ---- ----
serge.aus Linux 2.6.11- 2368 0.17 0.46 3.77 4.46 7.349 0.66 2.17 134. 552. 2561
serge.aus Linux 2.6.11- 2368 0.17 0.46 3.69 4.48 7.203 0.65 2.15 135. 544. 2542
serge.aus Linux 2.6.11- 2368 0.17 0.46 3.68 4.49 7.111 0.66 2.18 135. 546. 2549
serge.aus Linux 2.6.11- 2368 0.17 0.48 3.78 4.51 7.516 0.66 2.14 134. 561. 2557
serge.aus Linux 2.6.11- 2368 0.17 0.46 3.68 4.51 6.971 0.65 2.12 134. 534. 2552
MEAN 2368 0.17 0.46 3.72 4.49 7.23 0.66 2.15 134 547 2552
STDEV 0 0 0.01 0.05 0.02 0.19 0.00 0.02 0 9 7
Context switching - times in microseconds - smaller is better
-------------------------------------------------------------
Host OS 2p/0K 2p/16K 2p/64K 8p/16K 8p/64K 16p/16K 16p/64K
ctxsw ctxsw ctxsw ctxsw ctxsw ctxsw ctxsw
--------- ------------- ----- ------ ------ ------ ------ ------- -------
serge.aus Linux 2.6.11- 2.370 3.2800 6.7500 4.3800 33.8 8.23000 41.9
serge.aus Linux 2.6.11- 2.630 3.4200 6.0200 4.3900 34.9 9.39000 41.7
serge.aus Linux 2.6.11- 2.340 3.4500 6.0500 4.0600 34.9 8.94000 41.5
serge.aus Linux 2.6.11- 2.470 3.5300 6.0100 4.2300 33.3 8.29000 41.5
serge.aus Linux 2.6.11- 2.400 3.3600 6.0400 4.1400 33.5 8.14000 41.3
MEAN 2.44 3.41 6.17 4.24 34.1 8.60 41.6
STDEV 0.10 0.08 0.29 0.13 0.7 0.49 0.2
*Local* Communication latencies in microseconds - smaller is better
-------------------------------------------------------------------
Host OS 2p/0K Pipe AF UDP RPC/ TCP RPC/ TCP
ctxsw UNIX UDP TCP conn
--------- ------------- ----- ----- ---- ----- ----- ----- ----- ----
serge.aus Linux 2.6.11- 2.370 7.266 13.7 27.6 87.3
serge.aus Linux 2.6.11- 2.630 7.194 13.8 28.1 87.3
serge.aus Linux 2.6.11- 2.340 7.189 13.7 28.1 86.6
serge.aus Linux 2.6.11- 2.470 7.282 13.6 28.2 88.1
serge.aus Linux 2.6.11- 2.400 7.246 13.8 28.1 87.5
MEAN 2.44 7.235 13.7 28.0 87.4
STDEV 0.10 0.038 0.1 0.2 0.5
File & VM system latencies in microseconds - smaller is better
--------------------------------------------------------------
Host OS 0K File 10K File Mmap Prot Page
Create Delete Create Delete Latency Fault Fault
--------- ------------- ------ ------ ------ ------ ------- ----- -----
serge.aus Linux 2.6.11- 47.8 9.5070 89.7 19.4 886.0 0.823 2.00000
serge.aus Linux 2.6.11- 47.6 9.5630 87.7 18.9 889.0 0.784 2.00000
serge.aus Linux 2.6.11- 47.9 9.5780 88.0 19.6 880.0 0.804 2.00000
serge.aus Linux 2.6.11- 47.6 9.6110 87.9 19.3 890.0 0.779 2.00000
serge.aus Linux 2.6.11- 47.5 9.5520 88.4 19.4 892.0 0.795 2.00000
MEAN 47.7 9.562 88.3 19.3 887 0.797 2
STDEV 0.1 0.034 0.7 0.2 4 0.016 0
*Local* Communication bandwidths in MB/s - bigger is better
-----------------------------------------------------------
Host OS Pipe AF TCP File Mmap Bcopy Bcopy Mem Mem
UNIX reread reread (libc) (hand) read write
--------- ------------- ---- ---- ---- ------ ------ ------ ------ ---- -----
serge.aus Linux 2.6.11- 1840 1309 416. 1315.9 1661.8 384.5 408.8 1660 565.2
serge.aus Linux 2.6.11- 1787 1663 413. 1309.8 1652.5 401.0 420.0 1660 583.4
serge.aus Linux 2.6.11- 1858 1304 400. 1313.0 1664.0 398.4 421.8 1654 597.6
serge.aus Linux 2.6.11- 1875 2216 399. 1317.9 1653.6 400.9 456.0 1667 605.6
serge.aus Linux 2.6.11- 1884 2189 401. 1320.5 1663.7 398.6 423.2 1656 602.3
MEAN 1849 1736 406 1315.4 1659.1 396.7 426.0 1659 590.8
STDEV 34 402 7 3.7 5.0 6.2 15.9 4 14.9
Memory latencies in nanoseconds - smaller is better
(WARNING - may not be correct, check graphs)
---------------------------------------------------
Host OS Mhz L1 $ L2 $ Main mem Guesses
--------- ------------- ---- ----- ------ -------- -------
serge.aus Linux 2.6.11- 2368 0.837 7.7630 116.3
serge.aus Linux 2.6.11- 2368 0.837 7.7630 114.3
serge.aus Linux 2.6.11- 2368 0.848 7.7770 113.2
serge.aus Linux 2.6.11- 2368 0.836 7.7760 114.9
serge.aus Linux 2.6.11- 2368 0.847 7.7640 116.3
MEAN 2368 0.841 7.769 115.0
STDEV 0 0.005 0.006 1.2
This archive was generated by hypermail 2.1.3 : Wed Mar 09 2005 - 08:38:37 PST