#
d65faaec |
| 28-Jan-2011 |
pooka <pooka@NetBSD.org> |
Some lwp-walkers expect the correct value for l_stat, so use a flag in l_flag instead of l_stat for the purpose of flagging lwps in a dying proc.
|
#
1eb72708 |
| 18-Jan-2011 |
rmind <rmind@NetBSD.org> |
G/C unused declaration; fix few comments on locking; whitespaces. No functional changes.
|
#
da876597 |
| 14-Jan-2011 |
rmind <rmind@NetBSD.org> |
Retire struct user, remove sys/user.h inclusions. Note sys/user.h header as obsolete. Remove USER_TO_UAREA/UAREA_TO_USER macros.
Various #include fixes and review by matt@.
|
#
ce6fc9b5 |
| 18-Dec-2010 |
rmind <rmind@NetBSD.org> |
- Fix a few possible locking issues in execve1() and exit1(). Add a note that scheduler locks are special in this regard - adaptive locks cannot be in the path due to turnstiles. Randomly spott
- Fix a few possible locking issues in execve1() and exit1(). Add a note that scheduler locks are special in this regard - adaptive locks cannot be in the path due to turnstiles. Randomly spotted/reported by uebayasi@. - Remove unused lwp_relock() and replace lwp_lock_retry() by simplifying lwp_lock() and sleepq_enter() a little. - Give alllwp its own cache-line and mark lwp_cache pointer as read-mostly.
OK ad@
show more ...
|
#
11f8c2f9 |
| 01-Sep-2010 |
pooka <pooka@NetBSD.org> |
Implement rump_lwproc: the new lwp/proc management routines for rump. These move the management of the pid/lwpid space from the application into the kernel, make code more robust, and make it possib
Implement rump_lwproc: the new lwp/proc management routines for rump. These move the management of the pid/lwpid space from the application into the kernel, make code more robust, and make it possible to attach multiple lwp's to non-proc0 processes.
show more ...
|
#
ce9dfd6a |
| 08-Jul-2010 |
rmind <rmind@NetBSD.org> |
Implement direct select/poll support, currently effective for socket and pipe subsystems. Avoids overhead of second selscan() on wake-up, and thus improves performance on certain workloads (especial
Implement direct select/poll support, currently effective for socket and pipe subsystems. Avoids overhead of second selscan() on wake-up, and thus improves performance on certain workloads (especially when polling on many file-descriptors). Also, clean-up sys/fd_set.h header and improve macros.
Welcome to 5.99.36!
show more ...
|
#
33fa5ccb |
| 07-Jul-2010 |
chs <chs@NetBSD.org> |
many changes for COMPAT_LINUX: - update the linux syscall table for each platform. - support new-style (NPTL) linux pthreads on all platforms. clone() with CLONE_THREAD uses 1 process with many
many changes for COMPAT_LINUX: - update the linux syscall table for each platform. - support new-style (NPTL) linux pthreads on all platforms. clone() with CLONE_THREAD uses 1 process with many LWPs instead of separate processes. - move the contents of sys__lwp_setprivate() into a new lwp_setprivate() and use that everywhere. - update linux_release[] and linux32_release[] to "2.6.18". - adjust placement of emul fork/exec/exit hooks as needed and adjust other emul code to match. - convert all struct emul definitions to use named initializers. - change the pid allocator to allow multiple pids to refer to the same proc. - remove a few fields from struct proc that are no longer needed. - disable the non-functional "vdso" code in linux32/amd64, glibc works fine without it. - fix a race in the futex code where we could miss a wakeup after a requeue operation. - redo futex locking to be a little more efficient.
show more ...
|
#
60a28584 |
| 13-Jun-2010 |
yamt <yamt@NetBSD.org> |
remove __dead from the prototype of lwp_exit, which actually can return these days.
|
#
51542301 |
| 10-Jun-2010 |
pooka <pooka@NetBSD.org> |
lwp0 seems like an lwp instead of a process, so move bits related to it from kern_proc.c to kern_lwp.c. This makes kern_proc "scheduling-clean" and more easily usable in environments with a non-inte
lwp0 seems like an lwp instead of a process, so move bits related to it from kern_proc.c to kern_lwp.c. This makes kern_proc "scheduling-clean" and more easily usable in environments with a non-integrated scheduler (like, to take a random example, rump).
show more ...
|
#
5f2e87dd |
| 30-May-2010 |
dholland <dholland@NetBSD.org> |
Uses PRI_KERNEL from sys/param.h; include that explicitly instead of by accident.
|
#
2e2855a6 |
| 25-Apr-2010 |
ad <ad@NetBSD.org> |
Make select/poll work with more than 32 CPUs. No ABI change.
|
#
13f624ca |
| 23-Apr-2010 |
rmind <rmind@NetBSD.org> |
Remove lwp_uc_pool, replace it with kmem(9), plus add some consistency. As discussed, a while ago, with ad@.
|
#
290fe400 |
| 12-Apr-2010 |
pooka <pooka@NetBSD.org> |
Separate lwp specificdata data structure management from lwp cpu/vm management.
No functional change.
(specificdata routines went from kern_lwp.c to subr_lwp_specificdata.c)
|
#
ca843a73 |
| 06-Apr-2010 |
christos <christos@NetBSD.org> |
PR/43128: Paul Koning: Threads support in ptrace() is insufficient for gdb to debug threaded live apps: Add an optional lwpid in PT_STEP and PT_CONTINUE to indicate which lwp to operate on, and imple
PR/43128: Paul Koning: Threads support in ptrace() is insufficient for gdb to debug threaded live apps: Add an optional lwpid in PT_STEP and PT_CONTINUE to indicate which lwp to operate on, and implement the glue required to make it work.
show more ...
|
#
1bc28ea1 |
| 21-Feb-2010 |
darran <darran@NetBSD.org> |
Add the DTrace hooks to the kernel (KDTRACE_HOOKS config option). DTrace adds a pointer to the lwp and proc structures which it uses to manage its state. These are opaque from the kernel perspective
Add the DTrace hooks to the kernel (KDTRACE_HOOKS config option). DTrace adds a pointer to the lwp and proc structures which it uses to manage its state. These are opaque from the kernel perspective to keep the kernel free of CDDL code. The state arenas are kmem_alloced and freed as proccesses and threads are created and destoyed.
Also add a check for trap06 (privileged/illegal instruction) so that DTrace can check for D scripts that may have triggered the trap so it can clean up after them and resume normal operation.
Ok with core@.
show more ...
|
#
bc342a4b |
| 29-Nov-2009 |
rmind <rmind@NetBSD.org> |
Make lwp_getpcb() C89-happy by using __inline.
|
#
a78f91e8 |
| 25-Nov-2009 |
rmind <rmind@NetBSD.org> |
Restore exporting of lwp_getpcb() to userland and fix DDB properly. While the header might be abstracted better, it is a separate issue.
|
#
04233a4c |
| 21-Nov-2009 |
dsl <dsl@NetBSD.org> |
Revert last change - don't expose lwp_getpcb() to userspace.
|
#
4dd9ee13 |
| 21-Nov-2009 |
rmind <rmind@NetBSD.org> |
Export lwp_getpcb() to userland, since crash(8) needs it.
|
#
80225f96 |
| 20-Nov-2009 |
rmind <rmind@NetBSD.org> |
Add lwp_getpcb(). OK matt@.
|
#
020f4d61 |
| 01-Nov-2009 |
rmind <rmind@NetBSD.org> |
- Fix comment: proclist_mutex was merged with proclist_lock a long time ago. - Remove unused alllwp_mutex declaration.
|
#
40cf6f36 |
| 21-Oct-2009 |
rmind <rmind@NetBSD.org> |
Remove uarea swap-out functionality:
- Addresses the issue described in PR/38828. - Some simplification in threading and sleepq subsystems. - Eliminates pmap_collect() and, as a side note, allows pm
Remove uarea swap-out functionality:
- Addresses the issue described in PR/38828. - Some simplification in threading and sleepq subsystems. - Eliminates pmap_collect() and, as a side note, allows pmap optimisations. - Eliminates XS_CTL_DATA_ONSTACK in scsipi code. - Avoids few scans on LWP list and thus potentially long holds of proc_lock. - Cuts ~1.5k lines of code. Reduces amd64 kernel size by ~4k. - Removes __SWAP_BROKEN cases.
Tested on x86, mips, acorn32 (thanks <mpumford>) and partly tested on acorn26 (thanks to <bjh21>).
Discussed on <tech-kern>, reviewed by <ad>.
show more ...
|
#
5c68e5d0 |
| 28-Jun-2009 |
rmind <rmind@NetBSD.org> |
Ephemeral mapping (emap) implementation. Concept is based on the idea that activity of other threads will perform the TLB flush for the processes using emap as a side effect. To track that, global
Ephemeral mapping (emap) implementation. Concept is based on the idea that activity of other threads will perform the TLB flush for the processes using emap as a side effect. To track that, global and per-CPU generation numbers are used. This idea was suggested by Andrew Doran; various improvements to it by me. Notes:
- For now, zero-copy on pipe is not yet enabled. - TCP socket code would likely need more work. - Additional UVM loaning improvements are needed.
Proposed on <tech-kern>, silence there. Quickly reviewed by <ad>.
show more ...
|
#
851fd837 |
| 27-May-2009 |
yamt <yamt@NetBSD.org> |
add a comment about USER_TO_UAREA/UAREA_TO_USER.
|
#
2fc2b080 |
| 23-May-2009 |
ad <ad@NetBSD.org> |
- Add lwp_pctr(), get an LWP's preemption/ctxsw counter. - Fix a preemption bug in CURCPU_IDLE_P() that can lead to a bogus assertion failure on DEBUG kernels. - Fix MP/preemption races with timeco
- Add lwp_pctr(), get an LWP's preemption/ctxsw counter. - Fix a preemption bug in CURCPU_IDLE_P() that can lead to a bogus assertion failure on DEBUG kernels. - Fix MP/preemption races with timecounter detachment.
show more ...
|