Page MenuHomeFreeBSD

Make pmap_kextract() operational over the large map.
ClosedPublic

Authored by kib on May 23 2019, 6:41 PM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, Nov 25, 9:05 PM
Unknown Object (File)
Wed, Nov 20, 10:46 PM
Unknown Object (File)
Tue, Nov 5, 3:24 PM
Unknown Object (File)
Thu, Oct 31, 3:49 PM
Unknown Object (File)
Oct 18 2024, 12:42 AM
Unknown Object (File)
Oct 7 2024, 12:03 AM
Unknown Object (File)
Oct 3 2024, 8:38 AM
Unknown Object (File)
Oct 1 2024, 6:43 AM
Subscribers

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 24489

Event Timeline

sys/amd64/amd64/pmap.c
2967

I think it should be va < LARGEMAP_MIN_ADDRESS + NBPML4 * lm_ents. pmap_large_unmap() seems to have the same bug in a kassert.

8802

Maybe call it PG_PS1G_FRAME or PG_PSPDP_FRAME? I do not insist on giving it a name at all.

Use symbolic name for 1G superpage frame mask.
Fix upper boundary check for large map.

markj added inline comments.
sys/amd64/amd64/pmap.c
8932–8933

The expression now appears in three places, maybe rename LARGEMAP_MAX_ADDRESS to LARGEMAP_STATIC_MAX_ADDRESS or so, and add

#define LARGEMAP_MAX_ADDRESS() (LARGEMAP_MIN_ADDRESS + NBPML4 * (u_long)lm_ents
This revision is now accepted and ready to land.May 24 2019, 6:04 PM
kib marked an inline comment as done.

LARGEMAP_RT_MAX_ADDRESS

This revision now requires review to proceed.May 24 2019, 9:58 PM
sys/amd64/amd64/pmap.c
424–425

When I see LARGEMAP_RT_MAX_ADDRESS used, I'm going to think that it is a constant. Since it is not, I would suggest using a function-like name, e.g., pmap_large_map_<foo>().

sys/amd64/include/pmap.h
122

I think that an '_' between the PS and PDP would help.

kib marked 2 inline comments as done.

PMAP_LARGEMAP_MAX_ADDRESS()
PG_PS_PDP_FRAME

This revision is now accepted and ready to land.May 24 2019, 10:51 PM
This revision was automatically updated to reflect the committed changes.