Skip to content

docs: Remove version restriction on IgvmNativeVpContextX64#117

Open
jethrogb wants to merge 1 commit intomicrosoft:mainfrom
jethrogb:patch-3
Open

docs: Remove version restriction on IgvmNativeVpContextX64#117
jethrogb wants to merge 1 commit intomicrosoft:mainfrom
jethrogb:patch-3

Conversation

@jethrogb
Copy link
Copy Markdown
Contributor

The documentation mentions a file format version restriction for IgvmNativeVpContextX64. However, neither the generator nor the parser enforce this: they will happily generate/parse IGVM files with a IGVM_VHT_VP_CONTEXT header when the revision is 1 and the platform type is NATIVE. QEMU will happily launch such IGVMs correctly. As such, this entire restriction seems to be meaningless.

@jethrogb jethrogb requested a review from a team as a code owner March 27, 2026 14:42
@chris-oo
Copy link
Copy Markdown
Member

I disagree, this is a bug in the igvm crate as the parser should be enforcing this. Would you like to submit a fix for that instead?

@chris-oo
Copy link
Copy Markdown
Member

If not, feel free to file an issue and I'll see if I can get to it next week. I suspect we aren't enforcing many v2 version requirements that we should be.

@jethrogb
Copy link
Copy Markdown
Contributor Author

Changing the behavior now would break downstream.

@chris-oo
Copy link
Copy Markdown
Member

chris-oo commented Mar 27, 2026

I think we will need to change the behavior in the next version, because we cannot guarantee that this is stable which is the point of the unstable flag. Although, maybe we can relax it in this specific case, but let me think about that over the weekend.

@jethrogb
Copy link
Copy Markdown
Contributor Author

The igvm crate doesn't have any features, and the igvm_c code also doesn't require any additional configuration to get the behavior described in the PR description.

@chris-oo
Copy link
Copy Markdown
Member

chris-oo commented Apr 1, 2026

Right. So there are a few things:
a) we do support features in both igvm_defs and igvm for unstable but we didn't gate the NATIVE VP context type correctly behind unstable
b) I don't see any makefile default enablement of the unstable feature. I'll need to dig a bit to see how QEMU is building if they're passing unstable or not.

Regardless, I think what you've said is reasonable. We can't really undo what we've published without breaking things, unfortunately.

@jethrogb
Copy link
Copy Markdown
Contributor Author

jethrogb commented Apr 1, 2026

a) we do support features in both igvm_defs and igvm for unstable

I'm not sure what you mean by this. Yes, it's there for igvm_defs, but here is the current [features] section from the igvm Cargo.toml

image

@chris-oo
Copy link
Copy Markdown
Member

chris-oo commented Apr 1, 2026

Ah I see now. See the usage of the igvm_defs dep:

[dependencies]
igvm_defs = { workspace = true, features = ["unstable"] }

What this means is you always get all the unstable headers. Which, is what was required for QEMU support to be useful at all from what I remember.

Regardless, I think that we will very soon promote all current unstable headers and stabilize the V2 version.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants