Messages in this thread | | | Date | Thu, 14 Aug 2008 12:58:02 -0400 | From | Mathieu Desnoyers <> | Subject | Re: [RFC PATCH] x86 alternatives : fix LOCK_PREFIX race with preemptible kernel and CPU hotplug |
| |
* H. Peter Anvin (hpa@zytor.com) wrote: > Mathieu Desnoyers wrote: >> I can't argue about the benefit of using VM CPU pinning to manage >> resources because I don't use it myself, but I ran some tests out of >> curiosity to find if uncontended locks were that cheap, and it turns out >> they aren't. Here are the results : >> Xeon 2.0GHz >> Summary >> make -j1 kernel/ 33.94 +/- 0.07 34.91 +/- 0.27 2.8 % >> hackbench 50 2.99 +/- 0.01 3.74 +/- 0.01 25.1 % >> 1 CPU, replace smp lock prefixes with DS segment selector prefixes >> 1 CPU, noreplace-smp > > For reference, could you also compare replace smp lock with NOPs? > > -hpa
Sure, here are the updated tables. Basically, they show no significant difference between the NOP and the DS segment selector prefix approaches.
Xeon 2.0GHz
Summary
* replace smp lock prefixes with DS segment selector prefixes no lock prefix (s) with lock prefix (s) Speedup make -j1 kernel/ 33.94 +/- 0.07 34.91 +/- 0.27 2.8 % hackbench 50 2.99 +/- 0.01 3.74 +/- 0.01 25.1 %
* replace smp lock prefixes with 0x90 nops no lock prefix (s) with lock prefix (s) Speedup make -j1 kernel/ 34.16 +/- 0.32 34.91 +/- 0.27 2.2 % hackbench 50 3.00 +/- 0.01 3.74 +/- 0.01 24.7 %
Detail :
1 CPU, replace smp lock prefixes with DS segment selector prefixes
make -j1 kernel/
real 0m34.067s user 0m30.630s sys 0m2.980s
real 0m33.867s user 0m30.582s sys 0m3.024s
real 0m33.939s user 0m30.738s sys 0m2.876s
real 0m33.913s user 0m30.806s sys 0m2.808s
avg : 33.94s std. dev. : 0.07s
hackbench 50
Time: 2.978 Time: 2.982 Time: 3.010 Time: 2.984 Time: 2.982
avg : 2.99 std. dev. : 0.01
1 CPU, noreplace-smp
make -j1 kernel/
real 0m35.326s user 0m30.630s sys 0m3.260s
real 0m34.325s user 0m30.802s sys 0m3.084s
real 0m35.568s user 0m30.722s sys 0m3.168s
real 0m34.435s user 0m30.886s sys 0m2.996s
avg.: 34.91s std. dev. : 0.27s
hackbench 50
Time: 3.733 Time: 3.750 Time: 3.761 Time: 3.737 Time: 3.741
avg : 3.74 std. dev. : 0.01
1 CPU, replace smp lock prefixes with 0x90 nops
make -j1 kernel/
real 0m34.139s user 0m30.782s sys 0m2.820s
real 0m34.010s user 0m30.630s sys 0m2.976s
real 0m34.777s user 0m30.658s sys 0m2.916s
real 0m33.924s user 0m30.634s sys 0m2.924s
real 0m33.962s user 0m30.774s sys 0m2.800s
real 0m34.141s user 0m30.770s sys 0m2.828s
avg : 34.16 std. dev. : 0.32
hackbench 50
Time: 2.999 Time: 2.994 Time: 3.004 Time: 2.991 Time: 2.988
avg : 3.00 std. dev. : 0.01
-- Mathieu Desnoyers OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
| |