Page MenuHomeFreeBSD

arm64: Handle 1GB mappings in pmap_enter_quick_locked()
ClosedPublic

Authored by markj on Sep 25 2022, 2:51 PM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Nov 12, 5:43 AM
Unknown Object (File)
Tue, Nov 12, 5:19 AM
Unknown Object (File)
Sun, Nov 10, 9:45 PM
Unknown Object (File)
Sun, Nov 10, 8:22 AM
Unknown Object (File)
Sun, Nov 10, 7:52 AM
Unknown Object (File)
Sat, Nov 9, 7:38 PM
Unknown Object (File)
Oct 8 2024, 9:20 AM
Unknown Object (File)
Sep 30 2024, 2:48 PM
Subscribers

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

markj requested review of this revision.Sep 25 2022, 2:51 PM
alc added inline comments.
sys/arm64/arm64/pmap.c
4598–4611

I wish we had pmap_X_to_X+1() variants that returned the PTE value rather than its address so that we didn't repeatedly pmap_load() afterwards.

This revision is now accepted and ready to land.Sep 25 2022, 5:55 PM
sys/arm64/arm64/pmap.c
4598–4611

Maybe something following this example?

pd_entry_t
pmap_l1e_to_l2e(pdp_entry_t l1e, vm_offset_t va)
{
    pd_entry_t *l2;

    l2 = (pd_entry_t *)PHYS_TO_DMAP(l1e & ~ATTR_MASK);
    return (l2[pmap_l2_index(va)]);
}

On the other hand, I'm not really sure why the arm64 pmap uses pmap_load() to begin with.

sys/arm64/arm64/pmap.c
4598–4611

Yes, something like that.