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)
Sun, Jan 19, 4:07 PM
Unknown Object (File)
Jan 16 2025, 1:56 AM
Unknown Object (File)
Dec 6 2024, 11:30 PM
Unknown Object (File)
Nov 23 2024, 7:30 PM
Unknown Object (File)
Nov 11 2024, 4:22 PM
Unknown Object (File)
Nov 10 2024, 1:36 AM
Unknown Object (File)
Sep 24 2024, 9:36 AM
Unknown Object (File)
Sep 22 2024, 5:46 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.