svn commit: r311346 - in head/sys: kern sys vm

Mark Johnston markj at FreeBSD.org
Thu Jan 5 17:13:27 UTC 2017


On Thu, Jan 05, 2017 at 09:16:02AM +0000, Steven Hartland wrote:
> Given the use of the number of CPU's for sizing would this play nice 
> with hot plug CPU's?
> 
>      Regards
>      Steve

Not without some work. I don't think it would be a major obstacle to
adding hot-plug CPU support on at least 64-bit systems though.

> 
> On 05/01/2017 01:44, Mark Johnston wrote:
> > Author: markj
> > Date: Thu Jan  5 01:44:12 2017
> > New Revision: 311346
> > URL: https://svnweb.freebsd.org/changeset/base/311346
> >
> > Log:
> >    Add a small allocator for exec_map entries.
> >    
> >    Upon each execve, we allocate a KVA range for use in copying data to the
> >    new image. Pages must be faulted into the range, and when the range is
> >    freed, the backing pages are freed and their mappings are destroyed. This
> >    is a lot of needless overhead, and the exec_map management becomes a
> >    bottleneck when many CPUs are executing execve concurrently. Moreover, the
> >    number of available ranges is fixed at 16, which is insufficient on large
> >    systems and potentially excessive on 32-bit systems.
> >    
> >    The new allocator reduces overhead by making exec_map allocations
> >    persistent. When a range is freed, pages backing the range are marked clean
> >    and made easy to reclaim. With this change, the exec_map is sized based on
> >    the number of CPUs.


More information about the svn-src-all mailing list