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
F132937176: D16443.id45887.diff
Tue, Oct 21, 8:02 AM
F132886797: D16443.id45841.diff
Mon, Oct 20, 8:57 PM
F132886791: D16443.id.diff
Mon, Oct 20, 8:57 PM
F132886790: D16443.id45855.diff
Mon, Oct 20, 8:57 PM
F132886789: D16443.id46007.diff
Mon, Oct 20, 8:57 PM
Unknown Object (File)
Mon, Oct 20, 9:45 AM
Unknown Object (File)
Mon, Oct 13, 4:04 PM
Unknown Object (File)
Thu, Oct 9, 1: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.