Page MenuHomeFreeBSD

Implement pmap_change_attr and related APIs on MIPS
ClosedPublic

Authored by kan on Dec 23 2016, 7:20 PM.
Tags
None
Referenced Files
F110701471: D8894.id.diff
Sat, Feb 22, 2:00 AM
Unknown Object (File)
Sat, Feb 8, 5:56 PM
Unknown Object (File)
Mon, Feb 3, 12:48 AM
Unknown Object (File)
Sun, Jan 26, 2:27 AM
Unknown Object (File)
Jan 21 2025, 11:02 AM
Unknown Object (File)
Jan 20 2025, 6:21 PM
Unknown Object (File)
Jan 9 2025, 7:50 AM
Unknown Object (File)
Jan 9 2025, 12:13 AM
Subscribers
None

Details

Summary

On platforms that have uncached-accelerate cache attribute, map it
to VM_MEMATTR_WRITE_COMBINING.

Test Plan

Map JZ4780 framebuffer and fill it with zeroes in loops in different mode.
Observe write-combining outperform cached accesses by about ~2x and uncached
mapping by ~35x.

Diff Detail

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

Event Timeline

kan retitled this revision from to Implement pmap_change_attr and related APIs on MIPS.
kan updated this object.
kan edited the test plan for this revision. (Show Details)
kan added reviewers: adrian, imp, br, brooks, MIPS, jhb.
kan set the repository for this revision to rS FreeBSD src repository - subversion.
adrian edited edge metadata.

cool. mips24k/mips74k have this as well, it'd be interesting to try it out.

This revision is now accepted and ready to land.Dec 23 2016, 7:45 PM
sys/mips/include/pmap.h
78 ↗(On Diff #23221)

Typo in reformatting.

kan edited edge metadata.
kan removed rS FreeBSD src repository - subversion as the repository for this revision.
kan marked an inline comment as done.

Fix typo

This revision now requires review to proceed.Dec 23 2016, 10:18 PM
kan updated this object.
kan edited edge metadata.
kan set the repository for this revision to rS FreeBSD src repository - subversion.

Do dot define VM_MEMATTR_WRITE_COMBINING as uncached as the fallback option, some userland tools expect VM_MEMATTR_WRITE_COMBINING and VM_MEMATTR_UNCACHEABLE be numerically different.

This revision was automatically updated to reflect the committed changes.