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
F170528401: D58219.id181926.diff
Sat, Sep 5, 6:21 AM
Unknown Object (File)
Thu, Sep 3, 10:03 PM
Unknown Object (File)
Wed, Sep 2, 6:15 PM
Unknown Object (File)
Sat, Aug 29, 2:17 PM
Unknown Object (File)
Thu, Aug 27, 11:21 PM
Unknown Object (File)
Wed, Aug 26, 2:23 PM
Unknown Object (File)
Wed, Aug 26, 1:57 AM
Unknown Object (File)
Sat, Aug 22, 9:53 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.