Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 1 May 2002 21:46:35 -0700 (PDT)
From:      Julian Elischer <julian@elischer.org>
To:        Jonathan Mini <mini@FreeBSD.org>
Cc:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   Re: PERFORCE change 10648 for review
Message-ID:  <Pine.BSF.4.21.0205012140470.75286-100000@InterJet.elischer.org>
In-Reply-To: <200205020438.g424coS78108@freefall.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Jon..

My sugested next change:
diff -reduction on fork()

I ended up re-writing it too much I think..
take current fork..
take important ideas from my version..
blend to taste..
I think I spent too much time trying to optimise the locks
(Hense the comment about not needing to lock p2 until it's findable
by other threads (i.e. in some external structure/list))

Alternatively we could check in (to freeBSD)  a rewritten fork() that
tries to do that.. (defer the linking into external data structures until
as late as possible, to avoid having to do any PROC_LOCK()s until then)
As it is now, whenever jhb changes fork() it's merge-from hell..

thoughts?

On Wed, 1 May 2002, Jonathan Mini wrote:

> http://people.freebsd.org/~peter/p4db/chv.cgi?CH=10648
> 
> Change 10648 by mini@mini_stylus on 2002/05/01 21:38:26
> 
> 	Change to new names (SZBOM -> PRS_ZOMBIE, p_stat -> p_state)
> 
> Affected files ...
> 
> ... //depot/projects/kse/lib/libkvm/kvm_proc.c#11 edit
> 
> Differences ...
> 
> ==== //depot/projects/kse/lib/libkvm/kvm_proc.c#11 (text+ko) ====
> 
> @@ -329,7 +329,7 @@
>  		kp->ki_sflag = proc.p_sflag;
>  		kp->ki_wchan = mainthread.td_wchan;		/* XXXKSE */
>  		kp->ki_traceflag = proc.p_traceflag;
> -		kp->ki_stat = proc.p_stat;
> +		kp->ki_stat = proc.p_state;
>  		kp->ki_pri.pri_class = proc.p_ksegrp.kg_pri_class; /* XXXKSE */
>  		kp->ki_pri.pri_user = proc.p_ksegrp.kg_user_pri; /* XXXKSE */
>  		kp->ki_pri.pri_level = mainthread.td_priority;	/* XXXKSE */
> @@ -744,7 +744,7 @@
>  	if (sysctl(mib, 4, &newkp, &len, NULL, 0) == -1)
>  		return (0);
>  	return (curkp->ki_pid == newkp.ki_pid &&
> -	    (newkp.ki_stat != SZOMB || curkp->ki_stat == SZOMB));
> +	    (newkp.ki_stat != PRS_ZOMBIE || curkp->ki_stat == PRS_ZOMBIE));
>  }
>  
>  static char **
> @@ -771,7 +771,7 @@
>  	/*
>  	 * Pointers are stored at the top of the user stack.
>  	 */
> -	if (kp->ki_stat == SZOMB ||
> +	if (kp->ki_stat == PRS_ZOMBIE ||
>  	    kvm_uread(kd, kp, ps_strings, (char *)&arginfo,
>  		      sizeof(arginfo)) != sizeof(arginfo))
>  		return (0);
> 


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe p4-projects" 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.0205012140470.75286-100000>