Uno strumento per l’emulazione di fallimenti hardware in ... · Uno strumento per l’emulazione...

12
Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Tesi di laurea magistrale relatore Ch.mo prof. Marcello Cinque Ing. Antonio Pecchia correlatore Ing. Anna Lanzaro candidato Giovanni Fierro Matr. M63/40 Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati Anno Accademico 2012/2013

Transcript of Uno strumento per l’emulazione di fallimenti hardware in ... · Uno strumento per l’emulazione...

Page 1: Uno strumento per l’emulazione di fallimenti hardware in ... · Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati Facoltà di Ingegneria Corso di

Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati

Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati

Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica

Tesi di laurea magistrale

relatore

Ch.mo prof. Marcello Cinque

Ing. Antonio Pecchia

correlatore

Ing. Anna Lanzaro

candidato

Giovanni Fierro

Matr. M63/40

Uno strumento per l’emulazione di fallimenti hardware in

sistemi virtualizzatiAnno Accademico 2012/2013

Page 2: Uno strumento per l’emulazione di fallimenti hardware in ... · Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati Facoltà di Ingegneria Corso di

Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati

Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati

Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica

Contesto e motivazioni

• Sistemi embedded e sistemi mission-critical

Soluzioni multicore Alte prestazioni

SWaP (Size, weight and power) ridotto

Virtualizzazione Sistemi mixed-criticality

Verifica e Validazione Intero sistema

Macchine virtualiMulti-core processor

Virtualization layer

Critical

applications

RTOS

General

purpose

applications

OS

Page 3: Uno strumento per l’emulazione di fallimenti hardware in ... · Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati Facoltà di Ingegneria Corso di

Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati

Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati

Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica

Obiettivo e contributo

Obiettivo

Contributo

• Approccio basato sull’emulazione di fallimenti hardware

sfruttando l’architettura di error reporting

Analisi dei meccanismi di notifica e gestione di errori

hardware in ambienti multi-core virtualizzati

Realizzazione di un framework di error-injection

Casi di studio

• Intel I7

• Xen 4.2.1

• Linux Kernel 3.6.11

Page 4: Uno strumento per l’emulazione di fallimenti hardware in ... · Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati Facoltà di Ingegneria Corso di

Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati

Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati

Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica

Xen Hypervisor

Di tipo bare-metal:

• Controlla le risorse, CPU e memoria

Componenti

• Control domain, Dom0

• Guest domain, DomU

• Toolstack e console

Progetto open-source nato presso l’università di

Cambridge

I domini si interfacciano a Xen

tramite hypercall

• Meccanismo analogo alle

System Calls

Page 5: Uno strumento per l’emulazione di fallimenti hardware in ... · Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati Facoltà di Ingegneria Corso di

Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati

Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati

Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica

Rilevamento e notifica errori hardware

Codici di errore loggati nella

MCA (Machine Check

architecture)

Gli errori hardware sono

notificati al software di base

sollevando un interrupt MCE

(Machine check exception)

• Consiste in un insieme di

registri MSR (Machine

Specific Register), suddivisi in

banchi

Page 6: Uno strumento per l’emulazione di fallimenti hardware in ... · Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati Facoltà di Ingegneria Corso di

Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati

Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati

Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica

Hypercall: HYPERVISOR_mca

Specifica hypercall: HYPERVISOR_mca

Xen implementa un modulo software per la MCA.

• Handlers MCE

• Error logging

• Comandi:

• Fetch, lettura log;

• Msr_inject, scrittura MSR;

• Mce_inject, solleva MCE

Modifica interfaccia comando

Mce_inject

• Possibilità di iniezione nel guest

Page 7: Uno strumento per l’emulazione di fallimenti hardware in ... · Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati Facoltà di Ingegneria Corso di

Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati

Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati

Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica

Injection tool

Emulazione errori hardware

• Scrittura dei registri MSR

Modifiche al codice Xen

• Handler MCE

• Allineamento vMSR guest

Due modalità di iniezione

• Nell’hypervisor

• Direttamente al guest

Page 8: Uno strumento per l’emulazione di fallimenti hardware in ... · Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati Facoltà di Ingegneria Corso di

Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati

Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati

Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica

Injection tool: esempio di utilizzo – al guest

Generic cache hierarchy error – level 1

MCG_STATUS 0X5

MCi_STATUS 0XBD80000000000000F

MCi_ADDR 0X100

MCi_MISC 0X80

BANK 8

CPU 6

Dom_Id 2

Xen – mce.c

Dom0 Console

Target DomU

mcelog

Page 9: Uno strumento per l’emulazione di fallimenti hardware in ... · Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati Facoltà di Ingegneria Corso di

Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati

Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati

Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica

Testbed

Target domain

• Linux OS: versione

kernel 3.6.11

Workload generator

• Utility linux «stress»

Test logs

• Log di sistema

• Report

dell’esperimento

Processore: Intel i7

• 8 core logici

Page 10: Uno strumento per l’emulazione di fallimenti hardware in ... · Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati Facoltà di Ingegneria Corso di

Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati

Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati

Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica

Sperimentazione: Xen error handling

Codici errore:

• Cache hierarchy error

• MCE Iniettati: 49152

Errori delegati al guest

• PCC (processor context corrupted)

• 1536 MCE iniettati

L’azione intrapresa è indipendente

dallo specifico codice di errore

Page 11: Uno strumento per l’emulazione di fallimenti hardware in ... · Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati Facoltà di Ingegneria Corso di

Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati

Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati

Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica

Sperimentazione: Linux OS

• Errori TLB

• 1536 MCE iniettati

MCE inoltrati direttamente al

guest

Flag RIPV registro globale

• Restart IP (instruction pointer) valid

• Se basso kill del processo

Page 12: Uno strumento per l’emulazione di fallimenti hardware in ... · Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati Facoltà di Ingegneria Corso di

Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati

Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica Uno strumento per l’emulazione di fallimenti hardware in sistemi virtualizzati

Facoltà di Ingegneria

Corso di Studi in Ingegneria Informatica

Conclusioni

Sviluppi futuri

Domini target solo ParaVirtualizzati

• Estendere l’utilizzo del tool anche ad domini fully

virtualized (HVM )

Utilizzare il framework in sistemi critici reali

Il tool realizzato in questo lavoro di tesi permette di testare sia il l’intero

sistema virtualizzato e sia la singola virtual machine.

I meccanismi di error-handling testati non svolgono vere e proprie

azioni di recupero dell’errore.