This commit is contained in:
ad 2007-08-04 13:46:04 +00:00
parent a014cf23cb
commit 15c28fd2d8

View File

@ -1,4 +1,4 @@
$NetBSD: TODO,v 1.8 2007/03/02 18:53:51 ad Exp $
$NetBSD: TODO,v 1.9 2007/08/04 13:46:04 ad Exp $
Bugs to fix:
@ -14,20 +14,10 @@ Interfaces/features to implement:
- system integration
- some macros and prototypes belong in headers other than pthread.h
Features that need more/better regression tests:
- pthread_cond_broadcast()
- pthread_once()
- pthread_get/setspecific()
- signals
Ideas to play with:
- Explore the trapcontext vs. usercontext distinction in ucontext_t.
- Get rid of thread structures when too many accumulate (is this
actually a good idea?)
- Currently, each thread uses two real pages of memory: one at the top
of the stack for actual stack data, and one at the bottom for the
pthread_st. If we can get suitable space above the initial stack for
@ -43,18 +33,13 @@ Ideas to play with:
- Figure out what to do with changing stack sizes.
- Stress testing, particularly with multiple CPUs.
- A race between pthread_exit() and pthread_create() for detached LWPs,
where the stack (and pthread structure) could be reclaimed before the
thread has a chance to call _lwp_exit(), is currently prevented by
checking the return of _lwp_kill(target, 0). It could be done more
efficiently. (See shared page item.)
- Adaptive mutexes and spinlocks (see shared page item). These need
to implement exponential backoff to reduce bus contention. On x86 we
need to issue the 'pause' instruction while spinning, perhaps on other
SMT processors too.
- Adaptive mutexes and spinlocks (see shared page item).
- Have a shared page that:
@ -98,6 +83,4 @@ Ideas to play with:
report correctly. Tied into that is the need for a mechanism to impose
limits on various aspects of LWPs.
- Streamlining of the park/unpark path.
- Priority inheritance and similar nasties.