Skip to content

feat(execution): set SEV-enabled subnet reference size to 7#9754

Open
r-birkner wants to merge 5 commits intomasterfrom
rjb/sev-subnet-costs
Open

feat(execution): set SEV-enabled subnet reference size to 7#9754
r-birkner wants to merge 5 commits intomasterfrom
rjb/sev-subnet-costs

Conversation

@r-birkner
Copy link
Copy Markdown
Contributor

  • Introduces SEV_REFERENCE_SUBNET_SIZE = 7 constant in CyclesAccountManagerConfig
  • Adds is_sev_enabled: bool parameter to CyclesAccountManagerConfig::application_subnet, SubnetConfig::new, and related methods
  • In the replica setup (setup_ic_stack.rs), reads sev_enabled from SubnetFeatures in the registry and passes it through to SubnetConfig::new
  • All existing call sites default to false (no behaviour change)

Introduces `SEV_REFERENCE_SUBNET_SIZE = 7` and adds an `is_sev_enabled`
parameter to `CyclesAccountManagerConfig::application_subnet` and
`SubnetConfig::new`. When SEV is enabled, the reference subnet size used
for cycle cost scaling is set to 7 instead of the default 13.

In the replica setup, `sev_enabled` is read from `SubnetFeatures` in the
registry and passed through to `SubnetConfig::new`.
@github-actions github-actions bot added the feat label Apr 7, 2026
… calls

Two call sites were missed in the initial refactor.
…les_account_manager

The two tests asserting reference_subnet_size for SEV enabled/disabled are
a better fit alongside the existing reference_subnet_size tests in
cycles_account_manager. SubnetConfig-level tests remain in subnet_config.rs.
@r-birkner r-birkner changed the title feat(execution): scale subnet costs by SEV-enabled reference subnet size feat(execution): set SEV-enabled subnet reference size to 7 Apr 8, 2026
@r-birkner r-birkner marked this pull request as ready for review April 8, 2026 21:15
@r-birkner r-birkner requested review from a team as code owners April 8, 2026 21:15
Copy link
Copy Markdown
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This pull request changes code owned by the Governance team. Therefore, make sure that
you have considered the following (for Governance-owned code):

  1. Update unreleased_changelog.md (if there are behavior changes, even if they are
    non-breaking).

  2. Are there BREAKING changes?

  3. Is a data migration needed?

  4. Security review?

How to Satisfy This Automatic Review

  1. Go to the bottom of the pull request page.

  2. Look for where it says this bot is requesting changes.

  3. Click the three dots to the right.

  4. Select "Dismiss review".

  5. In the text entry box, respond to each of the numbered items in the previous
    section, declare one of the following:

  • Done.

  • $REASON_WHY_NO_NEED. E.g. for unreleased_changelog.md, "No
    canister behavior changes.", or for item 2, "Existing APIs
    behave as before.".

Brief Guide to "Externally Visible" Changes

"Externally visible behavior change" is very often due to some NEW canister API.

Changes to EXISTING APIs are more likely to be "breaking".

If these changes are breaking, make sure that clients know how to migrate, how to
maintain their continuity of operations.

If your changes are behind a feature flag, then, do NOT add entrie(s) to
unreleased_changelog.md in this PR! But rather, add entrie(s) later, in the PR
that enables these changes in production.

Reference(s)

For a more comprehensive checklist, see here.

GOVERNANCE_CHECKLIST_REMINDER_DEDUP

@r-birkner r-birkner dismissed github-actions[bot]’s stale review April 9, 2026 07:23

No canister behavior changes.

Copy link
Copy Markdown
Contributor

@daniel-wong-dfinity-org daniel-wong-dfinity-org left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved for Governance.

Comment on lines +287 to +289
.get_features(subnet_id, registry_version)
.ok()
.flatten()
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps we could print something if this fails and we need to fall back to the default

Comment on lines +133 to +134
.ok()
.flatten()
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What are the effects of falling back to false if this fails?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It will just be cheaper to run your canister. SEV protection is independent of that.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm more worried if it could lead to a state divergence if this fails for some replicas on the subnet but not for others. We could take inspiration of the get_subnet_type function above

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants