Uno strumento per l’emulazione di fallimenti hardware in ... · Uno strumento per l’emulazione...
Transcript of Uno strumento per l’emulazione di fallimenti hardware in ... · Uno strumento per l’emulazione...
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
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
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
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
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
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
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
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
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
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
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
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.