Repository navigation
The release's report times the first SSH login; QEMU's hardening asserted - #257
Merged
Merged
Conversation
The report timed only the serial console's prompt, which nothing a workspace waits for. v20261113.03 showed what that costs: its report read +11-18% on every row, because the getty went back to Type=idle and now waits for the lane's units, while the first login it was built for went 478 -> 402 ms (lab run 43518915618). TestReport now logs into the release as built over SSH through its vsock, as boot:ssh-first does, and Report.FirstLogin holds sshd's accept and the login. compare writes it first and always, moved or not, and says the sections after it time the console. The key and the row come from one helper both tests use. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
No configure flag asks for them: they come from QEMU's meson defaults and Alpine's gcc, so a bump of either could drop one with no line here changing. The build now checks each shipped binary's ELF type, RELRO segment, BIND_NOW, GNU_STACK and stack guard reads, as it checks that they are static. As built 2026-11-13: 7111, 2093 and 9274 canary reads in qemu-system-x86_64, qemu-img and the TCG build. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The vsock socket with Accept=no, handed to an sshd -D started from the boot's first dispatch, as Ubuntu's ssh.socket hands TCP's to ssh.service: no transient sshd@ unit and no sshd -i reading its configuration and host keys per connection. Checked in a boot (2026-11-13): Accept=no, one "sshd -D [listener]", no sshd@ units, the login over vsock works. On a laptop, 10 boots of each: first login 251 -> 242 ms, a second 34 -> 30. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… report found The row answered: on the bench fleet, 20 boots of each interleaved on v20261113.03 (lab run 43524721490), the first login read 382/393 ms against 381/410 as released, and a second login 40 against 48. The goal is the first, so the row is removed and the result is in the log. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…section A release before the first login against one without it, a p50 under a millisecond, one failed boot: the five edits to firstLogin no test held. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
v20261113.03's report read +11-18% on every row. It times the serial console's prompt, which no workspace waits for: since #250 the getty is
Type=idleagain and waits for the lane's units. The first login, which is the goal, went 478/500 → 381/410 ms (v20261113.02 in lab 43524334205, v20261113.03 in lab 43524721490: two runs, not interleaved).Changes
TestReportlogs in over SSH through the vsock to the release as built, the same wayboot:ssh-firstdoes, and recordsfirst_login(accepts / login).spin-machine comparewrites that section first, every time, and says the sections after it time the console's prompt. On the fleet (lab 43524936240): 20/20 boots logged in, accepts 235/241, login 374/381 ms. Releases before this one have nofirst_login, so their side of the comparison reads "-".Accept=noand ansshd -Dstarted early. On the fleet, 20 boots of each interleaved: first login 382/393 against 381/410, a second login 40 against 48 ms. It does not move the goal, so the result is indocs/log.md(an entry and a row in "Measured and rejected").Verification
go vet ./...andgo test ./boot/ ./machine/pass. A newTestDiffFirstLogincovers the section's order, the "-" for a release without the field, and failed boots.task qemu:buildran locally with the new check: OK.🤖 Generated with Claude Code