DragonFly commits List (threaded) for 2007-08
Re: cvs commit: src/sys/ddb db_ps.c src/sys/kern init_main.c kern_exit.c kern_fork.c kern_resource.c kern_sig.c sys_generic.c src/sys/platform/pc32/i386 pmap.c src/sys/platform/vkernel/platform pmap.c src/sys/sys proc.h tree.h src/sys/vm vm_vmspace.c
Matthew Dillon wrote:
There are several places where iterations are replaced with a nearly
direct lookups. None of these places scaled well to a linear list,
and almost all of them are in critical paths. rtprio, direct LWP
I think rtprio only for other threads setting the prio for a thread, not if the thread changes its own prio.
signaling (such as the vkernel uses to send an IPI to another cpu),
Yes, that's bad.
selrecord(), selwakeup(), and TID selection for newly forked threads.
selrecord() was O(nthread*nfd). Now it is O(nfd) like it was originally.
selwakeup() was O(ioreadyrate*nthread*(nthread again if collisions occur)).
Now it is O(ioreadyrate*(nthread if collisions occur)).
The problem is that sel*() is anyways O(nproc), because it only stores the PID and not the proc pointer. So that is definitely an area for optimization.
Serve - BSD +++ RENT this banner advert +++ ASCII Ribbon /"\
Work - Mac +++ space for low €€€ NOW!1 +++ Campaign \ /
Party Enjoy Relax | http://dragonflybsd.org Against HTML \
Dude 2c 2 the max ! http://golden-apple.biz Mail + News / \