From owner-cvs-all Fri Dec 27 17:23:10 2002 Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id DFCE137B401; Fri, 27 Dec 2002 17:23:08 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7527F43EDC; Fri, 27 Dec 2002 17:23:08 -0800 (PST) (envelope-from julian@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 gBS1N8fh003714; Fri, 27 Dec 2002 17:23:08 -0800 (PST) (envelope-from julian@repoman.freebsd.org) Received: (from julian@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id gBS1N815003713; Fri, 27 Dec 2002 17:23:08 -0800 (PST) Message-Id: <200212280123.gBS1N815003713@repoman.freebsd.org> From: Julian Elischer Date: Fri, 27 Dec 2002 17:23:08 -0800 (PST) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/ddb db_command.c db_ps.c ddb.h src/sys/i386/i386 db_trace.c src/sys/kern init_main.c kern_condvar.c kern_fork.c kern_sig.c kern_switch.c kern_synch.c kern_thread.c sched_4bsd.c subr_trap.c src/sys/sys proc.h X-FreeBSD-CVS-Branch: HEAD Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG julian 2002/12/27 17:23:08 PST Modified files: sys/ddb db_command.c db_ps.c ddb.h sys/i386/i386 db_trace.c sys/kern init_main.c kern_condvar.c kern_fork.c kern_sig.c kern_switch.c kern_synch.c kern_thread.c sched_4bsd.c subr_trap.c sys/sys proc.h Log: Add code to ddb to allow backtracing an arbitrary thread. (show thread {address}) Remove the IDLE kse state and replace it with a change in the way threads sahre KSEs. Every KSE now has a thread, which is considered its "owner" however a KSE may also be lent to other threads in the same group to allow completion of in-kernel work. n this case the owner remains the same and the KSE will revert to the owner when the other work has been completed. All creations of upcalls etc. is now done from kse_reassign() which in turn is called from mi_switch or thread_exit(). This means that special code can be removed from msleep() and cv_wait(). kse_release() does not leave a KSE with no thread any more but converts the existing thread into teh KSE's owner, and sets it up for doing an upcall. It is just inhibitted from being scheduled until there is some reason to do an upcall. Remove all trace of the kse_idle queue since it is no-longer needed. "Idle" KSEs are now on the loanable queue. Revision Changes Path 1.47 +0 -2 src/sys/ddb/db_command.c 1.36 +93 -52 src/sys/ddb/db_ps.c 1.31 +3 -1 src/sys/ddb/ddb.h 1.55 +50 -2 src/sys/i386/i386/db_trace.c 1.217 +1 -0 src/sys/kern/init_main.c 1.35 +0 -20 src/sys/kern/kern_condvar.c 1.176 +1 -0 src/sys/kern/kern_fork.c 1.199 +5 -0 src/sys/kern/kern_sig.c 1.46 +144 -99 src/sys/kern/kern_switch.c 1.209 +1 -16 src/sys/kern/kern_synch.c 1.68 +273 -241 src/sys/kern/kern_thread.c 1.7 +1 -1 src/sys/kern/sched_4bsd.c 1.239 +0 -1 src/sys/kern/subr_trap.c 1.285 +22 -11 src/sys/sys/proc.h To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message