Skip to content

feat(api): Add blkio resource flags#17

Open
chrisgeo wants to merge 3 commits into
mainfrom
feat/chaos-1380-blkio-flags
Open

feat(api): Add blkio resource flags#17
chrisgeo wants to merge 3 commits into
mainfrom
feat/chaos-1380-blkio-flags

Conversation

@chrisgeo
Copy link
Copy Markdown

@chrisgeo chrisgeo commented May 6, 2026

Summary

  • Adds --blkio-weight, --blkio-weight-device, --device-read-bps, --device-write-bps, --device-read-iops, and --device-write-iops resource flags.
  • Parses block I/O device specs into OCI LinuxBlockIO resources and propagates them through ContainerConfiguration into sandbox setup.
  • Points the containerization dependency at the CHAOS-1380 block I/O runtime branch.

Validation

  • CLANG_MODULE_CACHE_PATH=/tmp/container-clang-cache SWIFTPM_ENABLE_PLUGINS=0 swift test --filter ParserTest/testResourcesBlockIOFlags
  • CLANG_MODULE_CACHE_PATH=/tmp/container-clang-cache SWIFTPM_ENABLE_PLUGINS=0 swift test --filter 'ParserTest/testResources(BlockIOFlags|RejectsInvalidBlockIOWeight)'
  • CLANG_MODULE_CACHE_PATH=/tmp/container-clang-cache SWIFTPM_ENABLE_PLUGINS=0 swift build
  • git diff --check

Dependencies

Depends on apple/containerization#739

@linear
Copy link
Copy Markdown

linear Bot commented May 6, 2026

@chrisgeo chrisgeo changed the title [codex] Add blkio resource flags feat(api): Add blkio resource flags May 6, 2026
@chrisgeo chrisgeo force-pushed the feat/chaos-1380-blkio-flags branch from 873d613 to 7978fb9 Compare May 14, 2026 18:02
@chrisgeo chrisgeo marked this pull request as ready for review May 14, 2026 18:06
chrisgeo added 3 commits May 23, 2026 17:16
Two changes addressing review feedback from
apple/containerization#739 and
apple#1512 (comment):

1. Adopt the new `Containerization.LinuxBlockIO` wrapper added in
   containerization PR apple#739 (pin advanced to 3d009df). The wire format in
   `ContainerConfiguration.Resources.blockIO` stays as the Codable
   `ContainerizationOCI.LinuxBlockIO`; `RuntimeService.configureContainer`
   converts to the wrapper at the boundary via the new
   `toContainerizationBlockIO` helper.

2. Replace the six separate `--blkio-*` / `--device-*` flags with a
   single repeatable `--blkio` flag using key=value[,key=value] syntax,
   per apple#1512 (comment):

       --blkio weight=500
       --blkio device=/dev/sda,weight=700,leaf-weight=300
       --blkio device=/dev/sda,read-bps=1048576,write-bps=1048576
       --blkio device=/dev/sda,read-iops=1000,write-iops=1000

   Device values accept either an absolute host path (resolved via stat(2))
   or a literal `<major>:<minor>`. Parser rejects unknown keys, conflicting
   global weights, and global-only keys appearing on device-less specs.

Tests cover the combined spec, major:minor literal, invalid-weight,
unknown-key, and global-only-on-device-spec error paths.
@chrisgeo chrisgeo force-pushed the feat/chaos-1380-blkio-flags branch from 7978fb9 to 2921cd9 Compare May 24, 2026 00:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant