Page MenuHomeFreeBSD

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

Authored by imp on Jul 13 2026, 7:40 PM.
Tags
None
Referenced Files
F166325763: D58219.diff
Wed, Aug 12, 10:29 PM
Unknown Object (File)
Tue, Aug 11, 9:57 PM
Unknown Object (File)
Tue, Aug 11, 3:15 PM
Unknown Object (File)
Mon, Aug 10, 7:46 AM
Unknown Object (File)
Sat, Aug 8, 3:52 PM
Unknown Object (File)
Sat, Aug 8, 3:03 AM
Unknown Object (File)
Tue, Aug 4, 6:12 AM
Unknown Object (File)
Sun, Aug 2, 6:11 AM
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.Jul 13 2026, 7:40 PM
imp created this revision.