Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 Apr 2010 00:13:39 +0400
From:      "Igor Druzhinin" <jaxbrigs@gmail.com>
To:        <rwatson@freebsd.org>
Cc:        freebsd-hackers@freebsd.org
Subject:   GSoC 2010
Message-ID:  <5ED60A4D35014945A5F9C14F253E1D52@lan.jax.org.ru>

next in thread | raw e-mail | index | archive | help
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. 




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5ED60A4D35014945A5F9C14F253E1D52>