DragonflyBSD fast syscall support and x86 improvements

Attilio Rao attilio at freebsd.org
Fri Jun 23 10:40:36 PDT 2006

Hi all,
first of all, I have to say I'm not too much familiar with
DragonFlyBSD kernel (so I have no idea if this is completely new for
the project), but I contributed some for FreeBSD kernel and I'm rather
experienced with IA32.
What I would like to work on are some x86 'improvements' to DFLY
kernel. For improvements I mean adding different versions of some
critical functions for different versions of the CPU (i.e.: in P4 you
could just implement an atomic memory barrier using mov + *fence
instructions against using xchg or stubs like these).
First of all,  a good discussion point is about optimizations
activation: do you prefer compile-times stubs or run-time patching?
Actually, I'm planning to improve and add a run-time patching concept
inherited from Linux to FreeBSD, and maybe you would be interested in
its port. Run-time patching is very useful, but on the other side it
faces a lot of problems (inlined functions can't fit and it deals with
dimensions problems), if we don't want to loose performance matters.
Compile time stubs are simpler and possibly quicker but the kernel
needs re-compilation in order to get benefits, that is not so nice.
So, some feedbacks about this is very appreciated.
Once that we have choicen a method in order to apply changes,  the
first thing I would like to add (BTW, I don't know if it exists
alredy) is sysenter/sysexit support replacing interrupt 0x80 (I have
an item in the FreeBSD list for volounteers about it, since I think I
would like to add it there too) and possibly evaluating the usage of
FPU/MMX/XMM registers in order to gather syscalls parameters.
Feedbacks about it are very appreciated too. I have other ongoing
projects we can discuss later, but they are very architecture
dependant so, since maybe they can fit in FreeBSD, they cannot in
Thanks for your time,
Peace can only be achieved by understanding - A. Einstein

More information about the Kernel mailing list