Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 26 Jan 2003 16:05:31 -0800 (PST)
From:      Julian Elischer <julian@elischer.org>
To:        "David O'Brien" <obrien@freebsd.org>
Cc:        freebsd-current@freebsd.org
Subject:   Re: (FWD) cvs commit: src/sys/alpha/alpha trap.c vm_machdep.c src/sys/ddb db_ps.c src/sys/i386/i386 critical.c exception.s genassym.c trap.c vm_machdep.c src/sys/ia64/ia64 trap.c vm_machdep.c src/sys/kern init_main.c kern_clock.c kern_exec.c kern_exit.c kern_
Message-ID:  <Pine.BSF.4.21.0301261604380.97657-100000@InterJet.elischer.org>
In-Reply-To: <20030127000132.GA73302@dragon.nuxi.com>

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

or simply check out the newer sources.


On Sun, 26 Jan 2003, David O'Brien wrote:

> For those trying to actually get some FreeBSD work done today, one may
> avoid this commit by:
> 
>     cd /sys ; cvs up -D '2003/01/26 03:40:00 PST'
> 
> 
> ----- Forwarded message from David Xu <davidxu@FreeBSD.org> -----
> 
> From: David Xu <davidxu@FreeBSD.org>
> Subject: cvs commit: src/sys/alpha/alpha trap.c vm_machdep.c src/sys/ddb
>          db_ps.c src/sys/i386/i386 critical.c exception.s genassym.c trap.c
>          vm_machdep.c src/sys/ia64/ia64 trap.c vm_machdep.c src/sys/kern
>          init_main.c kern_clock.c kern_exec.c kern_exit.c kern_fork.c ...
> Date: Sun, 26 Jan 2003 03:41:35 -0800 (PST)
> To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
> X-FreeBSD-CVS-Branch: HEAD
> 
> davidxu     2003/01/26 03:41:35 PST
> 
>   Modified files:
>     sys/alpha/alpha      trap.c vm_machdep.c 
>     sys/ddb              db_ps.c 
>     sys/i386/i386        critical.c exception.s genassym.c trap.c 
>                          vm_machdep.c 
>     sys/ia64/ia64        trap.c vm_machdep.c 
>     sys/kern             init_main.c kern_clock.c kern_exec.c 
>                          kern_exit.c kern_fork.c kern_lock.c 
>                          kern_resource.c kern_sig.c kern_switch.c 
>                          kern_thread.c subr_prof.c subr_trap.c 
>                          subr_witness.c 
>     sys/powerpc/powerpc  vm_machdep.c 
>     sys/sparc64/sparc64  trap.c vm_machdep.c 
>     sys/sys              buf.h lockmgr.h proc.h resourcevar.h 
>                          systm.h 
>   Log:
>   Move UPCALL related data structure out of kse, introduce a new
>   data structure called kse_upcall to manage UPCALL. All KSE binding
>   and loaning code are gone.
>   
>   A thread owns an upcall can collect all completed syscall contexts in
>   its ksegrp, turn itself into UPCALL mode, and takes those contexts back
>   to userland. Any thread without upcall structure has to export their
>   contexts and exit at user boundary.
>   
>   Any thread running in user mode owns an upcall structure, when it enters
>   kernel, if the kse mailbox's current thread pointer is not NULL, then
>   when the thread is blocked in kernel, a new UPCALL thread is created and
>   the upcall structure is transfered to the new UPCALL thread. if the kse
>   mailbox's current thread pointer is NULL, then when a thread is blocked
>   in kernel, no UPCALL thread will be created.
>   
>   Each upcall always has an owner thread. Userland can remove an upcall by
>   calling kse_exit, when all upcalls in ksegrp are removed, the group is
>   atomatically shutdown. An upcall owner thread also exits when process is
>   in exiting state. when an owner thread exits, the upcall it owns is also
>   removed.
>   
>   KSE is a pure scheduler entity. it represents a virtual cpu. when a thread
>   is running, it always has a KSE associated with it. scheduler is free to
>   assign a KSE to thread according thread priority, if thread priority is changed,
>   KSE can be moved from one thread to another.
>   
>   When a ksegrp is created, there is always N KSEs created in the group. the
>   N is the number of physical cpu in the current system. This makes it is
>   possible that even an userland UTS is single CPU safe, threads in kernel still
>   can execute on different cpu in parallel. Userland calls kse_create to add more
>   upcall structures into ksegrp to increase concurrent in userland itself, kernel
>   is not restricted by number of upcalls userland provides.
>   
>   The code hasn't been tested under SMP by author due to lack of hardware.
>   
>   Reviewed by: julian
>   
>   Revision  Changes    Path
>   1.103     +2 -2      src/sys/alpha/alpha/trap.c
> http://cvsweb.freebsd.org/src/sys/alpha/alpha/trap.c.diff?r1=1.102&r2=1.103
>   1.80      +1 -1      src/sys/alpha/alpha/vm_machdep.c
> http://cvsweb.freebsd.org/src/sys/alpha/alpha/vm_machdep.c.diff?r1=1.79&r2=1.80
>   1.37      +0 -9      src/sys/ddb/db_ps.c
> http://cvsweb.freebsd.org/src/sys/ddb/db_ps.c.diff?r1=1.36&r2=1.37
>   1.5       +1 -1      src/sys/i386/i386/critical.c
> http://cvsweb.freebsd.org/src/sys/i386/i386/critical.c.diff?r1=1.4&r2=1.5
>   1.100     +3 -0      src/sys/i386/i386/exception.s
> http://cvsweb.freebsd.org/src/sys/i386/i386/exception.s.diff?r1=1.99&r2=1.100
>   1.133     +1 -0      src/sys/i386/i386/genassym.c
> http://cvsweb.freebsd.org/src/sys/i386/i386/genassym.c.diff?r1=1.132&r2=1.133
>   1.238     +2 -2      src/sys/i386/i386/trap.c
> http://cvsweb.freebsd.org/src/sys/i386/i386/trap.c.diff?r1=1.237&r2=1.238
>   1.199     +4 -6      src/sys/i386/i386/vm_machdep.c
> http://cvsweb.freebsd.org/src/sys/i386/i386/vm_machdep.c.diff?r1=1.198&r2=1.199
>   1.66      +3 -3      src/sys/ia64/ia64/trap.c
> http://cvsweb.freebsd.org/src/sys/ia64/ia64/trap.c.diff?r1=1.65&r2=1.66
>   1.54      +1 -1      src/sys/ia64/ia64/vm_machdep.c
> http://cvsweb.freebsd.org/src/sys/ia64/ia64/vm_machdep.c.diff?r1=1.53&r2=1.54
>   1.220     +0 -1      src/sys/kern/init_main.c
> http://cvsweb.freebsd.org/src/sys/kern/init_main.c.diff?r1=1.219&r2=1.220
>   1.144     +37 -18    src/sys/kern/kern_clock.c
> http://cvsweb.freebsd.org/src/sys/kern/kern_clock.c.diff?r1=1.143&r2=1.144
>   1.211     +0 -3      src/sys/kern/kern_exec.c
> http://cvsweb.freebsd.org/src/sys/kern/kern_exec.c.diff?r1=1.210&r2=1.211
>   1.191     +4 -14     src/sys/kern/kern_exit.c
> http://cvsweb.freebsd.org/src/sys/kern/kern_exit.c.diff?r1=1.190&r2=1.191
>   1.180     +0 -2      src/sys/kern/kern_fork.c
> http://cvsweb.freebsd.org/src/sys/kern/kern_fork.c.diff?r1=1.179&r2=1.180
>   1.61      +20 -20    src/sys/kern/kern_lock.c
> http://cvsweb.freebsd.org/src/sys/kern/kern_lock.c.diff?r1=1.60&r2=1.61
>   1.114     +59 -73    src/sys/kern/kern_resource.c
> http://cvsweb.freebsd.org/src/sys/kern/kern_resource.c.diff?r1=1.113&r2=1.114
>   1.202     +0 -6      src/sys/kern/kern_sig.c
> http://cvsweb.freebsd.org/src/sys/kern/kern_sig.c.diff?r1=1.201&r2=1.202
>   1.48      +56 -178   src/sys/kern/kern_switch.c
> http://cvsweb.freebsd.org/src/sys/kern/kern_switch.c.diff?r1=1.47&r2=1.48
>   1.77      +646 -513  src/sys/kern/kern_thread.c
> http://cvsweb.freebsd.org/src/sys/kern/kern_thread.c.diff?r1=1.76&r2=1.77
>   1.59      +47 -22    src/sys/kern/subr_prof.c
> http://cvsweb.freebsd.org/src/sys/kern/subr_prof.c.diff?r1=1.58&r2=1.59
>   1.240     +31 -24    src/sys/kern/subr_trap.c
> http://cvsweb.freebsd.org/src/sys/kern/subr_trap.c.diff?r1=1.239&r2=1.240
>   1.134     +1 -1      src/sys/kern/subr_witness.c
> http://cvsweb.freebsd.org/src/sys/kern/subr_witness.c.diff?r1=1.133&r2=1.134
>   1.83      +1 -1      src/sys/powerpc/powerpc/vm_machdep.c
> http://cvsweb.freebsd.org/src/sys/powerpc/powerpc/vm_machdep.c.diff?r1=1.82&r2=1.83
>   1.52      +2 -2      src/sys/sparc64/sparc64/trap.c
> http://cvsweb.freebsd.org/src/sys/sparc64/sparc64/trap.c.diff?r1=1.51&r2=1.52
>   1.36      +1 -1      src/sys/sparc64/sparc64/vm_machdep.c
> http://cvsweb.freebsd.org/src/sys/sparc64/sparc64/vm_machdep.c.diff?r1=1.35&r2=1.36
>   1.141     +1 -1      src/sys/sys/buf.h
> http://cvsweb.freebsd.org/src/sys/sys/buf.h.diff?r1=1.140&r2=1.141
>   1.36      +4 -4      src/sys/sys/lockmgr.h
> http://cvsweb.freebsd.org/src/sys/sys/lockmgr.h.diff?r1=1.35&r2=1.36
>   1.290     +72 -74    src/sys/sys/proc.h
> http://cvsweb.freebsd.org/src/sys/sys/proc.h.diff?r1=1.289&r2=1.290
>   1.31      +2 -4      src/sys/sys/resourcevar.h
> http://cvsweb.freebsd.org/src/sys/sys/resourcevar.h.diff?r1=1.30&r2=1.31
>   1.186     +1 -1      src/sys/sys/systm.h
> http://cvsweb.freebsd.org/src/sys/sys/systm.h.diff?r1=1.185&r2=1.186
> 
> ----- End forwarded message -----
> 
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-current" in the body of the message
> 


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0301261604380.97657-100000>