Date: Fri, 20 Feb 2004 17:19:38 -0500 (EST) To: misc@openbsd.org From: Ted Unangst Subject: things to do in response to a thread about the faq, dropped patches, time constraints of developers, and the meaning of life, this is a "things that might be nice". see also: phk's junior kernel hacker list. first off, this is basically my personal interest list. it doesn't even reflect things that may make it into the src tree had i done them myself. but maybe it will highlight things that can be worked on. certain types of work are not needed/wanted. bad "help out" projects include converting rc.conf to XML, an opengl interface to config(8), rewriting sed in c#, .... if you want to help, just watch the cvs changes mailing list for what's going on. last week, bgpd and dhclient saw some action. new code under development is a good place to look for memory leaks, incorrect malloc/strdup/.../ handling, basic stuff. don't ask "do you want ... done?" unless it takes a lot of time to do. i think most developers are more excited by "here's a patch to fix mem leak in waka.c" than "there's a mem leak. do you want a patch?". now don't go rewriting the whole program. send a small patch to show you know what's up and work from there. anyway, that's the kind of thing i'd be more into. as for my projects, these are mostly kernel based. if you're really interested, i can offer some hints about how to proceed, but if you have to ask "what is that?", it's best to skip ahead an item. i had been trying to keep projects at www.zeitbombe.org/openbsd.html, but then just recording the todo list went onto the todo list. so without further ado, things i've worked on, wanted to work on, or at least thought about. - dri. port code from freebsd. also a netbsd port of dri, which may help. - bufs and bufq. B_LOCK/B_BUSY flag in bufs is kinda messy. notably, it prevents the bufq layer from holding a buf. this would be nice, so that notebook disk writes can be queued indefinitely. currently, you deadlock when a second reuest comes in. fix it to use rw locks or ref counts. something so that allocbuf won't steal the mem, but lets us hold off pushing it to disk. - use rwlocks. kill a couple random lockmgr we don't need. and especially kill the various foolock() tsleep/flag loops sprinkled all over the kernel. - audio blending. allow multi open and mix the streams. - dev cloning. this would help the above, but isn't necessary. new flag to cdevsw that says "make a new vnode". - syanptics touchpad driver. instead of using plain ps/2 emulation, it would be nice to enable absolute mode, so i can disable the 'tap is click' functionality. - vfs fixing. make union, null, and everything else actually work. - new fs. webfs, ftpfs, sshfs, ..., probably using portal, which needs fixing too. would also be cool to have sysctl nodes under /kern/sysctl or so. - ULE from freebsd. it's mostly developed to handle HT cpus, but can help UP too. this should not be too hard, once you get past the thread conversion and asm chunks. - ufs2. some of it's in. look at changes in sys/ufs/ufs to see how to proceed. - indent. non-kernel work. make the indent program produce style(9) conformant output by default. this may be easier as a rewrite, possibly in perl. - exec ET_DYN files. currently, only ET_EXEC can be run. - remove block devices, or more accurately, make them synonymous with character devices. - /proc/pid/fds permit opening another proc's fds. steal some code from fdescfs. - vfs locking. compile a kernel with LOCKDEBUG. watch it blow up. - jails. do something like freebsd's thing, but make it more extensive. marko zec write patches for freebsd that cloned just about every kernel global, so that fake hosts were more complete. - convert my todo list to html, so i can stick it on my web page. and now the big projects everybody likes to ask about. ubc - if you can't send me a patch that fixes the page accounting fuckup under swapping/load, i don't want to hear about it. -- we don't live we just scratch on day to day with nothing but matchbooks and sarcasm in our pockets