Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Jan 2004 14:04:10 -0800 (PST)
From:      Julian Elischer <julian@elischer.org>
To:        David Schultz <das@FreeBSD.ORG>
Cc:        current@FreeBSD.ORG
Subject:   Re: Call for testers: New PID allocator patch for -CURRENT
Message-ID:  <Pine.BSF.4.21.0401291401500.21391-100000@InterJet.elischer.org>
In-Reply-To: <20040129200442.GA52780@VARK.homeunix.com>

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


On Thu, 29 Jan 2004, David Schultz wrote:

> On Thu, Jan 29, 2004, Xin LI wrote:
> > Greetings, everyone
> > 
> > A friend of mine has ported NetBSD's new PID allocation[1] code to FreeBSD,
> > you can obtain the patch here:
> > 
> > 	http://www.arbornet.org/~junsu/pid.diff
> > 
> > Some of you may be already aware of this for he has posted[2] this to both
> > current@ and hackers@ last September.
> > 
> > Currently the patchset has been updated to make it applicable to -HEAD.
> > 
> > A number of problems were found and fixed after the first post with many
> > from the FreeBSD community, and we think it's time to post it again and,
> > if you are interested, please give it a chance to run on your own (test)
> > box.
> 
> Thanks for the reminder.  Your patch uses a very clever idea.  I
> messed around with the original patch in your PR a few months ago.
> It would take more work to prove that your proposed patch improves
> performance[1] and is a good approach, and to review and clean up
> the implementation.  For instance, it isn't immediately obvious
> that the accelerated pid reuse is acceptable, so that needs to be
> looked into further[2].  I don't have the time at the moment to go
> over the patch with a fine-toothed comb, and jhb@ could do a
> better job than me anyway if he has time, but I wanted to let you
> know that it's floating around on at least one person's TODO list.
> 
> Some low-hanging fruit: The patch needs to be cleaned up to
> conform to style(9).  It also changes the meaning of PID_MAX and
> fails to enforce a 5-digit limit on pids.


I don't know if it is in the patch but we need a sysctl for pid_max
because it needs to be set back to 60000 if yuo want to run a FreeBSD
1.x environment.. (you should see a make world fly on a 3GHz machine in 
a FreeBSD 1.1 chroot)

> 
> [1] That shouldn't be hard, given that the present algorithm takes
>     O(N) amortized time in the worst case, and can examine as many
>     as PID_MAX^2 pids if the number of processes in the system is
>     close to PID_MAX.
> 
> [2] Many systems have a high enough fork rate that pids recycle
>     every few minutes or hours with the present algorithm.  These
>     systems don't necessarily have lots of processes running at any
>     given time, so the table (and thus the cycle length) in your
>     patch could remain relatively small if I'm interpreting the
>     code correctly.  I think the code would have to be changed to
>     prevent reuse from happening too quickly in wall time.
> _______________________________________________
> freebsd-hackers@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"
> 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0401291401500.21391-100000>