Page MenuHomeFreeBSD

Prepare for adding psind == 1 support to armv6's pmap_enter()
ClosedPublic

Authored by alc on Jul 25 2018, 6:04 PM.
Tags
None
Referenced Files
F84361000: D16443.id45887.diff
Wed, May 22, 9:09 PM
F84360897: D16443.id46007.diff
Wed, May 22, 9:08 PM
F84360896: D16443.id45855.diff
Wed, May 22, 9:08 PM
Unknown Object (File)
Wed, May 15, 7:45 AM
Unknown Object (File)
Thu, May 2, 10:38 AM
Unknown Object (File)
Mar 8 2024, 12:13 AM
Unknown Object (File)
Mar 7 2024, 8:43 PM
Unknown Object (File)
Jan 17 2024, 11:41 AM
Subscribers

Details

Summary

Precompute the new PTE before entering the critical section.

Eliminate duplication of the pmap and pv list unlock operations in pmap_enter() by implementing a single return path. Otherwise, the duplication will only increase with the upcoming support for psind == 1.

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

Could you re-upload the patch with more context, please?

Provide full context, i.e., the entire function.

arm/arm/pmap-v6.c
4073

This should be return (rv); now, for 'goto out' to work ?

arm/arm/pmap-v6.c
4073

Indeed. Thank you.

Correct the return value.

alc marked 2 inline comments as done.Jul 26 2018, 6:55 PM
arm/arm/pmap-v6.c
3991

In a separate change, someone should replace the pte2_is_managed() here and a couple other places by a PG_UNMANAGED test on m. Unlike x86, armv6 doesn't have an actual PTE2_MANAGED bit in the PTE, so this winds up being a more expensive PHYS_TO_VM_PAGE() just to get the vm_page_t and a PG_UNMANAGED test on that page. When, in several instance, we already have the vm_page_t.

mmel added a subscriber: mmel.

Applied, booted new kernel and make buildworld passed without problem.
LGTM.
Thanks for your ARM effort.

This revision is now accepted and ready to land.Jul 29 2018, 9:51 AM
This revision was automatically updated to reflect the committed changes.