Page MenuHomeFreeBSD

i386: implement sysctl vm.pmap.kernel_maps.
ClosedPublic

Authored by kib on Sep 21 2019, 6:49 PM.
Tags
None
Referenced Files
Unknown Object (File)
Jul 16 2024, 11:42 AM
Unknown Object (File)
Jul 9 2024, 4:47 PM
Unknown Object (File)
Jul 5 2024, 6:23 AM
Unknown Object (File)
Jul 5 2024, 5:12 AM
Unknown Object (File)
Jun 26 2024, 12:55 AM
Unknown Object (File)
Jun 19 2024, 12:16 AM
Unknown Object (File)
Dec 23 2023, 5:53 AM
Unknown Object (File)
Dec 12 2023, 8:30 AM
Subscribers

Diff Detail

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

Event Timeline

markj added inline comments.
sys/i386/i386/pmap.c
6197 ↗(On Diff #62396)

Is there a reason not to define and set pg_nx = 0 in non-PAE-capable kernels?

6302 ↗(On Diff #62396)

The rounddown2 is not needed here. I used it in the amd64 variant since iteration may be restarted while examining the large map. Upon the restart, we might encounter a new large page, and sva will be misaligned. In this i386 variant there are no restarts, so this situation cannot occur.

This revision is now accepted and ready to land.Sep 22 2019, 4:25 PM
sys/i386/i386/pmap.c
6197 ↗(On Diff #62396)

It is a very minor optimization for non-PAE pmap. Actually, not. pg_nx has to be global, and then its type is not compatible between PAE and non-PAE pmaps, so it should not be touched by non-PAE at all.

Note that PAE and non-PAE pmaps co-exist in the same kernel image.

sys/i386/i386/pmap.c
6197 ↗(On Diff #62396)

Hmm, could we perhaps #define pg_nx 0u in pmap_nopae.h?

6285 ↗(On Diff #62396)

In the amd64 sysctl there is an extra newline before each header, not just the first. I slightly prefer that style, but in any case we should try to be consistent. If you prefer to avoid the extra newlines, we should change amd64 too.

sys/i386/i386/pmap.c
6197 ↗(On Diff #62396)

Perhaps. But this should be a separate change with the global pass over the pmap.c.

6285 ↗(On Diff #62396)

The reason why I removed these newlines is because for i386 start of next herald does not delineate end of the previous run. I would require more work to properly mark the ends, and also I want to mark things like clean/exec/pipe submaps etc. This should be done for amd64 and i386 later.

This revision was automatically updated to reflect the committed changes.