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)
Fri, Oct 17, 7:02 AM
Unknown Object (File)
Fri, Oct 10, 6:55 PM
Unknown Object (File)
Tue, Oct 7, 6:29 PM
Unknown Object (File)
Thu, Oct 2, 4:18 AM
Unknown Object (File)
Sun, Sep 28, 11:47 PM
Unknown Object (File)
Thu, Sep 25, 7:14 AM
Unknown Object (File)
Sep 13 2025, 2:37 PM
Unknown Object (File)
Sep 10 2025, 5:02 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 18133
Build 17868: arc lint + arc unit

Event Timeline

markj added reviewers: alc, kib, andrew.
sys/arm64/arm64/pmap.c
1890–1894

new_tail is no longer used.

2040–2044

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

sys/arm64/arm64/pmap.c
1874

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
2040–2044

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.