LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* RSDL 0.31 causes slowdown
@ 2007-03-22 21:21 Tim Chen
2007-03-23 2:21 ` William Lee Irwin III
2007-03-23 2:40 ` Con Kolivas
0 siblings, 2 replies; 5+ messages in thread
From: Tim Chen @ 2007-03-22 21:21 UTC (permalink / raw)
To: ck; +Cc: linux-kernel
Con,
I've tried running Volanomark and found a 80% regression
with RSDL 0.31 scheduler on 2.6.21-rc4 on a 2 socket Core 2 quad cpu
system (4 cpus per socket, 8 cpus for system).
The results are sensitive to rr_interval. Using Con's patch to increase
rr_interval to a large value of 100,
the regression reduced to 30% instead of 80%.
I ran Volanomark in loopback mode with 10 chatrooms
(20 clients per chatroom) configuration, with each client sending
out 10000 messages.
http://www.volano.com/benchmarks.html
There are significant differences in the vmstat runqueue profile
between the 2.6.21-rc4 and the one with RSDL.
There are a lot less runnable jobs (see col 2) with RSDL 0.31 (rr_interval=15)
and higher idle time.
2.6.21-rc4 (original)
Time procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
(sec) r b swpd free buff cache si so bi bo in cs us sy id wa st
10 2 3 0 2642376 15320 194612 0 0 161 875 44 70 1 1 92 5 0
20 379 0 0 1573484 15680 195152 0 0 46 237 350 152686 9 8 81 2 0
30 395 0 0 1579056 15704 195152 0 0 0 30 284 1017337 44 48 8 0 0
40 469 0 0 1586368 15744 195144 0 0 0 50 284 1075456 42 51 7 0 0
50 425 0 0 1593628 15756 195156 0 0 0 40 289 1108785 41 52 6 0 0
60 394 0 0 1599452 15772 195156 0 0 0 31 284 1160316 41 53 5 0 0
70 65 0 0 1599684 15788 195160 0 0 0 20 284 1075719 40 52 8 0 0
80 424 0 0 1599320 15928 195168 0 0 1 122 314 1187583 41 54 4 0 0
90 438 0 0 1600188 15944 195164 0 0 0 41 289 1171807 40 53 6 0 0
100 412 0 0 1599312 15968 195160 0 0 0 22 284 1183832 41 54 5 0 0
110 398 0 0 1599716 15976 195176 0 0 0 6 283 1227036 42 55 3 0 0
120 382 0 0 1599468 15992 195180 0 0 0 23 286 1160802 40 54 6 0 0
130 370 0 0 1599912 16008 195180 0 0 0 10 284 1159618 42 52 7 0 0
2.6.21-rc4 with RSDL 0.31
Time procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
(sec) r b swpd free buff cache si so bi bo in cs us sy id wa st
10 2 3 0 2644892 15316 194612 0 0 160 869 44 64 1 1 92 5 0
20 2 0 0 1577512 15388 194984 0 0 24 93 293 3935 3 2 95 1 0
30 2 0 0 1583888 15412 194984 0 0 0 33 284 638668 28 39 33 0 0
40 2 0 0 1591208 15444 194972 0 0 0 50 284 307181 19 28 53 0 0
50 4 0 0 1598364 15460 194980 0 0 0 39 285 311971 18 29 53 0 0
60 8 0 0 1604108 15476 194980 0 0 0 29 284 308109 18 29 53 0 0
70 9 0 0 1603792 15492 194992 0 0 0 8 283 315947 18 29 52 0 0
80 11 0 0 1602440 15784 195032 0 0 20 161 342 310849 18 29 52 1 0
90 1 0 0 1602504 15792 195160 0 0 0 37 287 317667 18 29 53 0 0
100 1 0 0 1603140 15824 195144 0 0 0 25 284 319106 18 30 52 0 0
110 7 0 0 1602760 15832 195160 0 0 0 6 283 316589 17 29 53 0 0
120 12 0 0 1602644 15848 195164 0 0 0 22 285 320019 17 30 52 0 0
130 1 0 0 1602644 15864 195164 0 0 0 10 283 319537 17 30 53 0 0
140 6 0 0 1601744 16016 195176 0 0 2 104 312 316836 18 30 52 0 0
2.6.21-rc4 with RSDL 0.31, rr_interval = 100
Time procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
(sec) r b swpd free buff cache si so bi bo in cs us sy id wa st
10 4 2 0 2679976 16696 195380 0 0 65 353 40 33 0 1 97 2 0
20 296 0 0 1602676 16780 195764 0 0 22 104 294 151873 8 9 82 1 0
30 298 0 0 1601280 16808 195756 0 0 0 14 284 1164355 41 56 3 0 0
40 272 0 0 1600108 16832 195764 0 0 0 12 284 1205454 42 57 1 0 0
50 321 0 0 1599128 16848 195760 0 0 0 25 287 1209822 41 58 1 0 0
60 281 0 0 1598764 16864 195760 0 0 0 12 283 1206452 41 57 2 0 0
70 287 0 0 1598888 16880 195764 0 0 0 15 284 1206103 40 58 2 0 0
80 276 0 0 1597764 16904 195776 0 0 0 33 285 1193156 39 58 3 0 0
90 293 0 0 1598144 16920 195780 0 0 0 14 284 1215350 39 59 2 0 0
100 287 0 0 1598260 16936 195780 0 0 0 11 283 1236433 40 58 2 0 0
110 257 0 0 1597872 16952 195784 0 0 0 10 283 1234983 40 59 1 0 0
120 255 0 0 1598640 16968 195784 0 0 0 16 284 1178551 39 58 3 0 0
130 200 0 0 1598764 16984 195788 0 0 0 13 284 1223963 39 59 2 0 0
140 274 0 0 1598632 17008 195792 0 0 0 22 284 1179931 40 57 3 0 0
150 278 0 0 1598616 17024 195792 0 0 0 21 286 1215157 39 59 2 0 0
- Tim
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: RSDL 0.31 causes slowdown
2007-03-22 21:21 RSDL 0.31 causes slowdown Tim Chen
@ 2007-03-23 2:21 ` William Lee Irwin III
2007-03-23 2:40 ` Con Kolivas
1 sibling, 0 replies; 5+ messages in thread
From: William Lee Irwin III @ 2007-03-23 2:21 UTC (permalink / raw)
To: Tim Chen; +Cc: ck, linux-kernel
On Thu, Mar 22, 2007 at 01:21:46PM -0800, Tim Chen wrote:
> I've tried running Volanomark and found a 80% regression
> with RSDL 0.31 scheduler on 2.6.21-rc4 on a 2 socket Core 2 quad cpu
> system (4 cpus per socket, 8 cpus for system).
> The results are sensitive to rr_interval. Using Con's patch to increase
> rr_interval to a large value of 100,
> the regression reduced to 30% instead of 80%.
> I ran Volanomark in loopback mode with 10 chatrooms
> (20 clients per chatroom) configuration, with each client sending
> out 10000 messages.
> http://www.volano.com/benchmarks.html
> There are significant differences in the vmstat runqueue profile
> between the 2.6.21-rc4 and the one with RSDL.
> There are a lot less runnable jobs (see col 2) with RSDL 0.31
> (rr_interval=15) and higher idle time.
This would be yield() semantics. A flag or alternate syscall for "hard"
yield() semantics would resolve this (likely trapped into via LD_PRELOAD).
It may also be useful to have a few variants of yield_to() (a.k.a.
directed yields), such as ones donating timeslices by pid, by owner of
sysv semaphore, by owner of futex, and to other ends of pipes and UNIX
domain sockets if unique or otherwise able to be made sense of. It's
unclear how easily the latter could be utilized by userspace, though,
given the number of applications and libraries needing to be updated.
-- wli
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: RSDL 0.31 causes slowdown
2007-03-22 21:21 RSDL 0.31 causes slowdown Tim Chen
2007-03-23 2:21 ` William Lee Irwin III
@ 2007-03-23 2:40 ` Con Kolivas
2007-03-23 17:57 ` Tim Chen
1 sibling, 1 reply; 5+ messages in thread
From: Con Kolivas @ 2007-03-23 2:40 UTC (permalink / raw)
To: tim.c.chen; +Cc: ck, linux-kernel, kernel
On 23/03/07, Tim Chen <tim.c.chen@linux.intel.com> wrote:
> Con,
>
> I've tried running Volanomark and found a 80% regression
> with RSDL 0.31 scheduler on 2.6.21-rc4 on a 2 socket Core 2 quad cpu
> system (4 cpus per socket, 8 cpus for system).
>
> The results are sensitive to rr_interval. Using Con's patch to increase
> rr_interval to a large value of 100,
> the regression reduced to 30% instead of 80%.
>
> I ran Volanomark in loopback mode with 10 chatrooms
> (20 clients per chatroom) configuration, with each client sending
> out 10000 messages.
>
> http://www.volano.com/benchmarks.html
>
> There are significant differences in the vmstat runqueue profile
> between the 2.6.21-rc4 and the one with RSDL.
>
> There are a lot less runnable jobs (see col 2) with RSDL 0.31 (rr_interval=15)
> and higher idle time.
Thanks Tim.
Volanomark is a purely yield() semantic dependant workload (as
discussed many times previously). In the earlier form of RSDL I
softened the effect of sched_yield but other changes since then have
made that softness bordering on a noop. Obviously when sched_yield is
relied upon that will not be enough. Extending the rr interval simply
makes the yield slightly more effective and is not the proper
workaround. Since expiration of arrays is a regular frequent
occurrence in RSDL then changing yield semantics back to expiration
should cause a massive improvement in these values, without making the
yields as long as in mainline. It's impossible to know exactly what
the final result will be since java uses this timing sensitive yield
for locking but we can improve it drastically from this. I'll make a
patch soon to change yield again.
--
-ck
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: RSDL 0.31 causes slowdown
2007-03-23 2:40 ` Con Kolivas
@ 2007-03-23 17:57 ` Tim Chen
2007-03-26 1:13 ` Con Kolivas
0 siblings, 1 reply; 5+ messages in thread
From: Tim Chen @ 2007-03-23 17:57 UTC (permalink / raw)
To: Con Kolivas; +Cc: ck, linux-kernel, kernel, wli, suresh.b.siddha, arjan
On Fri, 2007-03-23 at 13:40 +1100, Con Kolivas wrote:
>
> Volanomark is a purely yield() semantic dependant workload (as
> discussed many times previously). In the earlier form of RSDL I
> softened the effect of sched_yield but other changes since then have
> made that softness bordering on a noop. Obviously when sched_yield is
> relied upon that will not be enough. Extending the rr interval simply
> makes the yield slightly more effective and is not the proper
> workaround. Since expiration of arrays is a regular frequent
> occurrence in RSDL then changing yield semantics back to expiration
> should cause a massive improvement in these values, without making the
> yields as long as in mainline. It's impossible to know exactly what
> the final result will be since java uses this timing sensitive yield
> for locking but we can improve it drastically from this. I'll make a
> patch soon to change yield again.
>
Con,
The new RSDL 0.33 has fully recovered the loss in performance for
Volanomark. The throughput for Volanomark is at the same level as
mainline 2.6.21-rc4 kernel.
Tim
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: RSDL 0.31 causes slowdown
2007-03-23 17:57 ` Tim Chen
@ 2007-03-26 1:13 ` Con Kolivas
0 siblings, 0 replies; 5+ messages in thread
From: Con Kolivas @ 2007-03-26 1:13 UTC (permalink / raw)
To: tim.c.chen; +Cc: Con Kolivas, ck, linux-kernel, wli, suresh.b.siddha, arjan
On Saturday 24 March 2007 04:57, Tim Chen wrote:
> On Fri, 2007-03-23 at 13:40 +1100, Con Kolivas wrote:
> > Volanomark is a purely yield() semantic dependant workload (as
> > discussed many times previously). In the earlier form of RSDL I
> > softened the effect of sched_yield but other changes since then have
> > made that softness bordering on a noop. Obviously when sched_yield is
> > relied upon that will not be enough. Extending the rr interval simply
> > makes the yield slightly more effective and is not the proper
> > workaround. Since expiration of arrays is a regular frequent
> > occurrence in RSDL then changing yield semantics back to expiration
> > should cause a massive improvement in these values, without making the
> > yields as long as in mainline. It's impossible to know exactly what
> > the final result will be since java uses this timing sensitive yield
> > for locking but we can improve it drastically from this. I'll make a
> > patch soon to change yield again.
>
> Con,
>
> The new RSDL 0.33 has fully recovered the loss in performance for
> Volanomark. The throughput for Volanomark is at the same level as
> mainline 2.6.21-rc4 kernel.
>
> Tim
Thanks very much for testing. I'm quite happy with the yield semantics staying
the way they are in rSDl 0.33+.
--
-ck
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-03-26 1:14 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-03-22 21:21 RSDL 0.31 causes slowdown Tim Chen
2007-03-23 2:21 ` William Lee Irwin III
2007-03-23 2:40 ` Con Kolivas
2007-03-23 17:57 ` Tim Chen
2007-03-26 1:13 ` Con Kolivas
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).