Re: [PATCH 00/11] Introduce kernel_clone(), kill _do_fork()

From: Matthew Wilcox
Date: Wed Aug 19 2020 - 11:46:04 EST


On Wed, Aug 19, 2020 at 03:41:48PM +0000, David Laight wrote:
> Does linux have an O(1) (or do I mean o(1)) pid allocator?
> Or does it have to do a linear scan to find a gap??

O(log(n)). It uses the IDR allocator, so 'n' in this case is the
number of PIDs currently allocated, and it's log_64 rather than log_2
(which makes no difference to O() but does make a bit of a difference
to performance)