13/11 – Avi Kivity visited the lab and gave an ejoyable talk on talk on KVM. From a theoretical POV, I think hypervisors should be small and lean, not based on full-fledged OS kernels. However, from a pragmatic point of view – after dealing with Xen for so long – it’s certainly nice to see the Linux kernel gaining a subset of Xen’s capabilities, while remaining the Linux kernel we know and love.
Spent the rest of the day bringing up the CalIOC2 IOMMU on the Beaverton machine. The bridge issue previously mentioned was pretty easy to solve, we just check if the bus the device is on is a bridge, and if yes, use the IO address space on the bridge’s parent. There was also a nasty issue with the format of an undocumented Calgary/CalIOC2 register initialized by the BIOS which is initialized to the wrong value on CalIOC2. Once that was taken care of, the kernel came up and Calgary worked fine, but DMA’s weren’t going through for the guinea pig PCI-e NIC attached to CalIOC2. Here is my current debug patch calgary-support-calioc2.
14/11 – more CalIOC2 debugging but no discernible progress. Eventually gave up on the flaky machine for the day and moved on to other things. In the evening spent some time talking with various people about plans for next year.
i think the problem is at least partly an issue of layering. it is easy (or at least easier) to think of the virtualization that xen does and how it interacts specifically with linux (or whatever) on top though the several interfaces that connect the top and bottom,
when you do all of this in one code base with many, many subsystems and interfaces such as found the linux kernel (given the current implentation techniques) it is difficult to grok all of the ramifications of any code you write. it is quite hard to prove and maintain containment and isolation and to keep it that way.
did kivity talk about this?
Comment by ch — November 16, 2006 @ 5:36 AM |
No, he didn’t. While I agree with you in general about layering, Xen is too much of a mess IMHO. KVM is at least self-contained from a code POV, even if it is running in the context of the core kernel.
Comment by mulix — November 16, 2006 @ 2:24 PM |