https://github.com/cyanide-burnout/wormhole
Linux inter-VM shared memory client library
https://github.com/cyanide-burnout/wormhole
c iouring ivshmem ivshmem-qemu linux uio uring
Last synced: 2 months ago
JSON representation
Linux inter-VM shared memory client library
- Host: GitHub
- URL: https://github.com/cyanide-burnout/wormhole
- Owner: cyanide-burnout
- License: gpl-2.0
- Created: 2024-06-20T07:37:01.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-06-21T15:05:41.000Z (11 months ago)
- Last Synced: 2025-01-21T22:15:51.497Z (4 months ago)
- Topics: c, iouring, ivshmem, ivshmem-qemu, linux, uio, uring
- Language: C
- Homepage:
- Size: 17.6 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# WormHole
Linux inter-VM shared memory client library
* Fresh UIO driver compatible with Linux kernels 6.x
* Library could work
* in host mode using direct connection to *QEMU ivshmem-server*
* as well as in guest mode using UIO driver
* Allows to run multiple instances of application in both modes
* In addition here is integration with io_uring-based main loop (see repository **FastRing**)## Limits
* Only one IRQ vector is supported because of UIO limits
* Due to byte-order depended implementation of ivshmem in QEMU a guest system should use the same byte-order as a host## Links
* https://www.qemu.org/docs/master/system/devices/ivshmem.html
* https://www.qemu.org/docs/master/specs/ivshmem-spec.html
* https://github.com/henning-schild-work/ivshmem-guest-code/tree/master
* https://github.com/qemu/qemu/tree/master/contrib/ivshmem-client
* https://github.com/projectacrn/acrn-hypervisor/tree/master/hypervisor/dm/vpci/ivshmem.c
* https://github.com/projectacrn/acrn-hypervisor/tree/master/misc/sample_application/rtvm
* https://github.com/torvalds/linux/blob/master/drivers/uio/uio_netx.c