DragonflyBSD fast syscall support and x86 improvements

David Xu bsddiy at 126.com
Thu Jul 6 21:48:56 PDT 2006


I was wrong, it seems sysenter is useful, and change is really
minimal if you only want to support MODERN cpu
Hi,

Today I have tested sysenter sycall vs int0x80 syscall, I have done
the work several monthes ago, now I have imported it into perforce,
the branch name is davidxu_sysenter.
Here are some benchmark results:

1. pure geteuid() syscall:

x int80_syscall.txt
+ sysenter_syscall.txt
+--------------------------------------------------------------------------+
|                                                                       +  |
|      x                                                                +  |
|     xxx                                                              ++  |
|x x xxxx                                                   +      +  ++++ |
|   |_A_|                                                         |___A_M_||
+--------------------------------------------------------------------------+
    N           Min           Max        Median           Avg        Stddev
x  10       2390403       2562187       2525720     2508262.9     53926.058
+  10       3855570       4169162       4139662     4103079.4     95933.507
Difference at 95.0% confidence
	1.59482e+06 ± 73117.4
	63.5825% ± 2.91506%
	(Student's t, pooled s = 77817.9)
2. mysql super-smack:

x mysql_int80.txt
+ mysql_sysenter.txt
+--------------------------------------------------------------------------+
|         x                                                    +           |
|         x                                                    + +         |
|         x xx                                              +  +++         |
|x    x   xxxx x x        x           x                +    +  +++++      +|
|    |______MA________|                                     |___A___|      |
+--------------------------------------------------------------------------+
    N           Min           Max        Median           Avg        Stddev
x  15      19212.09      19911.76      19417.23     19449.863     165.25167
+  15      20250.48      20603.26      20408.12     20411.395     76.260797
Difference at 95.0% confidence
	961.531 ± 96.2398
	4.94364% ± 0.494809%
	(Student's t, pooled s = 128.693)
Hardware is dual-core Pentium-D. I thought sysenter is useless as I
said on dragonflybsd mail list, but the fact is a little different
here, so I was wrong.
David Xu





More information about the Kernel mailing list