Bug 230334 - busdma(9) is missing bus_dmamap_sync_range()
Summary: busdma(9) is missing bus_dmamap_sync_range()
Status: New
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: CURRENT
Hardware: Any Any
: --- Affects Some People
Assignee: freebsd-bugs (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-08-03 16:25 UTC by Justin Hibbits
Modified: 2018-08-03 16:25 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Justin Hibbits freebsd_committer 2018-08-03 16:25:03 UTC
bus_dmamap_sync(9) syncs the entire page range in a mapping, which can be very costly if only a small range is needed.

Some drivers, perhaps many, share DMA maps for multiple queues or entries, and only need to update one segment.  Instead of syncing the full map, there should be a way to sync only the updated range.

This is mentioned in https://reviews.freebsd.org/D16570 regarding NVMe performance implications, and in https://reviews.freebsd.org/D16517 as missing for sound buffers.