From owner-cvs-src@FreeBSD.ORG Wed Jun 4 14:13:22 2003 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0F31F37B401; Wed, 4 Jun 2003 14:13:22 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 8651243F93; Wed, 4 Jun 2003 14:13:21 -0700 (PDT) (envelope-from marcel@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h54LDL0U038802; Wed, 4 Jun 2003 14:13:21 -0700 (PDT) (envelope-from marcel@repoman.freebsd.org) Received: (from marcel@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h54LDLE3038801; Wed, 4 Jun 2003 14:13:21 -0700 (PDT) Message-Id: <200306042113.h54LDLE3038801@repoman.freebsd.org> From: Marcel Moolenaar Date: Wed, 4 Jun 2003 14:13:21 -0700 (PDT) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/alpha/alpha vm_machdep.c src/sys/i386/i386 vm_machdep.c src/sys/ia64/ia64 vm_machdep.c src/sys/kern kern_thr.c kern_thread.c src/sys/powerpc/powerpc vm_machdep.c src/sys/sparc64/sparc64 vm_machdep.c src/sys/sys proc.h X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 04 Jun 2003 21:13:22 -0000 marcel 2003/06/04 14:13:21 PDT FreeBSD src repository Modified files: sys/alpha/alpha vm_machdep.c sys/i386/i386 vm_machdep.c sys/ia64/ia64 vm_machdep.c sys/kern kern_thr.c kern_thread.c sys/powerpc/powerpc vm_machdep.c sys/sparc64/sparc64 vm_machdep.c sys/sys proc.h Log: Change the second (and last) argument of cpu_set_upcall(). Previously we were passing in a void* representing the PCB of the parent thread. Now we pass a pointer to the parent thread itself. The prime reason for this change is to allow cpu_set_upcall() to copy (parts of) the trapframe instead of having it done in MI code in each caller of cpu_set_upcall(). Copying the trapframe cannot always be done with a simply bcopy() or may not always be optimal that way. On ia64 specifically the trapframe contains information that is specific to an entry into the kernel and can only be used by the corresponding exit from the kernel. A trapframe copied verbatim from another frame is in most cases useless without some additional normalization. Note that this change removes the assignment to td->td_frame in some implementations of cpu_set_upcall(). The assignment is redundant. A previous call to cpu_thread_setup() already did the exact same assignment. An added benefit of removing the redundant assignment is that we can now change td_pcb without nasty side-effects. This change officially marks the ability on ia64 for 1:1 threading. Not tested on: amd64, powerpc Compile & boot tested on: alpha, sparc64 Functionally tested on: i386, ia64 Revision Changes Path 1.85 +3 -3 src/sys/alpha/alpha/vm_machdep.c 1.210 +3 -3 src/sys/i386/i386/vm_machdep.c 1.61 +6 -6 src/sys/ia64/ia64/vm_machdep.c 1.9 +1 -2 src/sys/kern/kern_thr.c 1.134 +1 -2 src/sys/kern/kern_thread.c 1.86 +1 -1 src/sys/powerpc/powerpc/vm_machdep.c 1.45 +3 -1 src/sys/sparc64/sparc64/vm_machdep.c 1.333 +1 -1 src/sys/sys/proc.h