Suggestions on Avoiding syscall Overhead

Roman Divacky rdivacky at
Mon Apr 23 17:44:01 UTC 2007

On Mon, Apr 23, 2007 at 08:35:45AM -0700, Tim Kientzle wrote:
> >>We can have 3 type of pages mapped into one process's address map.
> >>1. System wide global readonly page which will help on these syscalls:
> >>  gethostname,getdomainname,uname
> >>  help on importing sysenter as syscall entry point!!
> >>
> >>2. Per process Readonly page. (change will still through standard syscall)
> >>  help on the syscalls:
> >>  getuid, geteuid, getpid,getgid, getegid, getpgrp,
> >>
> >>3. As you planed, Read+Write Page
> I don't really understand this suggestion.
> Do any real programs call these syscalls very often?
> If not, this is unnecessary complexity.  Making
> a syscall fast that's only called once doesn't really
> help performance.
> This type of approach is sometimes suggested for systime(),
> which could have a big impact, as there are real programs
> that call systime() thousands of times per second.
> But I find it hard to believe there are programs that
> call getuid() that often.

on the other hand, if there is a easy to use API for this
I don't see why it should not be converted. I agree that
speeding up a "function" that gets called just once doesn't
make much sense but if it means 5minutes + 20lines patch
I think its worth it.

just my 2 cents


More information about the freebsd-current mailing list