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)
Thu, Feb 27, 1:50 AM
Unknown Object (File)
Wed, Feb 26, 3:09 PM
Unknown Object (File)
Wed, Feb 26, 8:17 AM
Unknown Object (File)
Tue, Feb 25, 4:53 AM
Unknown Object (File)
Sun, Feb 9, 1:53 AM
Unknown Object (File)
Dec 17 2024, 12:22 AM
Unknown Object (File)
Dec 2 2024, 9:30 AM
Unknown Object (File)
Nov 16 2024, 4:16 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.