On Wed, Sep 24, 2025 at 12:03 PM Stefan Hajnoczi <[email protected]> wrote: > > Thanks, that gives a nice overview! > > I/O Resource Allocation part will be interesting. Restructuring existing > device drivers to allow spawned kernels to use specific hardware queues > could be a lot of work and very device-specific. I guess a small set of > devices can be supported initially and then it can grow over time.
My idea is to leverage existing technologies like XDP, which offers huge benefits here: 1) It is based on shared memory (although it is virtual) 2) Its API's are user-space API's, which is even stronger for kernel-to-kernel sharing, this possibly avoids re-inventing another protocol. 3) It provides eBPF. 4) The spawned kernel does not require any hardware knowledge, just pure XDP-ringbuffer-based software logic. But it also has limitations: 1) xdp_md is too specific for networking, extending it to storage could be very challenging. But we could introduce a SDP for storage to just mimic XDP. 2) Regardless, we need a doorbell anyway. IPI is handy, but I hope we could have an even lighter one. Or more ideally, redirecting the hardware queue IRQ into each target CPU. > > This also reminds me of VFIO/mdev devices, which would be another > solution to the same problem, but equally device-specific and also a lot > of work to implement the devices that spawned kernels see. Right. I prototyped VFIO on my side with AI, but failed with its complex PCI interface. And the spawn kernel still requires hardware knowledge to interpret PCI BAR etc.. Regards, Cong Wang
