Subject: Re: amd64 syscall.c question
To: None <>
From: Christos Zoulas <>
List: port-amd64
Date: 06/06/2007 21:05:30
In article <>,
David Laight  <> wrote:
>On Wed, Jun 06, 2007 at 09:01:44PM +0100, Andrew Doran wrote:
>> On Wed, Jun 06, 2007 at 03:39:29PM -0400, Blair Sadewitz wrote:
>> > BTW, what is the operational distinction between syscall_plain() and
>> > syscall_fancy()?
>> Fancy handles tracing (like ktrace), plain does not. The syscall handler is
>> noted in struct mdproc and entered through an indirect call. For CPUs that
>> actually matter, indirect calls are more expensive than a couple of simple
>> test+branch pairs, and maintaining 2x the number of syscall paths is a pain.
>> So they should be merged.
>Isn't that indirection also used for the emulation system call entry?
>But I do agree that having 2 copies of the same code is stupid.

This can be fixed by compiling the same code twice. I think that mycroft
measured the overhead of plain/fancy and he decided that the split was
worth it.