Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VirtIO sound TODOs #63

Open
10 tasks
alexandermbrown opened this issue May 9, 2024 · 0 comments
Open
10 tasks

VirtIO sound TODOs #63

alexandermbrown opened this issue May 9, 2024 · 0 comments

Comments

@alexandermbrown
Copy link
Contributor

alexandermbrown commented May 9, 2024

Future TODOs following this PR #37

  • Merge examples/virtio-sndwith examples/virtio.
    Tracking issue: Merge virtIO and virtIO sound examples together #60. This will involve multiplexing the shared bus on the OdroidC4.

  • Virtualiser ownership bug:
    Currently if you play audio in a client VM then immediately stop the stream (CTRL+C) the virtualiser it sometimes errors saying "invalid owner id -1". This is probably something to do with it getting released before all frames have been responded to. Note you need to play a long sound file (e.g., cantina.c from old commit) to get this to appear.

  • WFI Interrupt:
    I have implemented a prototype implementation which handles aarch64's "wait for interrupt" instruction to suspend the VM until a notification is recieved (on https://github.com/au-ts/libvmm/tree/virtio_snd_wfi). Currently the VMM gets a WFI but never gets a notification to wake the VM. This needs to be investigated.

  • Benchmarking:
    I implemented a benchmark which measures CPU usage of a native client client, virtualiser and driver VM (on https://github.com/au-ts/libvmm/tree/virtio_snd_bench). This needs to be redone with WFI interrupt handling.
    benchmark-setup

  • Passthrough IRQ 5:
    snd_driver_vmm.c contains passthrough IRQ 5. We are not sure what this is but Linux doesn't boot without it.

  • Use libuio:
    The userlevel driver doesn't use our UIO library at the moment. It may need some modifications to integrate.

  • Additional virtIO sound features:
    We currently don't support virtIO sound features such as the event queue, jacks or channel maps. This should be investigated.

  • Generic queues (ivanv):
    I don't like that we have multiple generic queue implementations, would be good to avoid if possible.

  • Userlevel program compilation:
    We currently use zig cc to build userlevel programs as I have been unable to get aarch64-linux-gnu-gcc or clang to work on macOS with Nix. Ideally zig wouldn't be a requirement.

  • CI simulation
    It would be good if the virtio-snd example was run and tested in the CI. A possible solution is described here ci: add virtio-snd building #87 (comment)

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

No branches or pull requests

1 participant