Skip to content

do not set NVMe VWC for local volumes - #10932

Draft
iximeow wants to merge 6 commits into
mainfrom
ixi/propolis-vwc
Draft

do not set NVMe VWC for local volumes#10932
iximeow wants to merge 6 commits into
mainfrom
ixi/propolis-vwc

Conversation

@iximeow

@iximeow iximeow commented Jul 27, 2026

Copy link
Copy Markdown
Member

this closes the loop on oxidecomputer/propolis#1170 . I've written up some measurements and comparison at https://github.com/oxidecomputer/meta/blob/master/engineering/propolis-local-io-timing/vwc.adoc which, I think would be kind of neat to post about more generally, but at least here describe the relative difference and why we know this does anything one way or the other.

getting clever with the VWC bit requires care. I've elaborated on why in the change. the new indicated write cache behavior for local volumes will be wrong for most local development. local disks will behave right, but if a kernel panics or power is lost, writes a guest had believed were complete may be lost. we can do better for development environments and will want some additional work in Propolis as it relates to handling degraded hardware.

this draft depends on oxidecomputer/propolis#1178 and all the commits referenced are to change. since this pulls in a new Propolis, I owe this PR description a list of what else (if anything) is changing in the bump.

@iximeow iximeow added this to the 22 milestone Jul 27, 2026
@iximeow iximeow added virtualization Propolis Integration & VM Management local storage relating to the local storage feature labels Jul 27, 2026
// storage may be commodity M.2s or worse, this can claim "no
// VWC semantics" when the underlying storage actually does.
// This could be improved. See Omicron#10933.
let vwc_semantics = !path.starts_with("/dev/zvol/rdsk/");

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

n.b. that this path fragment occurs in other code that manages local volumes, and I kinda wonder if there ought to be a const for it? https://github.com/search?q=repo%3Aoxidecomputer%2Fomicron%20%2Fdev%2Fzvol%2Frdsk%2F&type=code

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 feature virtualization Propolis Integration & VM Management

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants