"REPORT: sd-0.46 vs cfs-v6 vs mainline 2.6.21-rc7 Beryl + Video + Audio"
Hardware:
Dell Inspiron 700m laptop
1.7GHz Pentium M (Dothan 2M cache)
2GB RAM
1000Hz
Gentoo Linux
dyn-tick
700m # cat /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate
10000 (microseconds, 10ms)
855gm integrated video/chipset
xf86-video-i810 (intel 1.7.4) DRI enabled
xorg-server-1.2.0-r3
beryl-core 0.3.0-svn
MPlayer dev-SVN-rUNKNOWN-4.1.2 - x11
Gnome totem 2.16.5 - x11-gstreamer
reiser4 w/cryptcompress
Screenshot:
http://ordorica.org/misc/beryl.png
muine playing mp3's off mounted windows share
Tests run under 16 bit color which provides a constant 75 fps
on one cube side (fps forced limited). Drops to ~45-50 fps during
animation/rotate/scale (depending on complexity of rendering)
Vsync off. 75Hz refresh 1280x800.
totem running fullscreen playing 700MB divx "An Inconvenient Truth.avi" on
one side of cube/desktop
gmplayer running fullscreen on another cube side (same file).
The given observations/numbers are when I move the cube with my mouse
and view two faces at one time (see screenshot). One face is playing the
totem video, the other containing my terminals.
Some numbers I've seen other people throw around:
I don't know their relevance.
cfs-v6:
700m kernel # cat sched_granularity_ns
5000000
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
5 0 0 221480 300 1394612 0 0 181 0 6068 5317 69 6 25 0
4 0 0 220880 300 1395268 0 0 176 0 6147 5579 68 6 27 0
1 0 0 220340 300 1395768 0 0 167 0 6052 5393 70 6 24 0
6 0 0 219920 300 1396204 0 0 103 0 5830 5211 73 6 21 0
top - 18:31:17 up 7:45, 5 users, load average: 5.18, 4.73, 4.28
Tasks: 98 total, 4 running, 94 sleeping, 0 stopped, 0 zombie
Cpu(s): 91.6%us, 6.4%sy, 0.0%ni, 0.3%id, 0.0%wa, 1.3%hi, 0.3%si, 0.0%st
Mem: 2057700k total, 1845952k used, 211748k free, 300k buffers
Swap: 987988k total, 0k used, 987988k free, 1404040k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
18046 hechacke 20 0 189m 83m 20m S 38.7 4.2 12:04.64 totem
18059 hechacke 20 0 51280 30m 18m R 25.8 1.5 9:47.36 gmplayer
12117 root 20 0 275m 54m 18m R 20.2 2.7 15:18.38 Xorg
22730 hechacke 20 0 119m 35m 18m R 5.3 1.7 0:12.68 mono
12350 hechacke 20 0 63820 6776 4328 S 3.6 0.3 2:20.36 beryl
16465 hechacke 20 0 43960 15m 10m S 2.3 0.8 0:07.14 gnome-terminal
12200 hechacke 20 0 5308 4016 1740 S 0.3 0.2 0:05.45 gconfd-2
12215 hechacke 20 0 38704 8956 7588 S 0.3 0.4 0:08.90 xfce4-clipman-p
Observation:
Music plays perfectly.
Audio of video's play perfectly.
New processes take forever to start. Firefox (already cached in ram) takes
about 5 seconds to start; even right after closing it.
Browsing the web is slow.
Already open applications are responsive.
Behavior of video:
video's both moving forward. totem is updating about every half second.
mplayer updates about every 3 seconds.
-----------------------------------------------------------------------------
cfs-v6:
700m kernel # cat sched_granularity_ns
2000000
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
5 0 0 99604 44 1519364 0 0 0 0 3903 5575 91 5 5 0
3 0 0 99512 44 1519364 0 0 0 0 5990 6783 72 5 23 0
3 0 0 100412 44 1519364 0 0 0 0 6858 7261 67 5 28 0
1 0 0 100412 44 1519364 0 0 0 0 7426 7634 62 4 34 0
4 0 0 100288 44 1519364 0 0 0 0 7039 7442 60 6 34 0
top - 19:05:09 up 8:18, 5 users, load average: 3.62, 4.16, 4.28
Tasks: 98 total, 4 running, 94 sleeping, 0 stopped, 0 zombie
Cpu(s): 69.8%us, 5.0%sy, 0.0%ni, 24.5%id, 0.0%wa, 0.7%hi, 0.0%si, 0.0%st
Mem: 2057700k total, 2009396k used, 48304k free, 300k buffers
Swap: 987988k total, 0k used, 987988k free, 1555428k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
18059 hechacke 20 0 51332 30m 18m R 30.8 1.5 18:48.17 gmplayer
18046 hechacke 20 0 189m 83m 20m S 20.9 4.2 23:25.49 totem
12117 root 20 0 276m 57m 18m S 9.6 2.8 20:59.01 Xorg
22730 hechacke 20 0 129m 36m 18m R 8.6 1.8 1:28.59 mono
22930 hechacke 20 0 65480 8392 4320 S 4.0 0.4 0:53.38 beryl
12213 hechacke 20 0 34472 7680 6484 S 0.7 0.4 1:16.41 xfce4-battery-p
Observation:
Music plays perfectly.
Audio of video's play perfectly.
New processes take forever to start.
Browsing the web is slow.
Already open applications are responsive.
Behavior of video:
video's both moving forward. totem is updating about every 1/3 second.
mplayer updates about every 1 seconds.
Rotating the cube is smoother than with 5000000, beryl seems more responsive.
After much trial and error i've decided on 2000000 as my optimum granularity
for beryl and to provide the most screen updates.
Larger or smaller values only make it worse.
-----------------------------------------------------------------------------
sd-0.46:
700m kernel # cat rr_interval
6
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
3 0 0 903128 524 859056 0 0 171 0 2138 13766 90 9 0 0
5 0 0 902468 524 859696 0 0 171 0 2800 12937 83 9 8 0
1 0 0 901292 524 860616 0 0 301 0 2670 11063 76 7 17 0
1 0 0 900692 524 861396 0 0 216 137 3576 10129 66 7 21 6
1 0 0 899644 524 862036 0 0 171 0 3011 11523 78 7 15 0
top - 19:56:21 up 7 min, 5 users, load average: 4.56, 2.79, 1.23
Tasks: 102 total, 4 running, 98 sleeping, 0 stopped, 0 zombie
Cpu(s): 64.7%us, 5.3%sy, 0.0%ni, 28.7%id, 0.0%wa, 1.0%hi, 0.3%si, 0.0%st
Mem: 2057716k total, 1161536k used, 896180k free, 524k buffers
Swap: 987988k total, 0k used, 987988k free, 865512k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10132 hechacke 5 0 51264 30m 18m R 29.1 1.5 0:58.74 gmplayer
10106 hechacke 1 0 193m 84m 18m S 17.2 4.2 1:13.03 totem
9817 hechacke 1 0 128m 36m 18m S 11.3 1.8 0:50.52 mono
9443 root 1 0 272m 47m 13m R 7.9 2.4 0:41.76 Xorg
9975 hechacke 1 0 63452 6332 4320 S 3.0 0.3 0:07.98 beryl
9823 hechacke 1 0 36136 8764 7240 S 0.3 0.4 0:00.60 xfce4-mixer-plu
9825 hechacke 1 0 42764 13m 10m S 0.3 0.7 0:01.64 gnome-terminal
Observation:
Music plays perfectly.
Audio of video's play perfectly.
New processes take forever to start. (about same as cfs)
Browsing the web faster than cfs (a lot less lag time between clicks and render)
Already open applications are responsive.
Behavior of video:
video's both moving forward. totem is updating about every 1/3 second.
mplayer updates about every 1/2 second.
Videos are visibly smoother compared to cfs. cube rotation is smoother
than cfs in the sense that the fps is constant (albeit slower) than cfs.
cfs would slow down on the video sides of the cube, while speeding up
on the empty side.
------------------------------------------------------------------------------
sd-0.46:
700m kernel # cat rr_interval
2
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
5 0 0 918052 536 832840 0 0 411 0 2387 15242 89 11 0 0
4 1 0 915600 536 834908 0 0 388 0 2283 15428 90 10 0 0
1 0 0 908768 536 841356 0 0 1085 0 2683 15916 84 12 0 4
3 0 0 923068 536 826100 0 0 537 0 2100 15797 80 12 6 1
3 0 0 924444 536 826484 0 0 85 0 3509 14786 69 7 24 0
top - 20:10:18 up 21 min, 5 users, load average: 3.73, 3.92, 3.00
Tasks: 101 total, 4 running, 97 sleeping, 0 stopped, 0 zombie
Cpu(s): 70.1%us, 11.1%sy, 12.8%ni, 0.0%id, 5.0%wa, 1.0%hi, 0.0%si, 0.0%st
Mem: 2057716k total, 1126964k used, 930752k free, 536k buffers
Swap: 987988k total, 0k used, 987988k free, 820380k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10106 hechacke 1 0 192m 85m 20m S 23.6 4.3 5:50.89 totem
10132 hechacke 11 0 51264 30m 18m R 23.3 1.5 4:31.65 gmplayer
10064 hechacke 32 12 64028 21m 8696 S 17.9 1.1 0:11.08 beagled-helper
9443 root 1 0 272m 49m 15m S 13.3 2.5 3:11.59 Xorg
9817 hechacke 1 0 128m 36m 18m S 12.6 1.8 2:16.98 mono
9975 hechacke 1 0 63452 6396 4316 S 2.3 0.3 0:30.94 beryl
Observation:
Music plays perfectly.
Audio of video's play perfectly.
New processes take forever to start.
Browsing the web faster than cfs (better than rr_interval 6)
Already open applications are responsive.
Behavior of video:
video's both moving forward. totem is doing ~4fps.
mplayer is doing 15-25 fps.
Obviously my choice for the smoothest experience.
-----------------------------------------------------------------------------
mainline 2.6.21-rc7
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
7 0 0 1012944 536 776276 0 0 256 0 3553 6388 68 7 26 0
1 0 0 1011956 536 777300 0 0 299 0 3315 5998 72 6 21 0
6 0 0 1015684 536 777108 0 0 299 0 3359 5776 82 8 10 0
5 0 0 1014132 536 778096 0 0 213 0 3444 6762 70 7 23 0
1 0 0 1020072 536 774912 0 0 384 155 3127 7239 68 9 18 5
5 0 0 1014224 536 777260 0 0 299 0 3480 8209 65 9 25 0
top - 20:37:37 up 5 min, 4 users, load average: 4.19, 2.54, 1.05
Tasks: 98 total, 2 running, 96 sleeping, 0 stopped, 0 zombie
Cpu(s): 89.5%us, 5.4%sy, 0.0%ni, 3.4%id, 0.0%wa, 1.7%hi, 0.0%si, 0.0%st
Mem: 2057716k total, 1040344k used, 1017372k free, 536k buffers
Swap: 987988k total, 0k used, 987988k free, 788480k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
7912 hechacke 15 0 171m 64m 18m S 42.9 3.2 1:07.15 totem
7918 hechacke 15 0 51208 29m 18m S 25.0 1.5 0:55.90 gmplayer
5850 root 16 0 268m 45m 13m R 22.0 2.3 0:36.28 Xorg
7836 hechacke 15 0 63316 6288 4320 S 3.0 0.3 0:07.18 beryl
7945 hechacke 15 0 42184 13m 10m S 1.7 0.7 0:00.89 gnome-terminal
Observation:
Music plays perfectly.
Audio of video's play perfectly.
New processes don't start?!? Firefox took 30-60 seconds to appears after
cached. Muine took 15 seconds.
Browsing the web is faster than cfs or sd. Almost no lag.
Already open applications are responsive.
Behavior of video:
video's both moving forward. totem is doing ~2fps.
mplayer is doing ~3 fps.
Both videos are playing, and they don't slow down with load. Unfairness
is in play here.
-----------------------------------------------------------------------------
Overall:
SD-0.46 is my new choice for scheduler. When not under load everything
run's better or similarly to cfs or mainline. Under load however it
shows the most responsiveness.
Occasionally I had complete mouse freezes with cfs when the system was
busy. But rarely.
Under SD i haven't seen anything get starved.
mainline surprisingly works better than i expected, but beryl suffers
and responsiveness suffers under load.