Page MenuHomeFreeBSD

Save a call to pmap_remove() if entry cannot have any pages mapped.
ClosedPublic

Authored by kib on Jul 5 2018, 7:08 PM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Oct 8, 5:48 AM
Unknown Object (File)
Mon, Sep 29, 12:18 AM
Unknown Object (File)
Sep 13 2025, 2:32 PM
Unknown Object (File)
Sep 13 2025, 2:30 PM
Unknown Object (File)
Sep 13 2025, 8:50 AM
Unknown Object (File)
Sep 13 2025, 5:36 AM
Unknown Object (File)
Sep 12 2025, 11:18 PM
Unknown Object (File)
Sep 12 2025, 7:42 PM
Subscribers

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

FYI, I just did a "buildworld" where I counted the number of times that the pmap_remove() could be avoided ("debug.counter1") and the number of times that the pmap_remove() was needed ("debug.counter2"). The results are:

debug.counter1: 2044614
debug.counter2: 8117202

I'm actually surprised by how large debug.counter1 is.

This revision is now accepted and ready to land.Jul 5 2018, 10:47 PM
In D16148#342543, @alc wrote:

FYI, I just did a "buildworld" where I counted the number of times that the pmap_remove() could be avoided ("debug.counter1") and the number of times that the pmap_remove() was needed ("debug.counter2"). The results are:

debug.counter1: 2044614
debug.counter2: 8117202

I'm actually surprised by how large debug.counter1 is.

I added a dtrace probe before the pmap_remove() call so that I could dump the vm_map_entry. Most (~80%) of the no-op calls seem to be a result of the use of MAP_FIXED in rtld: as it maps segments of shared objects, vm_map_fixed() deletes subranges of the guard mapping.

This revision was automatically updated to reflect the committed changes.
This revision was not accepted when it landed; it landed in state Needs Review.Jul 6 2018, 12:45 PM
This revision was automatically updated to reflect the committed changes.