Page MenuHomeFreeBSD

Port r324665 and r325285 to arm64.
ClosedPublic

Authored by markj on Jul 17 2018, 6:10 PM.
Tags
None
Referenced Files
F167076193: D16304.id45485.diff
Tue, Aug 18, 9:18 PM
Unknown Object (File)
Fri, Aug 14, 1:03 PM
Unknown Object (File)
Wed, Aug 12, 12:56 PM
Unknown Object (File)
Wed, Aug 12, 12:40 PM
Unknown Object (File)
Wed, Aug 12, 12:39 PM
Unknown Object (File)
Wed, Aug 12, 12:16 PM
Unknown Object (File)
Mon, Aug 10, 8:04 PM
Unknown Object (File)
Sun, Aug 9, 6:18 AM
Subscribers

Details

Test Plan

I added a fail point to get_pv_entry(), causing it to fail to allocate
a page 33% of the time and resort to pv_chunk reclamation.
Without the patch I can reproduce the bug (which manifests
as a panic due to tailq corruption).

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 18101
Build 17837: arc lint + arc unit

Event Timeline

markj added reviewers: alc, kib, andrew.
sys/arm64/arm64/pmap.c
1887

new_tail is no longer used.

2038–2042

This is suspiciously different from amd64. Please double-check it.

sys/arm64/arm64/pmap.c
1871

Could you please swap the pmap and next_pmap definitions so that this line is identical to the amd64 version and the diff between the two is smaller.

markj marked 2 inline comments as done.

Address feedback.

sys/arm64/arm64/pmap.c
2038–2042

The difference comes from the fact that _pmap_unwire_l3() adjusts v_wire_count, while _pmap_unwire_ptp() does not. I think the code here is correct, but it would be nice to resolve that discrepancy in a future revision.

This revision is now accepted and ready to land.Jul 18 2018, 5:31 PM
This revision was automatically updated to reflect the committed changes.