Hello, Robert Watson
I have considered your remarks to my proposal. Now I have some problems with GSoC site so I've decided to post my comment here.
About choosing the best method for current hardware:
I think that the best way to realise it is to use small userspace shared memory region where kernel can to load additional syscall stub during initialization. It may looks like this:

write() stub:
...
sub  $0x0C, %esp
movl $_fd, (%esp)
movl $_buf, 0x4(%esp)
movl $_len, 0x8(%esp)
movl $4, %eax
call <shared stub address>
add $0x0C, %esp
...
Depending on output of CPUID command during the initialization kernel will load certain shared stub. For newer processors it may be:

shared stub:
sysenter
ret

About my testing plans:
I think it will be simple multi-threaded program that will call syscalls in the loop and measure them execution time with time-stamp counter (RDTSC). If all is fulfilled correctly regression should not to arise.
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"

Reply via email to