From owner-freebsd-ppc@FreeBSD.ORG Fri Sep 1 08:29:01 2006 Return-Path: X-Original-To: ppc@FreeBSD.org Delivered-To: freebsd-ppc@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 47D2616A4DA; Fri, 1 Sep 2006 08:29:01 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [209.31.154.42]) by mx1.FreeBSD.org (Postfix) with ESMTP id F342A43D45; Fri, 1 Sep 2006 08:29:00 +0000 (GMT) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [209.31.154.41]) by cyrus.watson.org (Postfix) with ESMTP id 8968246CEB; Fri, 1 Sep 2006 04:29:00 -0400 (EDT) Date: Fri, 1 Sep 2006 09:29:00 +0100 (BST) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: Peter Chubb In-Reply-To: <87irk8at9i.wl%peterc@quokka.chubb.wattle.id.au> Message-ID: <20060901092636.E4921@fledge.watson.org> References: <20060901080402.W97485@fledge.watson.org> <87irk8at9i.wl%peterc@quokka.chubb.wattle.id.au> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: marcel@FreeBSD.org, ppc@FreeBSD.org, ia64@FreeBSD.org Subject: Re: IA64, PPC system call path audit patches X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Sep 2006 08:29:01 -0000 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