Skip to content

Conversation

@iximeow
Copy link
Member

@iximeow iximeow commented Jan 7, 2026

this has some effect, but only in some cases; nothing when I/Os are all the same size, on the order of 5% more IOPS when I/Os vary between 4 KiB, 32 KiB, 256 KiB, and in-between.

since this is here and works I'm.. fine with merging it, but like #985 this builds on, we're just working around an OS bug, so this all gets ripped out when the OS has a real segvmm_page{un}lock.

this seems to have some effect, but not a lot; nothing when I/Os are all
the same size, on the order of 5% better throughput when I/Os vary
between 4 KiB, 32 KiB, 256 KiB, and in-between
@iximeow iximeow added the local storage Relating to the local storage project label Jan 7, 2026
let iovs = [iovec {
iov_base: buf.as_mut_ptr() as *mut libc::c_void,
iov_len: buf.len(),
iov_len: total_capacity,
Copy link
Member Author

Choose a reason for hiding this comment

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

my first go at this change I'd missed this line in the change, and a small write from the guest went and wrote the whole much larger buffer, garbage and all, into my guest disk. I'd mentioned this morning that I was hesitant about misusing the longer-lifetime scratch buffer and it was really me still processing the shock of having bricked a test image without realizing I'd been playing with fire.

in retrospect, looking at this change, I'm much less anxious about this as a risky change, but I'm still not chomping at the bit to get this in.

@iximeow
Copy link
Member Author

iximeow commented Jan 7, 2026

phd failures are not from this change:

| URL: 'https://pkg.oxide.computer/helios/2/dev/helios-dev/catalog/1/catalog.summary.C'
|   6: https protocol error: Unknown error code: 502 reason: Bad Gateway

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

Labels

local storage Relating to the local storage project

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant