vringfd()
vringfd()
Posted Apr 11, 2008 7:54 UTC (Fri) by liljencrantz (guest, #28458)Parent article: vringfd()
Am I correct in assuming that the point of this interface is to allow for fast, zero copy data transmition between kernel and userspace? What are the use cases for it? A new, faster type of IPC? FUSE modules with nearly the same performance as in-kernel filesystems? Making it possible to move parts of the network stack to userspace?
Posted Apr 12, 2008 21:54 UTC (Sat)
by aliguori (subscriber, #30636)
[Link]
vringfd()
The immediate use-case is to allow a high performance virtual network device backend to be
implemented in userspace for KVM.
In general, it's just a standardized ring queue between kernel and userspace. Ring queues are
lock-less and efficient when shared between two CPUs. They are good at batching and
implementing zero-copy IO.
vringfd() will be most immediately useful for tun/tap users. Of course, it's easy to envision
a vringfd() interface for block IO.