For those of us that live in P4-land already, it's just the head of the
KSE branch?  Also, for those that don't, this is also available via

Robert N M Watson             FreeBSD Core Team, TrustedBSD Project
[EMAIL PROTECTED]      NAI Labs, Safeport Network Services

On Fri, 21 Dec 2001, Julian Elischer wrote:

> The latest round of KSE changes are available from
> These changes represent a work in progress.
> Basically the state is:
> GENERIC compiles
> (I don't know yet if it runs but I doubt it.)
> The following changes have been made:
> The 'thread' structure is no longer a built-in part of the proc structure.
> There is an infrastructure to independently crfeate and reap threads.
> The infrastructure is used to create and destroy the 'usual' single thread
> associated with each process. It should eventually be used to create more
> threads per process..
> The 'state' variable associated with the process has been raped and 
> now each thread, and process and KSE has it's own state.
> This last part is the bit that is broken because a LOT of the kernel
> doesn't expect the state of a thread to be spread across several
> structures.
> For example:
>  switch (p->p_stat) {
>       case SRUN:
> ...
>       case SSTOP:
> ..
> has to be completely rewritten because
> SRUN is a per-thread property
> and is accessed as:
>       FOREACH_THREAD_IN_PROC(p, td) {
>               switch(td->td_state) {
>               case TDS_RUNNING:
>               case TDS_RUNQ:
>               case TDS_SLP:
>               ...
>               }
>               ...
>       }
> wheras STOP is still a per-process state.
> obviously any code that tries to assume the same scope for these tow
> states will break violently in the new code.
> I have replaced some of the logic where there seems to be a simple answer,
> but there are plenty of places where the answer is not clear.
> Such places include signal delivery,
> selection of process (thread?) to deliver a signal to,
> collection of scheduling statistics, 
> handling FORK run by one of several threads,
> handling EXIT run by one of several threads,
> handling when the user types ^Z and suspends the process.
> If anyone is feeling adventurous they can stat with the code that is there 
> and start fixing things :-)
> send me patches but let me know ahead of time what you will be doing
> so we don't duplicate, and so I can send you notes on where I'm going in
> that part..
> I'll be working on the scheduler for the next few days I think.
> Note: if ((p->p_flag & P_KSES) == 0) a process should act exactly as it
> does now.. :-)
> (bloody capslock key)
> To Unsubscribe: send mail to [EMAIL PROTECTED]
> with "unsubscribe freebsd-current" in the body of the message

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

Reply via email to