Skip to content

test(e2e): run tenant workers on one vCPU with CPU headroom above it - #3863

Merged
Aleksei Sviridkin (lexfrei) merged 1 commit into
mainfrom
test/e2e-worker-single-vcpu-with-headroom
Aug 17, 2026
Merged

test(e2e): run tenant workers on one vCPU with CPU headroom above it#3863
Aleksei Sviridkin (lexfrei) merged 1 commit into
mainfrom
test/e2e-worker-single-vcpu-with-headroom

Conversation

@lexfrei

@lexfrei Aleksei Sviridkin (lexfrei) commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

What this PR does

Moves the e2e tenant workers from two vCPUs to one, keeping a CPU limit above the vCPU count: resources.cpu: 1 with podCpuLimit: 2 and podCpuRequest: 100m.

This is the next step of the #3513 measurement series. With two vCPUs the failing worker's two vCPU threads burn 1.4 to 1.8 cores between them while the guest kernel never gets past SMP bringup, and raising the CFS ceiling from 2 to 3 cores (#3862) changed neither the burn nor the progress, so the spin is between the two vCPUs rather than against the quota. A single-vCPU guest has no sibling vCPU to spin on, which is exactly what this shape tests. The ceiling of 2 keeps the QEMU emulator and IO threads from eating into the one core the guest computes with, which was the failure shape of the original single-vCPU workers whose quota equalled their vCPU count. The request of 100m is what KubeVirt derived for a one-vCPU worker before, so scheduling does not move.

Like its predecessors this changes only what the e2e suites run, not what any chart ships by default.

Screenshots

Not applicable, no UI change.

Downstream repositories

The diff is one values block inside hack/e2e-chainsaw/_lib/run-kubernetes.sh. Nothing in the trigger map is touched.

Release note

test(e2e): tenant workers in the kubernetes e2e suites run on one vCPU with a CPU limit of two, testing whether the node-join freeze is a spin between sibling vCPUs

Summary by CodeRabbit

  • Performance
    • Reduced default CPU allocations for tenant workers.
    • Updated worker configuration to use one-vCPU workers with additional CPU headroom for emulator and I/O activity.
    • Improved resource efficiency while avoiding stalled worker execution.

Under a two-vCPU worker both vCPU threads burn 1.4 to 1.8 cores between
them while the guest kernel never gets past SMP bringup, and raising the
CFS ceiling from two cores to three changed neither the burn nor the
progress, so the spin is between the two vCPUs, not against the quota.
A single-vCPU guest has no sibling to spin on. The ceiling of two keeps
the QEMU emulator and IO threads from eating into the one core the
guest computes with, and the request keeps scheduling where the workers
always were.

Assisted-By: Claude <noreply@anthropic.com>
Signed-off-by: Aleksei Sviridkin <3811295@gmail.com>
@github-actions github-actions Bot added area/testing Issues or PRs related to testing (e2e, bats, unit tests) size/S This PR changes 10-29 lines, ignoring generated files labels Aug 17, 2026
@lexfrei
Aleksei Sviridkin (lexfrei) merged commit eebe586 into main Aug 17, 2026
11 of 13 checks passed
@lexfrei
Aleksei Sviridkin (lexfrei) deleted the test/e2e-worker-single-vcpu-with-headroom branch August 17, 2026 00:09
@coderabbitai

coderabbitai Bot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: ab47928e-2fff-4cf7-9f7f-5475705b0a85

📥 Commits

Reviewing files that changed from the base of the PR and between 6735277 and 73b8afc.

📒 Files selected for processing (1)
  • hack/e2e-chainsaw/_lib/run-kubernetes.sh

📝 Walkthrough

Walkthrough

Tenant worker CPU settings were reduced in the Kubernetes end-to-end configuration. The CPU limit changed from 3 to 2, the request from 200m to 100m, and worker capacity from two vCPUs to one.

Changes

Tenant worker sizing

Layer / File(s) Summary
Update worker CPU resources
hack/e2e-chainsaw/_lib/run-kubernetes.sh
Tenant workers now use a CPU limit of 2, a 100m CPU request, and one vCPU. The surrounding resource rationale now describes one-vCPU workers.

Estimated code review effort: 2 (Simple) | ~5 minutes

Possibly related PRs

Suggested reviewers: kvaps, lllamnyp, myasnikovdaniil

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch test/e2e-worker-single-vcpu-with-headroom

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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

Labels

area/testing Issues or PRs related to testing (e2e, bats, unit tests) size/S This PR changes 10-29 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant