{
  "slug": "cgroup-v2-io-controller",
  "term": "cgroup v2 I/O controller",
  "aliases": [
    "cgroup I/O controller",
    "io.max",
    "io.stat"
  ],
  "definition": "The cgroup v2 I/O controller accounts for and regulates block-device I/O for hierarchical groups of Linux processes.",
  "note": "io.stat reports device-keyed byte and operation counts. io.max sets directional bytes-per-second and IOPS limits; temporary bursts are permitted. [cgroup-io]\n\nBuffered writeback needs filesystem support. Its ownership is per inode, can switch between groups, and can misattribute concurrent cross-group writers. This differs from per-process accounting. [cgroup-writeback]\n\nIOCost models request cost rather than equating bytes or operation counts with device occupancy; its memory-reclaim path can issue over-budget I/O on credit to avoid blocking another group. This is a source-described control mechanism, not a host measurement. [iocost]",
  "limitations": [
    {
      "text": "These counters do not certify crash durability.",
      "citationIds": [
        "cgroup-io"
      ]
    }
  ],
  "related": [
    "pressure-stall-information",
    "process-io-accounting",
    "bfq"
  ],
  "citations": [
    {
      "id": "cgroup-io",
      "title": "Linux 6.12: cgroup v2 I/O interface and writeback",
      "url": "https://docs.kernel.org/6.12/admin-guide/cgroup-v2.html#io-interface-files",
      "accessed": "2026-11-03"
    },
    {
      "id": "cgroup-writeback",
      "title": "Linux 6.12: cgroup writeback ownership",
      "url": "https://docs.kernel.org/6.12/admin-guide/cgroup-v2.html#writeback",
      "accessed": "2026-11-03"
    },
    {
      "id": "iocost",
      "title": "Heo et al.: IOCost, ASPLOS 2022, sections 3.2-3.5; DOI 10.1145/3503222.3507727",
      "url": "https://www.cs.cmu.edu/~dskarlat/publications/iocost_asplos22.pdf",
      "accessed": "2026-11-04"
    }
  ],
  "status": "shipping",
  "advantages": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-11-04",
  "provenance": [
    "Source synthesis from Linux 6.12 documentation; no new host measurements or universal performance guarantee."
  ]
}
