Success with new futex code from 2.6.0-test5
Bill Soudan <[email protected]> Tue, 9 Sep 2003 18:20:06 -0400
| Newsgroups | gmane.comp.lib.phil |
|---|---|
| Organization | SunGard Trading Systems, Inc. |
| Message-ID | <[email protected]> |
The futex.c code from 2.6.0-test5 works great. Jamie Lokier's patch removed the vcache_lock and reduced the page_table_lock to one small code block. System time is 10%-20% at the start of the test and climbs down to single digits. The performance test runs smoothly to completion with no mysterious freezes, just like Solaris. oprofile results (2.6.0-test4+futex.c from test5): c0109420 925 1.75282 __switch_to c0108bd0 943 1.78693 default_idle c0116cb0 1147 2.1735 mark_offset_tsc c010af6b 1719 3.25741 sysenter_past_esp c011e410 1941 3.67809 try_to_wake_up c0152250 1968 3.72925 find_vma c011f250 2625 4.97423 schedule c013869d 4896 9.27765 .text.lock.futex c0137b70 9347 17.712 futex_wake c0137ea0 9670 18.3241 futex_wait The .text.lock.futex hits make me think I can squeeze out a bit more performance by porting Boris' patch to split up the global lock into one per hash bucket. I'm not sure if there's much that can be done to optimize futex_wake & futex_wait - though the body of wake is mainly searching through the hash table, so I'll try tweaking the size. Thanks to everyone who provided advice and patches for the issue, they came faster than I could even keep up. A nice change of pace, for sure. Bill STATEMENT OF CONFIDENTIALITY The information contained in this electronic message and any attachments to this message are intended for the exclusive use of the addressee(s) and may contain confidential or privileged information. If you are not the intended recipient, please notify SunGard Trading Systems immediately at (201) 499-5900 and destroy all copies of this message and any attachments.