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)
Dec 20 2023, 10:07 PM
Unknown Object (File)
Dec 20 2023, 5:54 AM
Unknown Object (File)
Oct 29 2023, 6:09 PM
Unknown Object (File)
Aug 13 2023, 6:14 AM
Unknown Object (File)
Aug 2 2023, 6:07 PM
Unknown Object (File)
Jul 10 2023, 9:52 AM
Unknown Object (File)
May 22 2023, 1:02 PM
Unknown Object (File)
May 8 2023, 6:24 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

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.