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
Simon 'corecode' Schubert
corecode at fs.ei.tum.de
Wed Aug 15 02:02:50 PDT 2007
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.
cheers
simon
--
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 / \
More information about the Commits
mailing list