After the IBM statement of directions to support KVM on System z I’ve been asked many times for a criteria if a certain ISV software or customer solution needs to be retested or not. As in performance the answer is: it depends. Basically there are two / four different types of applications / products to consider
- No retesting needed – certified and tested towards the operating system:
Applications that use a standard API only, like Java or standard library functions that don’t need and exploit the visibility of the underlying (virtualized) hardware.
- Retesting recommended – certified and tested towards the operating system:
Applications that do interact with virtualized hardware to a certain extend e.g. accessing raw devices.
- Retesting and some coding needed – certified and tested towards the operating system and the virtualization layer:
Applications that actively interact with the hypervisor, e.g. by vmcp commands under z/VM. They then needs an equivalent implementation of that kind of functionality for every type of virtualization. Other examles are the use of zLinux hypfs (hypervisor file system) or using the hypervisor details surfaced in /proc/sysinfo.
- Retesting and additional code for the hypervisor needed – certified and tested towards the operating system and the virtualization layer:
Applications that need hooks and special interfaces into the hypervisor e.g. for monitoring or systems management. Every new hypervisor will require new code as e.g. the reported performance metrics and systems management interfaces are different
For Linux on the mainframe today there is only z/VM and LPAR. And z/VM is really virtualizing the hardware in a 1:1 fashion as good as possible (with a lot of firmware and hardware support to keep the overhead to minimal levels). For such a hardware virtualization the category #2 is nearly not existent. If there is no active interaction with hypervisor, no retesting is needed.
KVM has the concept of new virtual devices with new device names, so some products from #1 are going to slip into category #2.