here's the raw data from a seperate run, and slightly different code, and a different machine.
this is a test with thread(2) channels with T tx procs × R rx procs: ; aux/cpuid -i Intel(R) Xeon(R) CPU E31230 @ 3.20GHz ; wc -l /dev/sysstat 8 /dev/sysstat ; for(i in 1 2 4 8 16)time 6.chantestsem -O0 -R^$i -T^$i>/dev/null 0.00u 0.00s 6.56r 6.chantestsem -O0 -R1 -T1 0.00u 0.00s 12.72r 6.chantestsem -O0 -R2 -T2 0.00u 0.00s 31.46r 6.chantestsem -O0 -R4 -T4 0.00u 0.00s 67.66r 6.chantestsem -O0 -R8 -T8 0.00u 0.00s 149.35r 6.chantestsem -O0 -R16 -T16 ; for(i in 1 2 4 8 16)time 6.chantest -O0 -R^$i -T^$i>/dev/null 0.00u 0.00s 6.40r 6.chantest -O0 -R1 -T1 0.00u 0.00s 9.32r 6.chantest -O0 -R2 -T2 0.00u 0.00s 17.63r 6.chantest -O0 -R4 -T4 0.00u 0.00s 45.99r 6.chantest -O0 -R8 -T8 0.00u 0.00s 99.69r 6.chantest -O0 -R16 -T16 - erik