Date: Tue, 28 May 2002 15:45:53 -0700 (PDT) From: Julian Elischer <julian@elischer.org> To: FreeBSD current users <current@freebsd.org> Subject: Seeking OK to commit KSE MIII Message-ID: <Pine.BSF.4.21.0205281517530.12315-100000@InterJet.elischer.org>
next in thread | raw e-mail | index | archive | help
KSE Milestone 3 has been running since BSDcon. Since then things got mightily slowed down due to the birth of my daughter, a burst in work and t round-the-world trip (consequence if the birth.... had to show the grandparents on 2 continents you know..) Now things are moving again. Jonathon Mini and I have cleaned up the patches a bit and fixed the more obvious problems.. from teh point of view of non KSE processes (that would be all of them at the moment) it shuold act the same as now. Hopefully, changes are restricted to instruction flows that would only occur in KSE processes. I would like to commit this in the next couple of days to give it enough time to settle BEFORE USENIX. The changes are: 1/ scheduling is done per-thread (simplistic model only at this time) 2/ Scheduling state is therefore kept in the thread. 3/ Process suspencion is a process state and therefore becomes split from scheduling state. (Threads suspend themselves at a convenient time when they notice their process has been suspended) 4/ support for basic KSE syscall addition to allow testing 5/ a test program. 6/ Addition of thread allocation and deallocation facilities 7/ Modification of staatus reporting functions to collect state from the new places. 8/ Modification of DDB to know about threads. (a bit) 9/ Addition of a generic suspension facility to support thread suspension in addition to exisiting process suspension types. 10/ Required changes to fork/exit to create/remove threads as needed. 11/ changes to sleep/condvars to spawn a new thread when needed in KSE processes. 12/ hack up interrupt delivery to account for the fact that a proces may be both sleeping and running at the same time (ugh.. help needed there if you are feeling brave) Changes for non i386 architectures have not been made. they are however not great.. we have changes to the following files: sys/i386/i386/genassym.c (small) sys/i386/i386/machdep.c (1 line) sys/i386/i386/swtch.s (a few lines) sys/i386/i386/trap.c (small) sys/i386/i386/vm_machdep.c (largly new functions, we could stub them) sys/i386/include/kse.h (new file) sys/i386/include/pcb_ext.h (1 line .. may not be needed) sys/i386/linux/linux_machdep.c (one line) if people who know these architectures could send me appropriate diffs I'll incorporate them. th diffs can be found at: http://people.freebsd.org/~peter/kse.diff This is the next "simplest place to merge". Once these have been committed then the userland people can start playing with it, and people who are experts in signals and such can start optimising these things. Julian To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0205281517530.12315-100000>