Linux kernel 3.6 has been released. There are new features in Btrfs: subvolume quotas, quota groups and snapshot diffs (aka “send/receive”). It also includes support for suspending to disk and memory at the same time, a TCP “Fast Open” mode, a “TCP small queues” feature to fight bufferbloat; support for safe swapping over NFS/NBD, support for the PCIe D3cold power state; and VFIO, which allows safe access from guest drivers to bare-metal host devices. Many small features and new drivers and fixes are also available. Here’s the full list of changes
One of the most interesting changes, from a “philosophical” point of view, is VFIO, because it allows to create safe and fast user-space drivers. So people who likes microkernels don’t even need to write a OS from scratch to do experiments.
Does that mean you can write drivers that don’t need to be compiled for each kernel?
I’m not sure yet, I’ve seen people ask the same thing in an other forum, but no1 answered.
I believe it is meant for virtualization. To allow a virtual machine fast/direct access to a certain piece of hardware (like a dedicated networking chip).
First of all you’d need hardware which supports isolation userspace processes to a certain piece of I/O memory (DMA).
Here is the documentation by the author:
https://github.com/awilliam/linux-vfio/blob/next/Documentation/vfio….
I wonder if it could be used for something like Netmap:
https://www.youtube.com/watch?v=SPtoXNW9yEQ
Edited 2012-10-01 22:28 UTC
These days we have things like Thunderbolt which exposes DMA space to external bus devices, so IO virtualization is not just for improving hypervisor performance anymore. We can’t continue treating DMA as a shared privileged resource. Each device needs its own isolated and untrusted address space, much like userspace. If the devices have their own DMA space, then their drivers no longer need to run in kernel mode, and supporting userspace drivers just becomes a matter of providing a syscall interface for allocating DMA space.