Memguard, a Memory Bandwidth Reservation System to boost VM in multi-core Platforms
Memguard extensions, Memtalk, enhance performance & isolation in KVM Guests 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:
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.
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.
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.
Copyright and Licensing
Licensing of this guide source code
The source code made available through this web page, can be downloaded after logging into the website, which requires the user to be registered. The source code is provided under the following copyright and license.
The Memtalk source code is provided under the following copyright and license:
Copyright 2017 Virtual Open Systems SAS. All Rights Reserved.
Licensed under the GNU General Public License, version 2, (the "License"); This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2, as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
The Memguard source code, patched by Virtual Open Systems, is provided under the following copyright and license:
Copyright (C) 2013 Heechul Yun.
Licensed under the the University of Illinois Open Source License.
- Kvm on arndale exynos
- Kvm armv7 multiple guests poc
- Kvm full virtualization on vexpress
- Kvm vs tcg virtualized guests
- Byod android kvm on cortex-a15
- Kvm android guest on arm fastmodels
- Vosyshmem api remoting
- Virtual bfq in action
- Vosyswitch perf openstack integration
- Vosyswitch interop2017 shownet arm server
- Kvm virtualization training video
- Vosyswitch odp armv8
- Vosyswitch interop
- Vosysmonitor als2016
- Vosysmonitor als2017