Page MenuHomeFreeBSD

Generalise the arm64 ASID allocator
ClosedPublic

Authored by andrew on Feb 25 2020, 12:04 PM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Oct 9, 10:40 PM
Unknown Object (File)
Wed, Oct 1, 12:45 PM
Unknown Object (File)
Sep 16 2025, 6:34 AM
Unknown Object (File)
Sep 8 2025, 4:53 PM
Unknown Object (File)
Aug 30 2025, 8:14 AM
Unknown Object (File)
Aug 12 2025, 8:32 AM
Unknown Object (File)
Aug 7 2025, 2:51 AM
Unknown Object (File)
Jul 22 2025, 12:17 PM
Subscribers

Details

Summary

The requirements of an Address Space ID allocator and a Virtual Machine ID
allocator are similar. Generalise the former code so it can be used with
the latter.

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 29599
Build 27460: arc lint + arc unit

Event Timeline

Remove an unused variable

Is your overall strategy to incrementally replace PMAP_ASSERT_STAGE1(pmap)'s by correct handling of stage 2 PTE?

sys/arm64/arm64/pmap.c
998

I would suggest moving the second sentence inside pmap_init_asids() and change the wording to: "We may be too early in ..."

5882

if (pmap->pm_stage == PM_STAGE1) ... else ...?

This revision is now accepted and ready to land.Feb 25 2020, 4:50 PM
In D23831#523873, @alc wrote:

Is your overall strategy to incrementally replace PMAP_ASSERT_STAGE1(pmap)'s by correct handling of stage 2 PTE?

Yes. I'm currently working on pmap_enter and just need to implement cache and tlb handling for it.

sys/arm64/arm64/pmap.c
5882

I'll add PMAP_ASSERT_STAGE1(pmap); for now as the process for VMID reset looks like it will be more complex, e.g. may need to call into the hypervisor.

  • Move a comment to follow code into pmap_init_asids
  • Assert we have a Stage 1 pmap in pmap_reset_asid_set and remove extra whitespace
This revision now requires review to proceed.Feb 25 2020, 7:06 PM
This revision was not accepted when it landed; it landed in state Needs Review.Feb 26 2020, 11:50 AM
This revision was automatically updated to reflect the committed changes.