Monday, November 17, 2014

Virtual Cores tech and partitioning hypervisor

A couple of weeks ago Soft Machines came out of stealth mode and introduced the Variable Instruction Set Computing (VISC). VISC attempts to avoid the difficulties of scaling multiple threads in hardware by providing a framework in which workloads that appear sequential to the operating system are then scheduled across a set of virtual cores in hardware.

What is interesting here is that most often virtualization has been leverage to deliver fine grained (over)subscription from your system. The disadvantage is that with such technology you have often a penalty to pay. It is on average between 5 to 10% but it can be less or worse depending of the workload and over-subscription scenario. One alternative for separating critical applications while guaranteeing performance and isolation exist: partitioning hypervisor such as jailhouse.

Jailhouse can create asymmetric multiprocessing (AMP) setups on Linux-based systems. What it effectively does is partition the physical hardware into cells and guarantee the isolation between them. Effectively it use some cores to run a Linux based hypervisor to manage and partition the rest of the hardware. Each OS or virtual machine effectively run only on its dedicated core and hardware. The typical workloads we expect to see in non-Linux cells are applications with highly demanding real-time, safety or security requirements. However the trade-off is that you are under subscribing your system in order to guarantee high performance and isolation.

Now enter VISC, with such technology you could in theory eliminate the under subscription problem while retaining the performance and isolation characteristics of partitioning hypervisor. What would be interesting to see if this cpu architecture will be able to leverage this type of hypervisor technology to gain momentum within the cloud. Workload such as network virtualization function or virtual network systems would greatly benefit from such approach as the overhead of classic virtualization is a significant limiting factor.