<div class='slidealt'>Experience kvm <a title='virtualization for embedded heterogeneous arm core platforms' href='/en/products'>virtualization extensions</a></div> <div class='slidealt'>Benefit from custom <a title='kvm on arm services full virtualization' href='/en/services'>virtualization services</a></div> <div class='slidealt'>KVM on ARMv7 and ARMv8 <a title='kvm-on-arm open source smu extensions' href='/en/solutions/guides/vfio-on-arm/'>IOMMU full virtualization</a></div> <div class='slidealt'>Virtualization research projects <a title='ARM multicore kvm open source' href='/en/research'>in cloud and embedded systems</a></div> <div class='slidealt'>Virtualization solutions for heterogeneous <a title='ARMv7-ARMv8 virtualization open source solutions' href='/en/solutions'>ARM multicore systems</a></div>

Memguard, a Memory Bandwidth Reservation System to boost VM in multi-core Platforms

Memguard extensions, Memtalk, enhance performance & isolation in KVM Guests on ARMv8

Memguard, memory bandwidth management to boost KVM VMs on ARMv8

In this video, it is showcased Memguard, a memory bandwidth management system developed by Heechul Yun from the University of Illinois that originally targets the x86 architecture, especially Xeon CPUs from Intel. In the context of a research and innovation project, FP7 DREAMS, Virtual Open Systems has extended Memguard to support ARMv8 architecture and to enable memory bandwidth regulation between virtual machines guests which run on top of Linux/KVM. The main concept is based on the fact that the host scheduler (Linux/KVM) is made aware of the memory bandwidth needed by the guest. Such an implementation has been achieved by enabling a guest-host communication mechanism to dynamically prioritize the memory bandwidth needs of the guest.

In particular, the following components such a system, related to the memory bandwidth management within a virtualized environment, are explained:

bullet Memguard on ARMv8: On the ARMv8 architecture, Memguard has been extended to use the Performance Monitor Unit (PMU) to access the cache-miss counters, since the memory separation between kernel and user-space is implemented to enable a fine grain control of the memory bandwidth on ARMv8. In addition, an Idle notifier chain has been added in order to forward the information about CPU. This extended ARMv8 Memguard software, has been tested with upstream kernel (tested up to Linux v4.9) on the ARMv8 Juno development platform as shown in the video.

bullet Memtalk for KVM virtual machines: A new mechanism, called Memtalk, has been implemented by Virtual Open Systems to enable the communication from guests to the host. Indeed, the guest needs to deliver request messages to the host in order to regulate dynamically the needs of memory bandwidth. The architecture of the solution is split in three main parts: the guest level API to allow user to write/read from a simple file for setting the needed memory-bandwidth value; the hypercall exchange mechanism based on HVC instructions; and parts of Memguard linked to Completely Fair Scheduler (CFS). The software of this Memtalk module for KVM guests is made available by Virtual Open Systems.

Memguard Memory Bandwidth Reservation System Extended To Boost Vm In Multi-Core Platforms Memguard memory bandwidth reservation system extended with Memtalk to enhance performance & isolation in KVM Guests on ARMv8

Acknowledgment

In this video demo, it has been described part of the research and development effort performed by Virtual Open Systems within the research and innovation project FP7 DREAMS, which proposes solutions for mixed-critical systems.