|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] 46% performance drop with change in glibc
The segment offset handling emulation is expensive. You need to either
rename your TLS libraries away or use a glibc with the xen TLS patch.
-Kip
On 11/2/05, Andrew Theurer <habanero@xxxxxxxxxx> wrote:
I have been trying to track down a xen performance regression from Fedora core3 to core4 i386 and I think I might have narrowed it down. First some background info: I ran the SDET benchmark [1] and discovered that we have
about a 45% regression after upgrading to Fedora core 4. I noticed xenoprofile showed ~20% in error_code on FC4, but only ~3.5% in error_code (should we even have 3%?!?) on FC3. At first I thought the change to gcc-4
might have something to do with it, so I tried gcc4 on FC3 -no regression. I noticed glibc was also different, so I upgraded FC3 from 2.3.3 to 2.3.5 -bingo. I am not sure what about glibc is causing this, but here are the
two profiles:
fc3 with glic-2.3.3:
samples % app
name
symbol name 56097 22.8770 cc1 (no
symbols) 22780
9.2900 troff (no
symbols) 8646 3.5259 xen-unstable-syms error_code 7822 3.1899 grotty
(no symbols) 5283 2.1545 libc-2.3.3.so _int_malloc 4914 2.0040 vmlinux-2.6.12-xen0-up buffered_rmqueue 4453 1.8160 bash
(no symbols) 4372 1.7830 xen-unstable-syms get_page_from_l1e 3492 1.4241 xen-unstable-syms put_page_from_l1e 3338 1.3613 vmlinux-2.6.12-xen0-up system_call 3040 1.2397 xen-unstable-syms hypercall
2801 1.1423 xen-unstable-syms alloc_page_type 2799 1.1415 vmlinux-2.6.12-xen0-up zap_pte_range 2798 1.1411 libstdc++.so.6.0.3 (no symbols) 2761 1.1260
libc-2.3.3.so vfprintf 2637 1.0754 vmlinux-2.6.12-xen0-up do_no_page 2555 1.0420 libc-2.3.3.so __i686.get_pc_thunk.bx 2548 1.0391 vmlinux-2.6.12-xen0-up
page_fault
fc3 with glibc-2.3.5:
samples % app
name
symbol name 133404 22.7469 xen-unstable-syms error_code 31411
5.3559 libc-2.3.5.so malloc 30316
5.1692 troff (no
symbols) 20632
3.5180 libc-2.3.5.so vfprintf 16626 2.8349 xen-unstable-syms gpf_emulate_4gb 10639
1.8141 xen-unstable-syms do_general_protection 10105
1.7230 grotty
(no symbols) 9837 1.6773 libc-2.3.5.so getwchar 8057 1.3738 xen-unstable-syms decode_register 7347 1.2527 libc-2.3.5.so
iswgraph 7114 1.2130 vmlinux-2.6.12-xen0-up buffered_rmqueue 6926 1.1810 cc1 is_attribute_p 6679 1.1388 libc-2.3.5.so _int_malloc
6350 1.0827 xen-unstable-syms fixup_seg 5673 0.9673 xen-unstable-syms get_baselimit 5039 0.8592 bash
(no symbols) 4957 0.8452 xen-unstable-syms get_page_from_l1e 4908 0.8369 xen-unstable-syms put_page_from_l1e 4576 0.7803 ld-2.3.5.so do_lookup_x
4322 0.7370 xen-unstable-syms hypercall 3915 0.6676 vmlinux-2.6.12-xen0-up system_call
I assume something related to gpf_emulate_4gb... Anyone have an idea why this would cause such a regression?
-Andrew
[1] SDET described here: http://www.spec.org/osg/sdm91/
_______________________________________________ Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|