- Make a profiler that doesn't require recompliation of the
binary. pmdb is probably a good candidate to extend to do this since
it already has all the fluff for shared libraries, ptracing, etc.
It could be very simple. Just wake up X times a second and pull
the pc of the profiled process with ptrace.
- Map the kernel with large pages on i386.
- Finish implementing cpu_switchto on all architectures.
- Switch to a mutex for sched_lock.
- Make spl behave like a lock, get rid of biglock for interrupts.
- Make biglock non-recursive by putting the recursion on the
stack.
- Find code that's large and bloated, make it smaller to see
if improved cache footprint improves performance.
- Get rid of more large macros and inlines.
- Finish the sparc64 pmap rewrite.
- Add flags to interrupt handlers to mark MP-safe interrupts.
- Add flags to syscalls to mark MP-safe syscalls.
- Implement a lock-free TAILQ.
- Add rw_cas to more architectures.
- Add kqueue support for more filesystems.
- Add kqueue support for all stuff that supports select.
- uvm_loan in pipes?
- Switch all pmaps to VM_PAGE_MD.
- pmap_steal_memory for all PMAP_DIRECT architectures.
- pmap_changeprot on sparc takes too many arguments. It's
always wired and it's always pmap_kernel(). Change to
pmap_kchangeprot.
- Add timeout_add_{tv,ts,bt,sec,usec,nsec}
- Could it be possible to do something in the hole on
sparc? Some direct map or stuff?
- Since 68k* have split kernel and user spaces and don't have
that much memory, wouldn't it make sense to do PMAP_DIRECT for them?
- Use timeouts properly in usb, not this horrible usb_callout
mess.
- Add kqueue support for more filesystems.
- Add kqueue support for everything that supports select.
- sysctls with names.
- remove busy-waits from mii code.
- real vfork?
- ktruss
- fix extent code to suck less, especially for swap allocations.
- TIOCCONS - the namei in there is dangerous. if VOP_IOCTL ever
changes to locked vnodes, we'll deadlock.
- make sure the error from uvm_fault is passed to pcb_onfault
handlers.
- more inheritance in vnode op tables.
- large pages for kernel text and data on i386.
- __GENERIC_SOFT_INTERRUPTS
- more splasserts
- mpsafe pfind
- make sys_getgroups mpsafe (probably just a read lock)
- is sys_sigreturn NOLOCK everywhere?
- is sys_sigsuspend NOLCOK or does it need work?
- locking for rusage
- sys_adjtime is not safe, we need to normalize before
setting the global value.
- MPSAFE setrlimit (with biglock around the one piece with uvm)
- make pipes mpsafe and then move biglock in read/write
- locks around the children list in threads for mpsafe thrwakeup
|