Page MenuHomeFreeBSD

RISC-V superpage support, part 2/6.
ClosedPublic

Authored by markj on Jan 17 2019, 2:52 AM.

Details

Summary

Superpage support for pmap_page_test_mappings(), pmap_protect(),
pmap_unwire().

Diff Detail

Lint
Lint OK
Unit
No Unit Test Coverage
Build Status
Buildable 22096
Build 21320: arc lint + arc unit

Event Timeline

markj created this revision.Jan 17 2019, 2:52 AM
kib accepted this revision.Jan 20 2019, 11:00 AM
This revision is now accepted and ready to land.Jan 20 2019, 11:00 AM
sys/riscv/riscv/pmap.c
3673–3674

Does this comment still apply? I'm not sure what the difference is between dirty and modified is in this context, or where the read/write check is happening.

3683–3690

You may wish to convert this to bool as you did in pmap_unwire(), and same with the above signature. Not necessary as part of this patch however.

jhb added inline comments.Jan 22 2019, 10:21 PM
sys/riscv/riscv/pmap.c
2360

Should this be a pmap_invalidate_range() of the original sva and eva (you'd have to save the original sva somewhere)? Presumably at some point we could have pmap_invalidate_range() apply some logic to use pmap_invalidate_all() if there were too many pages? (Right now for bbl you might as well always use invalidate_all, but someday that might not be true.)

markj updated this revision to Diff 53119.Jan 23 2019, 9:16 PM
markj marked 2 inline comments as done.

Address Mitchell's comments.

This revision now requires review to proceed.Jan 23 2019, 9:16 PM
markj added inline comments.Jan 23 2019, 9:17 PM
sys/riscv/riscv/pmap.c
2360

That's probably the right long-term direction, but I'd rather not do it in this change, as I'm just following amd64's example and I have no good way of testing the change (pmap_invalidate_range() just executes sfence.vma today).

3673–3674

Dirty and modified mean the same thing in this context, they're used interchangeably. (amd64 has a "modified" bit whereas riscv has a "dirty" bit.) Indeed, the comment should be removed, it was copied from arm64.

3683–3690

Thanks, might as well do it here.

markj added inline comments.Jan 23 2019, 9:21 PM
sys/riscv/riscv/pmap.c
2360

(BTW, there was some discussion along these lines in D12725.)

markj accepted this revision.Feb 13 2019, 6:02 PM

Committed in r344106.

This revision is now accepted and ready to land.Feb 13 2019, 6:02 PM
markj closed this revision.Feb 13 2019, 6:02 PM