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)
Sun, Jul 21, 8:33 PM
Unknown Object (File)
Jun 17 2024, 11:19 AM
Unknown Object (File)
May 17 2024, 11:39 AM
Unknown Object (File)
May 12 2024, 5:52 PM
Unknown Object (File)
May 8 2024, 8:36 PM
Unknown Object (File)
May 7 2024, 4:34 PM
Unknown Object (File)
Apr 23 2024, 11:27 PM
Unknown Object (File)
Apr 20 2024, 2:18 AM
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.