16 June 2009

Wind River Hypervisor release

Yesterday Wind River Systems released the hypervisor they announced last summer, complete with YouTube videos:
Things I find interesting:
  • From the demo video, we can see that the x86 port uses VT, but the PowerPC core doesn't have equivalent functionality (e500v2 is pre-ISA 2.06). That must mean they've got a paravirtual interface, likely the "virtual board interface" mentioned.
  • EETimes quote: "We map I/O into the guest environment directly so it can directly talk to data registers to get higher performance." Given that they're releasing VxWorks MILS Platform 2.0 today for the hypervisor, which presumably requires high levels of isolation, I'm willing to bet that direct IO access is an option rather than a design assumption.
  • Mark's demo videos had an emphasis on their Workbench IDE. I don't know if this was a conscious decision or not, but it does nicely reinforce the notion of the hypervisor as part of a solution, not a standalone product.
  • They advertise their "MIPC" shared-memory inter-guest communication mechansim. I hope they just put a fancy name on virtio, but I doubt it. If they aren't using virtio, they're developing yet another set of virtual IO drivers for Linux. :(
  • Their Linux patch isn't mentioned, but I hope they will be publishing it and merging it upstream, instead of the usual RTOS vendor approach to Linux...
  • They consistently advertise the performance impact as "2-3% at worst." That's a nice marketing bullet, but is never the right answer to a vague performance question. The right answer is "it depends." In this case, it depends on the processor model, the workload, the partitioning configuration, and more. For example, VT-enabled x86 virtualization will have very different performance characteristics than paravirtualized PowerPC.
All in all, it's a significant event when a dominant embedded software company enters a new area like virtualization. As time goes by, it will be interesting to see how well they play with competitors' software... who is going to port Integrity to the Wind River virtual board interface? ;)

1 comment:

  1. Thanks Hollis,

    If I may answer your points:

    - The Intel version of the Wind River Hypervisor does indeed use VT-x, but provides para-virtualization for better performance in certain places (avoid VM exit/enter on Intel). The PPC version is completely paravirtualized.

    - Yes, direct mapping of device IO is an option. One can also share devices between virtual machines of course.

    - Workbench integration is important to manage virtual environments, things can get complex quickly when virtualization is involved. In Wind River's view the hypervisor is part of a complete solution, which includes Workbench for development and debugging, guest operating systems, but also capabilities such as communication (MIPC)

    - MIPC is a OS-independent inter-OS communication layer. Where possible we do use the Linux virtualization hooks.

    - Wind River is usually good in providing changes back up stream, both for Linux, as well as for the Eclipse CDT.

    - Re: Performance: I am with you here, the correct answer is 'it depends'. Interestingly enough, things like context switches are faster on PPC than on Intel VT-x. However, guests with virtual memory on Intel are faster than on PPC (hardware vMMU or software vMMU). Figuring out what the actual performance will be depends on the processor architecture, the board, the guest operating system, the application and the configuration (are cores virtualized or not, what is the memory configuration and so forth). Our typical approach is to work with customers one-on-one to figure out what the performance will be. However, marketing statements are sometimes necessary to get people talking :)


    Hope this clarifies things.


    Mark Hermeling, Wind River Systems

    ReplyDelete