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
F176094606: D58219.id181926.diff
Fri, Oct 16, 1:41 AM
Unknown Object (File)
Wed, Oct 14, 6:11 PM
Unknown Object (File)
Sun, Oct 11, 7:24 PM
Unknown Object (File)
Thu, Oct 1, 11:30 AM
Unknown Object (File)
Wed, Sep 30, 6:08 AM
Unknown Object (File)
Sep 12 2026, 9:17 AM
Unknown Object (File)
Sep 12 2026, 9:11 AM
Unknown Object (File)
Sep 7 2026, 3:09 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.