Skip to content

feat: add virtqueue transport foundations - #1793

Draft
andreiltd wants to merge 15 commits into
external-bytesfrom
virtq-foundations
Draft

feat: add virtqueue transport foundations#1793
andreiltd wants to merge 15 commits into
external-bytesfrom
virtq-foundations

Conversation

@andreiltd

Copy link
Copy Markdown
Member

Stack created with GitHub Stacks CLIGive Feedback 💬

Read received payloads directly into caller owned storage and require
paired completion of readable/writable chains.

Signed-off-by: Tomasz Andrzejak <andreiltd@gmail.com>
Make pool restoration transactional.

Signed-off-by: Tomasz Andrzejak <andreiltd@gmail.com>
Split and rename the pool implementations, add explicit lower/upper
SlotPool regions.

Signed-off-by: Tomasz Andrzejak <andreiltd@gmail.com>
Define deterministic producer and consumer reset behavior. Validate
canonical events, descriptor chains, IDs, buffer policy, and unused
descriptors.

Signed-off-by: Tomasz Andrzejak <andreiltd@gmail.com>
Represent scratch bookkeeping with one repr(C) layout. Derive offsets
and assert the host/guest ABI at compile time.

Signed-off-by: Tomasz Andrzejak <andreiltd@gmail.com>
Use the first GPA of the reserved pages as an exclusive limit. Accept
allocations ending at the limit and reject address overflow.

Signed-off-by: Tomasz Andrzejak <andreiltd@gmail.com>
Signed-off-by: Tomasz Andrzejak <andreiltd@gmail.com>
Signed-off-by: Tomasz Andrzejak <andreiltd@gmail.com>
Define directional queue depths, buffer sizes, and pool page counts.
Account for guest allocated rings and pools in minimum scratch
calculations. Publish the transport contract through scratch-top
metadata.

Signed-off-by: Tomasz Andrzejak <andreiltd@gmail.com>
This patch adds guest owned G2H and H2G rings and pools during guest
initialization, and prefill H2G receive capacity. The guest then
publishes their gpas through scratch metadata.

The patch is also validates allocation order, scratch ownership, and
canonical ring images before installing either host consumer.

Signed-off-by: Tomasz Andrzejak <andreiltd@gmail.com>
Persist validated G2H and H2G ring images in running snapshots. Restore fixed transport allocations and install fresh host consumers before sandbox execution.

Signed-off-by: Tomasz Andrzejak <andreiltd@gmail.com>
Signed-off-by: Tomasz Andrzejak <andreiltd@gmail.com>
Allocate logical regions atomically

Signed-off-by: Tomasz Andrzejak <andreiltd@gmail.com>
Use queue_size instead of queue_depth

Signed-off-by: Tomasz Andrzejak <andreiltd@gmail.com>
Signed-off-by: Tomasz Andrzejak <andreiltd@gmail.com>
@andreiltd andreiltd changed the title virtq foundations feat(virtq): add virtqueue transport foundations Sep 3, 2026
@andreiltd andreiltd changed the title feat(virtq): add virtqueue transport foundations feat: add virtqueue transport foundations Sep 3, 2026
@andreiltd andreiltd added kind/enhancement For PRs adding features, improving functionality, docs, tests, etc. area/fuzzing Fuzzing related test failures created from weekly CI labels Sep 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/fuzzing Fuzzing related test failures created from weekly CI kind/enhancement For PRs adding features, improving functionality, docs, tests, etc.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant