Well I have reached "milestone 2"

I have a kernel in which teh 'struct proc' pointers have been replaced
wherever needed with struct thread pointers and where
the process structure ahs been split to create 4 substructures.
 At this stage I can get to multi-user mode but it doesn't last 
too far into "make buildworld"

Networking seems to generally work as I can use NFS and ssh.

Thsi kernel has most of the infrastructure changes needed to support
threading, but all teh crucial code has not been rewritten,
meaning that there is a lot of code that assumes 1 thread per process.

The diffs are at http://www.freebsd.org/~julian/
and are at present 1835905 bytes

Having reached this milestone it is now feasible for others to help..

things that others can do:
someone with an alpha can make the analogous changes in the alpha
code as to those I made in i386 (I have already done some)
ditto for powerPC and Ia64.
send me diffs or get peter to set you up with a perforce
account on freefall and commit them yourself.

the aim is to get to multiuser the same as i386, not to get threads going
(yet)

If someone wants a challenge they can try find why programs die with sig11
in buildworld.

(or why the system crashes in "cd /usr/src/share; make obj")
(I'll find that one tomorrow, hopefully they are related)


Next milestone:
        make it reliable like this
milestones after next:
        separate allocation of all resources needed for threads.
        design of specification for what is the 'RIGHT' 
        thing to do in various corner cases.
        e.g. what does ps(1) show on a threaded process.
        more interestingly: what does ddb 'ps' show, 
        (and procfs/linprocfs)
        what happens when a threaded program has one thread call 'fork()'?
        exec()? exit()?

responses to the above questions should be made to the "arch" list
but forst you should look at the patches.
and particularly, apply them to a coppy of the current tree and
have a look at the changes in proc.h

etc. etc.


julian (aching fingers)



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to