Menu

Linux 3.3!

On March 18th, Linux 3.3 was released and it featured a number of interesting Xen related features.

Re-engineered how tools can perform hypercalls – by using a standard interface (/dev/xen/privcmd instead of using /proc/xen/privcmd)

Backends (netback, blkback) can now function in HVM mode. This means that a device driver domain can be in charge of a device (say network) and a subset of the network (netback). What is exciting about this it allows for security by isolation – so if one domain is compromised it does not affect the other domains. Both Qubes and NSA Research Center have been focusing on this functionality and it is exciting to see components of this goal taking shape!

My pet peeve: graphics not working. The Xen architecture makes an interesting sandbox for making drivers compatible with other platforms. This is due to the fact that the when device drivers DMA data, the “bus” address (so the address used on PCI chipsets) is different from the “physical” (the address used by the CPU) address. This mapping is common on other platforms besides x86 – SPARC, or PPC. The x86 architecture usually has a 1:1 mapping (so “phys” == “bus”) – and both nouveau and radeon drivers weren’t using th full gamma of the PCI API to take advantage of that. The TTM DMA pool driver does that and now PCI (example: ATI ES1000) and PCIe cards can function properly under Xen – the remaining piece is to hookup this to the AGP API, but it not clear if there is that much huge demand for that.

Thanks for the XenDoc day a lot of documentation was added to the kernel and the XenBus code was cleaned up.

Also some pretty serious bug fixes were put in:

A fix in the spinlock code: if you build the kernel for fewer than 256 CPUs corruption of the spinlock occurs and a crash will ensure.

We fixed a long-uptime bug when using the radeon or nouveau driver. The user would see: “ WARNING: at arch/x86/xen/mmu.c:475 xen_make_pte” and things started to mysteriously break.

Hardening of the XenBus code to deal with bad frontends.

That is it for now. The Linux 3.4 merge window has opened. Expect to see another blog post from in the near future, with detail on what will go in Linux 3.4. The good news is that some of these items have been requested by many of you for some time!