Skip to content

don't header-check the bhyve or viona API version - #1208

Closed
iximeow wants to merge 3 commits into
masterfrom
ixi/hdrchk-viona-interface-ver
Closed

don't header-check the bhyve or viona API version#1208
iximeow wants to merge 3 commits into
masterfrom
ixi/hdrchk-viona-interface-ver

Conversation

@iximeow

@iximeow iximeow commented Aug 31, 2026

Copy link
Copy Markdown
Member

since 5ffff4b (nice hash!) stlouis has had a VIONA_CURRENT_INTERFACE_VERSION of 7, which differs from the existing minimum Propolis requires of 6. the last time this was changed was back when we added multi-queue support to viona, which predates me adding header-check as part of CI (... as a result of a bug that came in with that change!) ... when the CI illumos was updated in the last few weeks, the value we see in header-check finally got the update too. as-is, because the constant doesn't match between our definition and the kernel headers, header-check handles that as any other constant mismatch and fails CI. in any other case this would be right, such as if ioctl values were curiously changing around beneath our feet.. but here it's generally ok.

while viona's header-check now supports a notion of API_VERSION, I don't know of any items which have been removed and I don't want to add conflicts for new versions. so I'm adding it in here really in service of future use (perhaps in #1093?)

this gets CI green again, which really had no need to be failing. sorry for the troubles @zeeshanlakhani

Changes to viona and bhyve are generally additive, and
backwards-compatible. Checking that the header API version definitions
match those in Propolis is more restrictive than we are at runtime;
generally beeing *newer* than the OS interface is OK, while *older* is
not.

If viona or bhyve changes are not backwards-compatible, header-check
will still report them as applicable to items that Propolis has
definitions of too. If changes simply remove items some twiddling with
the header-check/build.rs rules may be in order, so that Propolis
checked against older API versions can know that items which were once
present are no longer.
@iximeow iximeow added the development Relating to engineering experience and development of propolis, not guest or product interfaces label Aug 31, 2026
@iximeow
iximeow force-pushed the ixi/hdrchk-viona-interface-ver branch from de9b118 to 8dc769c Compare August 31, 2026 17:35
@iximeow iximeow mentioned this pull request Aug 31, 2026
@iximeow

iximeow commented Sep 1, 2026

Copy link
Copy Markdown
Member Author

I've misunderstood the semantic of the interface version numbers for a while now, it turns out. they're just Private interface from the OS's perspective, and it is incorrect to assume you might be able to get correct function using for example an old Propolis on newer host bits. I'll have a subsequent change that describes this a bit on the Propolis side, but we just need to update Propolis' VIONA_CURRENT_INTERFACE_VERSION to match.

@iximeow iximeow closed this Sep 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

development Relating to engineering experience and development of propolis, not guest or product interfaces

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant