Interactions between sDDF and libvmm

Hello, I am currently exploring libvmm and sDDF and I have a question regarding how sDDF is intended to be used in practice. From what I understand, sDDF is often seen in conjunction with libvmm in examples and documentation. My question is: Is sDDF meant to be used exclusively with libvmm, or can it also be used independently? If the latter is possible, is it considered a recommended or meaningful use case, or is the project mainly designed around integration with libvmm? Thank you for your help. Best regards, Julia Royer

Hi Julia sDDF is intended to be used for doing I/O whether it’s completely native or in conjunction with virtual machines. In the sDDF repository, you’ll find examples of native clients using native device drivers for block, network, I2C, etc. You can think of libvmm as just a user of sDDF. In libvmm, sDDF is primarily used for emulating virtIO devices for virtual machines. For example, if we wanted a virtual machine to access the network, the VMM managing it would act as a client of a network sDDF system that would end up talking to a driver to do the actual I/O. However, because these interfaces between clients of a sDDF system and the components that actually manage the I/O are standard, we can also do things such as have a driver virtual machine rather than having a native driver. We’ve used this to leverage existing drivers in Linux to not have to write drivers for all the devices we want to make use of, e.g for audio drivers. You can find more info about the design of sDDF and its goals in the design doc [1]. Hope that clears things up. Ivan [1]: https://trustworthy.systems/projects/drivers/sddf-design-latest.pdf
participants (2)
-
Ivan Velickovic
-
Julia Royer