Mitigating platform-level memory interference on a static partitioning hypervisor

Abstract

Dissertação de mestrado em Engenharia Eletrónica Industrial e ComputadoresOs sistemas embebidos apresentam uma enorme heterogeneidade, incluindo desde pequenos controladores, para sistemas inteligentes operados a bateria até sistemas de computação de alto desempenho em automóveis. Definitivamente, os sistemas embebidos cresceram exponencialmente nos últimos anos, aumentando o seu nível de complexidade numa multiplicidade de indústrias. Tal facto, aportou naturalmente uma consolidação de várias camadas de critícidade sobre a mesma plataforma. Para proporcionar um aumento de isolamento e segurança, a indústria começou a recorrer às capacidades da tecnologia de virtualização. A tecnologia de virtualização permitiu a consolidação e o isolamento de múltiplos subsistemas numa mesma plataforma. Hipervisores, também designados de monitores de máquinas virtuais, são responsáveis pela gestão dos recursos de hardware para as mesmas. No entanto, os hipervisores tradicionais não foram desenhados para garantir requisitos de tempo-real e para as restrições embebidas. Nesse sentido, tanto a indústria com a academia direcionaram esforços para uma nova arquitectura de virtualização, os chamados hipervisores de partição estática. Um exemplo destes hipervisores é o Jailhouse que aloca estáticamente o hardware no momento de inicialização. No entanto, este hipervisor exige que o sistema operativo Linux o inicialize, o que se traduz em desvantagens em termos de tempo de arranque e segurança. Para abordar a maioria dos problemas do Jailhouse, o nosso grupo de investigação desenvolveu o Bao. Bao é um hipervisor estático que não apresenta qualquer dependência externa. Este mesmo hipervisor já implementa a partição da cache de modo a mitigar as interferências causadas pela contenção da partilha da mesma entre máquinas virtuais. Contudo, existem outros pontos de contenção na hierarquia de memória. Assim, a primeira parte desta dissertação concentra-se sobre a implementação de um mecanismo para regulação da largura da banda de memória, cujo o objectivo é o isolamento temporal do controlador DRAM. O mecanismo implementado irá ser avaliado para identificar o nível de capacidade de redução de interferência na DRAM. A segunda fase desta dissertação, explora os possíveis casos de ”side-channel” através do uso de DMAs para avaliar os casos de interferência a nível da plataforma e não apenas ao nível do CPU.Embedded systems range from tiny controllers in batery-operated smart devices to high-performance computing systems in cars. Therefore, embedded systems have grown exponentially in recent years in various industries, and this has lead to increased complexity, that naturally pushed towards consolidation of several layers of criticality on the same platform. To provide increasing isolation and security, industry started to leverage the capabilities of virtualization technology. Virtualization technology enable the consolidation and isolation of multiple subsystems onto the same platform. Hypervisors, also called as Virtual Machine Monitors are responsible for managing the hardware resources for different virtual machines (VMs). However, traditional hypervisors are not designed for real-time requirements and embedded con straints. This lead academia and industry to work towards a new virtualization architecture, the so called static partitioning hypervisors. These hypervisors statically allocate hardware resources. An example of a static partitioning hypervisor is Jailhouse, which statically allocates hardware at initialization time to the different VMs. However, this hypervisor requires the Linux operating system to bootstrap itself, leading to several bottlenecks in terms of boot time and security. To address most of the issues of Jailhouse, our research group has developed Bao. Bao is a static hypervisor that does not have any external dependencies. The Bao hypervisor already implements cache partitioning to mitigate interference caused by the contention in the shared cache between guests. How ever, there are other points of contention downstream of the memory hierarchy. So the first part of this dissertation focuses on implementing a mechanism to regulate VM memory bandwidth, where the goal is the temporal isolation of the Dynamic Random Access Memory memory controller. The implemented mechanism will be evaluated to identify the extent to which the mechanism helps solve the interference problems in the DRAM. The second phase of the dissertation explores possible cases of side-channels through the use of Direct Memory Accesss to evaluate cases of interference at the platform level and not just at the Central Processing Unit level

    Similar works