Page MenuHomeFreeBSD

Port r324665 and r325285 to arm64.
ClosedPublic

Authored by markj on Jul 17 2018, 6:10 PM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Nov 21, 10:18 AM
Unknown Object (File)
Wed, Nov 6, 1:07 PM
Unknown Object (File)
Oct 4 2024, 11:00 PM
Unknown Object (File)
Oct 4 2024, 6:58 PM
Unknown Object (File)
Oct 4 2024, 5:06 AM
Unknown Object (File)
Oct 2 2024, 12:00 AM
Unknown Object (File)
Oct 1 2024, 11:00 PM
Unknown Object (File)
Oct 1 2024, 7:31 PM
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

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

markj added reviewers: alc, kib, andrew.
sys/arm64/arm64/pmap.c
1887 ↗(On Diff #45422)

new_tail is no longer used.

2038–2042 ↗(On Diff #45422)

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

sys/arm64/arm64/pmap.c
1871 ↗(On Diff #45422)

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 ↗(On Diff #45422)

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.