Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 1 Sep 2006 09:29:00 +0100 (BST)
From:      Robert Watson <rwatson@FreeBSD.org>
To:        Peter Chubb <peterc@gelato.unsw.edu.au>
Cc:        marcel@FreeBSD.org, ppc@FreeBSD.org, ia64@FreeBSD.org
Subject:   Re: IA64, PPC system call path audit patches
Message-ID:  <20060901092636.E4921@fledge.watson.org>
In-Reply-To: <87irk8at9i.wl%peterc@quokka.chubb.wattle.id.au>
References:  <20060901080402.W97485@fledge.watson.org> <87irk8at9i.wl%peterc@quokka.chubb.wattle.id.au>

next in thread | previous in thread | raw e-mail | index | archive | help

On Fri, 1 Sep 2006, Peter Chubb wrote:

> You've only caught the IA64 slow path system call entries.  The fast path is 
> highly optimised assembly language inside arch/ia64/kernel/fsys.S, that 
> avoids doing a trap at all.
>
> With a modern libc, syscall_via_break is only called for a very few system 
> calls.

Hmm.  I'm confused by the above comment -- I'm catching system calls on the 
kernel side of the system call invocation around the system call, not on the 
libc side.  I only see two system call demux points in the src/sys/ia64 tree:

./ia32/ia32_trap.c:             error = (*callp->sy_call)(td, args64);
./ia64/trap.c:  error = (*callp->sy_call)(td, args);

Both of which are covered in the patch I attached.  I'm under the impression 
that the different mechanisms to enter the kernel system call path converge 
prior to the system call table evaluation, in the kernel trap code.  Do I 
misunderstand?

Robert N M Watson
Computer Laboratory
University of Cambridge



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