Skip to content

Conversation

torgeiru
Copy link

This is an oversized PR that will be reposted (most likely). Meant mostly for later discussion.

Dependencies: Vmrunner and diskbuilder (reviving several old file system tests and test for VirtioPMEM).

Consists of:

  1. Modern Virtio: Modernized Virtio PCI control plane with traditional split virtio queues.
    Uses a Virtio console device for testing.
  2. VirtioFS: A driver for reading a host shared folder. Supports reading, writing (to existing files) and seeking.
  3. VirtioPMEM: Simply a mmap'd file down to guest physical addresses. Can be mounted as a memory disk.
    The VirtioPMEM test demonstrates this.

Driver testing enhancement:
Making so that you can write shitty drivers in your testing unikernel

Minor refactoring:
Moving defines from source to header files
Modern Virtio (>=1.0) implementation needed for VirtioFS.
Split Virtio queues were implemented because the VirtioFS
device does not support packed. This is a feature enhancement.
The Virtio plane is designed with the possibility of this
being implemented in the future.
Testing the following:
1) Enqueue of an entire buffer chain
2) Multiple buffer chains in flight
3) Stress testing with many chains and kicks
4) Testing interrupt and callback
Tests revived:
posix/integration/file_fd
fs/integration/memdisk
fs/integration/fat32
fs/integration/vfs

Requires diskbuilder to work. Please accept diskbuilder PR.
VirtioFS:
1) VirtioFS driver together with FUSE structs
2) Test for demonstrating read and write functionality

VirtioPMEM:
1) VirtioPMEM driver
2) Copied test from fat32 that uses PMEM as memdisk

Dependencies are diskbuilder and vmrunner.
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.

1 participant