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, Apr 23, 11:27 PM
Unknown Object (File)
Sat, Apr 20, 2:18 AM
Unknown Object (File)
Jan 31 2024, 1:40 PM
Unknown Object (File)
Jan 12 2024, 6:58 AM
Unknown Object (File)
Dec 20 2023, 5:14 AM
Unknown Object (File)
Oct 18 2023, 12:43 PM
Unknown Object (File)
Aug 24 2023, 11:18 PM
Unknown Object (File)
Jul 4 2023, 5:45 AM
Subscribers

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 47523
Build 44410: arc lint + arc unit

Event Timeline

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

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

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

Yes, something like that.