[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Re: 0/4 Xen Scheduling Groups - some microbenchmarks



On 10/05/07 17:33 -0400, Mike D. Day wrote:
Scheduling Groups

Scheduling groups provide the ability to combine domains into a group
assocation. One domain is designated as the group master. The other
domains are designated as group members. There may be only one master
domain for each group, and one or more member domains. A single domain
may be either a group master or group member, and never both at the
same time.


I ran Rusty Russell's virtbench on xen-unstable without the scheduling
groups patches, and with the patches.

http://ozlabs.org/~rusty/virtbench/

Virtbench automatically creates four paravirtual guests and runs a
series of microbenchmarks, including some that test inter-guest
communication. I ran these benchmarks on an athlon x2
Linux svm 2.6.18-xen #1 SMP Tue Apr 24 11:01:39 EDT 2007 x86_64 GNU/Linux

The results are mixed - the unpatched credit scheduler is faster on
some microbenchmarks and slower on others.
Smaller == better

UNPATCHED RESULTS       

Bringing up machines..
Time for one context switch via pipe: 6082 (6014 - 6160)
Time for one Copy-on-Write fault: 5628 (5472 - 5783)
Time to exec client once: 581656 (562984 - 598656)
Time for one fork/exit/wait: 357625 (353625 - 365812)
Time to send 4 MB from host: 21401750 (20443000 - 31179250)
Time for one syscall via libc: 684 (684 - 685)
Time to walk linear 64 MB: 686312 (682437 - 689125)
Time to walk random 64 MB: 945250 (940750 - 948875)
Time for one outb PIO operation: 298 (298 - 300)
Time for two PTE updates: 5250 (5228 - 5264)
Time to read from disk (256 kB): 7879125 (5765500 - 18967062)
Time for one disk read: 25246 (24839 - 35062)
Time to send 4 MB between guests: 16729375 (14412437 - 30318562)
Time for inter-guest pingpong: 70152 (68960 - 104968)
Time to sendfile 4 MB between guests: 46993000 (16927000 - 380530000)
Time to receive 1000 1k UDPs between guests: 47102000 (11709000 - 3427813000)
mdday@svm:~/src/virtbench$

WITH SCHEDULING GROUP PATCHES

Bringing up machines..
Time for one context switch via pipe: 6117 (6016 - 6279)
Time for one Copy-on-Write fault: 5566 (5438 - 5740)
Time to exec client once: 584031 (569593 - 595093)
Time for one fork/exit/wait: 332406 (321125 - 350375)
Time to send 4 MB from host: 21453250 (20431500 - 29317750)
Time for one syscall via libc: 683 (683 - 690)
Time to walk linear 64 MB: 688312 (684000 - 691625)
Time to walk random 64 MB: 931125 (929250 - 933125)
Time for one outb PIO operation: 282 (282 - 292)
Time for two PTE updates: 5184 (5174 - 5204)
Time to read from disk (256 kB): 7963437 (5850375 - 17305687)
Time for one disk read: 25332 (24867 - 65437)
Time to send 4 MB between guests: 15529187 (13590187 - 34647875)
Time for inter-guest pingpong: 81570 (68687 - 98175)
Time to sendfile 4 MB between guests: 36325000 (16996000 - 503692000)
Time to receive 1000 1k UDPs between guests: 43529000 (10414000 - 228768000)


The only code that is in the fast patch is a conditional:
static inline struct csched_dom *master_dom(struct csched_dom *d)
{
   if ( d->is_member )
       return d->master;
   return d;
}

I'm going to make a change to remove this conditional from the fast
path and retest.
Mike

--
Mike D. Day
IBM LTC
Cell: 919 412-3900
Sametime: ncmike@xxxxxxxxxx AIM: ncmikeday  Yahoo: ultra.runner
PGP key: http://www.ncultra.org/ncmike/pubkey.asc

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.