Page MenuHomeFreeBSD

geom: Limit async I/O at the top of geom
Needs ReviewPublic

Authored by imp on Mon, Jul 13, 7:40 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Jul 17, 10:26 PM
Unknown Object (File)
Fri, Jul 17, 5:55 PM
Unknown Object (File)
Fri, Jul 17, 3:34 AM
Unknown Object (File)
Thu, Jul 16, 9:15 AM
Unknown Object (File)
Thu, Jul 16, 12:19 AM
Unknown Object (File)
Mon, Jul 13, 8:46 PM
Subscribers
None
This revision needs review, but there are no reviewers specified.

Details

Reviewers
None
Summary

On a per device basis, limit the amount of async I/O going down to
devices. If we're over the limit, we wait for the I/O to finish. We use
our own custom waiting mechannism since we have to coordinate with
departure events at this level.

The current limit is some tiny percentage of the capacity of the
g_consumer that's being opened (if we don't know the size, we're
unlimited, though that's a very atypical case). There's different
percentages for SSDs and HDDs.

In the future, this limit could be informed by hints that the I/O
scheduler sends back up to g_vfs_strategy after it schedules the I/O.

Sponsored by: Netflix
Assisted-by: Claude Code (Sonnet 5)

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 74781
Build 71664: arc lint + arc unit

Event Timeline

imp requested review of this revision.Mon, Jul 13, 7:40 PM
imp created this revision.