Folien - TU Dortmund

Download Report

Transcript Folien - TU Dortmund

Optimierungsverfahren für
Fehlerinjektionsexperimente
Seminarvortrag: Softwarebasierte Fehlertoleranz
Adrian Böckenkamp
([email protected])
Montag, 04. März 2013
Veranstalter: Olaf Spinczyk, Horst Schirmeier, Christoph Borchert, Boguslaw Jablkowski
Agenda
1. Einleitung
2. Konzepte eines FI-Frameworks
3. Reduktion des Fehlerraums
4. Bewertung der Verfahren
5. Diskussion
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
1
Übersicht
1. Einleitung
•
•
Szenario
Problemstellung
2. Konzepte eines FI-Frameworks
•
•
Struktur & Ablauf
Motivation: Optimierungen
3. Reduktion des Fehlerraums
•
•
•
Klassifikation von Verfahren
Exakte Verfahren
Heuristisches Verfahren
4. Bewertung der Verfahren
•
•
Effektivität: Reduktionsfaktor
Genauigkeit der Heuristik
5. Diskussion
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
2
1. Einleitung ≫ Szenario
Rückblick & Szenario
• Erinnerung: FI-Grundlagen
–
–
–
–
–
Zuverlässigkeitsaspekte von Software
Was ist FI?
Fehlermodelle
Welche Techniken gibt es?
Verwandt: Fehlertoleranz
• Anwendungsziele von FI:
– Güte von Fehlertoleranz-Mechanismen bestimmen
– Zuverlässigkeit von Software testen
– Identifikation von Schwachstellen
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
3
1. Einleitung ≫ Szenario
Begriffe (1)
• Fehlermodell (hier) immer
– Transiente Single-Bitflips
– In Register und/oder Speicher
• Statische Instruktion 𝐼𝑠 vs. dynamische Instanzen 𝐼𝑑
x86-Assembler:
C++-Code:
int i = 0;
while (i < 10) {
test(i++);
}•
Statische Instruktionen
⟹ 𝟏:𝑵-Beziehung
4004d2:
4004d9:
4004db:
4004de:
4004e2:
4004e4:
4004e9:
4004ed:
4004f0:
4004f2:
movl
jmp
mov
addl
mov
callq
cmpl
setle
test
jne
Ausführung:
4004d2:
4004d9:
4004e9:
4004ed:
4004f0:
4004f2:
4004db:
4004de:
4004e2:
4004e4:
4004e9:
…
movl
jmp
cmpl
setle
test
jne
mov
addl
mov
callq
cmpl
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
Dynamische
Instanzen
4
1. Einleitung ≫ Szenario
Begriffe (2)
• Golden-Run
– Protokoll eines fehlerfreien Durchlaufs (Trace)
– mit vordefinierter fester Testeingabe
– Gewinnt Menge der 𝐼𝑑
• Fehlerraum ℱ = alle möglichen Fehler
– Festgelegt durch „wann“ (Instruktionen) und „wo“ (Hardware)
– Beispiel (x86):
8048700: add $0xa,%eax
8048702: mov %eax,0x14(%esp)
Wann (PC)
Wo (Register)
• Rechenbeispiel (1D-FFT, x86) mit
𝐼𝑑 = 548.000.000
– Annahme: nur 9 „Basisregister“ (eax, edx, …), je 32 Bit
⟹ ≈ 548.000.000 ⋅ 9 ⋅ 32 = 157.824.000.000 Fehler!
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
5
1. Einleitung ≫ Szenario
Begriffe (3)
• Auswirkung von Fehlern: Fehler 𝑓𝑖 …
– … hat keinen Effekt (Maskierung)
– … wird erkannt (Detektion)
– … bewirkt Systemänderung (Silent-Data-Corruption)
⟹ kann zur Fehlerraumreduktion genutzt werden!
• Maß für die Robustheit einer Software? → kleine SDC-Rate!
– Für stat. Instruktion 𝐼𝑠 :
𝑐 𝐼𝑠 ≔
𝜒 𝑏, 𝐼𝑑
∀ 𝐼𝑑 ∀ 𝑏 ∈ 𝑟 𝐼𝑑
– Für gesamte Software 𝑆:
1
cSDC (S) ≔
⋅
ℱ
𝑐(𝐼𝑠 )
Indikatorfunktion für
SDC bei FI in 𝑏 mit 𝐼𝑑
∀𝐼𝑠
– Klar: Soll bei Optimierungen berechenbar bleiben …
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
6
1. Einleitung ≫ Problemstellung
Problem & Lösungsidee
• Problem: Fehlerraum zu groß
– 158 Mrd. Experimente praktisch nicht machbar
• Praxisbeispiel: ~170 Mio. Experimente
– Dauer: „Mehrere Tage“ @3584 Cores
• Wo können Optimierungen ansetzen?
– Art und Weise der FI beschleunigen
– Menge der Experimente reduzieren
• Optimierungen sollten Ziele nicht einschränken
– Beispiel: Fehler nur „sinnvoll“ reduzieren
⟹ keine Schwachstellen verstecken
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
7
Übersicht
1. Einleitung
•
•
Szenario
Problemstellung
2. Konzepte eines FI-Frameworks
•
•
Struktur & Ablauf
Motivation: Optimierungen
3. Reduktion des Fehlerraums
•
•
•
Klassifikation von Verfahren
Exakte Verfahren
Heuristisches Verfahren
4. Bewertung der Verfahren
•
•
Effektivität: Reduktionsfaktor
Genauigkeit der Heuristik
5. Diskussion
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
8
2. Konzepte eines FI-Frameworks ≫ Struktur & Ablauf
Fehlerinjektionstechniken
• Varianten (von FI):
– Hardware-basiert
– Software-basiert
– Simulator-basiert
• Abstraktionsebenen (des FI-Ziels):
– Gatter-Ebene
– Mikroarchitektur-Ebene
– Architektur-Ebene
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
9
2. Konzepte eines FI-Frameworks ≫ Struktur & Ablauf
Generische Sicht: FI-Framework
(Simulator-basiert)
Ziel-Software
Testeingaben
Nebenbedingungen
Erzeugung der Fehlerliste mit Golden-Run
Schwerpunkt 1
Datenbank
initiale Fehlerliste
Table 1
Table 2
Table 3
Optimierung der Fehlermenge
Table 4
Schwerpunkt 2
Statistiken
Analyse
Simulation
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
10
2. Konzepte eines FI-Frameworks ≫ Motivation: Optimierungen
Motivation: Optimierungen (1)
• Mögliche Lösung: Fehlerraum gleichverteilt samplen
– Kann Fehler nach Belieben reduzieren
– Übersieht aber potentielle Schwachstellen
Speicher [KiB]
5
4
3
2
1
= FI-Experiment(e)
SDC?
Instruktionen 𝐼𝑑
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
11
2. Konzepte eines FI-Frameworks ≫ Motivation: Optimierungen
Motivation: Optimierungen (1)
• Mögliche Lösung: Fehlerraum gleichverteilt samplen
– Kann Fehler nach Belieben reduzieren
– Übersieht aber potentielle Schwachstellen
Speicher [KiB]
5
4
3
… eher ungeeignet!
Jetzt: Optimierung der FI-Infrastruktur
2
1
= FI-Experiment(e)
SDC?
Instruktionen 𝐼𝑑
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
12
2. Konzepte eines FI-Frameworks ≫ Motivation: Optimierungen
Beschleunigungskonzepte: Framework (1)
• Parallelität nutzen
– Experimente parallel (und verteilt) ausführen
– Ergebnisse lokal zusammenführen
• Viele (gleichverteilte) Snapshots verwenden
– Speichere viele Simulationszustände (Checkpoints 𝒞)
– Injektion von 𝑓𝑖𝑡 : Lade 𝑐 𝑡 ∈ 𝒞 mit 𝑡 < 𝑡
– Trade-Off: |𝒞| ∼ Speicherplatz ∼
𝑐𝑡
Start:
0
100
𝑡
1
Intervallgröße
𝑓𝑖
𝑡
300
400
500
Instruktionen 𝐼𝑑
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
13
2. Konzepte eines FI-Frameworks ≫ Motivation: Optimierungen
Beschleunigungskonzepte: Framework (2)
• „Modifikation“ des Simulatorcodes (z. B. durch Aspekte)
– Simulator-Code muss verfügbar sein
– Ermöglicht hohe Effizienz
– Keine (?) Simulator-Anpassung nötig (AOP-abhängig)
• Früheres Simulationsende
– Wann darf eine Simulation eig. enden?
… nachdem Target durchgelaufen ist (exakt)
… für weitere 𝑛 Instruktionen ab 𝑡 nach FI von 𝑓𝑖𝑡
… Tests in exponentiellen Zeitschritten 1, 2, 4, …
Heuristiken
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
14
Übersicht
1. Einleitung
•
•
Szenario
Problemstellung
2. Konzepte eines FI-Frameworks
•
•
Struktur & Ablauf
Motivation: Optimierungen
3. Reduktion des Fehlerraums
•
•
•
Klassifikation von Verfahren
Exakte Verfahren
Heuristisches Verfahren
4. Bewertung der Verfahren
•
•
Effektivität: Reduktionsfaktor
Genauigkeit der Heuristik
5. Diskussion
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
15
3. Reduktion des Fehlerraums ≫ Klassifikation von Verfahren
Klassifikation: Fault-Space-Pruning
• Mögliche Klassifikation:
1.
2.
Ergebnisvorhersage-basiert (known-outcome-based)
Äquivalenzklassen-basiert (equivalence-based)
a) Exakt
b) Heuristisch
• Allgemeine Ideen der Techniken:
– Keine Fehler simulieren, deren Ausgang vorhergesagt werden kann
– Möglichst viele „gleichartige“ Fehler finden
– „Gleichartig“ über Heuristiken definieren
• Jetzt: Verfahren zum Fault-Space-Pruning
– i. W. Architektur-unabhängig
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
16
3. Reduktion des Fehlerraums ≫ Exakte Verfahren
Ergebnisvorhersage-basiert: Adressgrenzen
• Idee: Einige Fehler in Speicheradressen sind detektierbar
a) Zugriffe auf ungültige Adressen → Segmentation Fault
b) Zugriffe auf gültige Adressen → FI-Experiment nötig
Ausnutzen!
• Verfahren:
– Ermittle gültigen Adressbereich 𝐵 (Stack + Heap) mit Golden-Run
– Deklariere alle Fehler 𝑓𝑖 in Speicheradressen 𝛼 ∉ 𝐵 als detektiert
– Anwendbar auf Load- und Store-Instruktionen
• Auf Sprunginstruktionen übertragbar:
– Sprünge, deren Ziele nicht in .text liegen, sind detektierbar
– Problematisch: Sprünge in dyn. Bibliotheken
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
17
3. Reduktion des Fehlerraums ≫ Exakte Verfahren
Äquivalenzklassen-basiert: Def-Use-Analyse (1)
• Betrachte:
– Schreibzugriff auf ein Register 𝑟 zu Zeit 𝑡
– Lesezugriff auf 𝑟 zu Zeit t ∗ > 𝑡
(W)
(R)
• Idee: FI in 𝑟 bei 𝑡 äquivalent zu FI in 𝑟 bei 𝑡 ∗
W
0x43: r1 = r2 + r3
0x45: r4 = r1 + r5
R
• D.h.: Instruktionen auf Register 𝑟 …
– … vor einem R bis zum letzten W zusammenfassen → äquivalent
– … vor einem W bis zum letzten R ignorieren → bekannt
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
18
3. Reduktion des Fehlerraums ≫ Exakte Verfahren
Äquivalenzklassen-basiert: Def-Use-Analyse (2)
Register
• Beispiel: Bei 32-Bit Registern → 256 FI weniger!
𝑟3
R
W
𝑟2
W
𝑟1
𝑡1
W
R
𝑡2
𝑡3
W
R
W
W
W
𝑡4
R
𝑡5
R
W
R
R
𝑡9
𝑡10
𝑡11
R
𝑡6
𝑡7
𝑡8
Instruktionen 𝐼𝑑
• Beachte: Mehrere R's mit versch. Fehler-Propagationen möglich
• Bisher nur auf Registern betrachtet
– Klar: Auf Speicherzugriffe erweiterbar
• Beobachtung: Exaktes Verfahren!
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
19
3. Reduktion des Fehlerraums ≫ Heuristisches Verfahren
Äquivalenzklassen-basiert: Kontrollpfade (1)
• Beobachtungen:
– Fehler, die durch ähnlichen Code propagieren, verhalten sich ähnlich
– Mehrfachausführung von Code: Fehlerw.k. steigt
• Idee:
– Betrachte 𝐼𝑠 mit vielen 𝐼𝑑 im Golden-Run
– Teile 𝐼𝑑 in Äquivalenzklassen auf Basis des Kontrollpfades nach 𝐼𝑑
– Führe FI nur für Repräsentanten der Klassen durch
• Verfahren:
– Zähle alle Pfade 𝑝 ∈ 𝒫, 𝑝 ≤ 𝑛 ab Basisblock von 𝐼𝑑 auf
– … durch dynamische Analyse des Golden-Run
– 𝑛 ≔ #Sprunginstruktionen (Heuristik)
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
20
3. Reduktion des Fehlerraums ≫ Heuristisches Verfahren
Äquivalenzklassen-basiert: Kontrollpfade (2)
• Beispiel (CFG):
∈ 𝐼𝑑
1
2
4
3
5
unbesucht
6
besucht
7
8
Kontrollpfade 𝒫 mit 𝑛 = 5:
− 1→2→5→6→7→8
− 1→2→5→6→7→1
− 1→3→7→8
− 1→3→7→1→2→5
− 1→3→7→1→3→7
⇒ 5 Äquivalenzklassen
• Verfahren (Forts.):
– Population 𝒬𝑖 : Pfade 𝑝 ∈ 𝒫, die mehrfach ausgeführt werden
– Pilot 𝑝⋆ : Wähle zufälligen Pfad ∈ 𝒬𝑖
– Verwerfe alle Pfade 𝑝 ∈ 𝒬𝑖 ∖ 𝑝⋆ → Reduktion!
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
21
3. Reduktion des Fehlerraums ≫ Heuristisches Verfahren
Äquivalenzklassen-basiert: Kontrollpfade (3)
• Beispiel (Forts.):
– Betrachte Pfad 𝑝𝑖 = 1 → 2 → 5 → 6 → 7 → 8 und FI in 𝐼𝑑
1
3
2
5
4
6
7
8
Ann.: 𝑝𝑖 wird 1.000x durchlaufen
− Etwa weil:
i=0; i<1000;
for (int i=999;
i=1;
i=2;
i=3;
i<1000;
i++)
i++)
{ {
// ...
}
− 𝒬𝑖 entspricht diesen Pfaden
− Wähle zufälligen Pilot 𝑝⋆
⇒ FI in Reg.-Bits von 𝐼𝑑 für 𝑝⋆
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
22
3. Reduktion des Fehlerraums ≫ Heuristisches Verfahren
Äquivalenzklassen-basiert: Kontrollpfade (4)
• Beobachtung: Heuristisches Verfahren!
• Implementierung auf Basisblock-Ebene
• Anwendbar auf alle Instruktionen außer
– … Load/Store
– … solche, die Load/Store beeinflussen
⟹ Fehlerpropagation auch von Adressen (in Load) abhängig
• Ausblick: Speicheräquivalenz-Heuristik
– Idee: Fehler in Store ähnlich, falls Werte ähnlich benutzt werden
– Ähnelt der Kontrollpfadäquivalenz
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
23
Übersicht
1. Einleitung
•
•
Szenario
Problemstellung
2. Konzepte eines FI-Frameworks
•
•
Struktur & Ablauf
Motivation: Optimierungen
3. Reduktion des Fehlerraums
•
•
•
Klassifikation von Verfahren
Exakte Verfahren
Heuristisches Verfahren
4. Bewertung der Verfahren
•
•
Effektivität: Reduktionsfaktor
Genauigkeit der Heuristik
5. Diskussion
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
24
4. Bewertung der Verfahren ≫ Effektivität: Reduktionsfaktor
Bewertungsgrundlage der Verfahren
• Ziel war: Reduktion des Fehlerraums
• Bewertungsgrundlage
–
–
–
–
SPARC v9-Architektur
12 Applikationen aus 3 versch. Benchmarks
Kontext: Physik / Informatik / Mathematik
Optimierte vs. unoptimierte Kompilate
• Eckdaten
– Anzahl der 𝐼𝑑 : 22,3 Millionen – 4,57 Milliarden
– Kardinalität von ℱ: 1,9 – 500,4 Milliarden
– Beispiele: FFT, GCC, Water, Ocean, …
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
25
4. Bewertung der Verfahren ≫ Effektivität: Reduktionsfaktor
Ergebnisse (Auswahl)
• ∅ 99,78% aller Experimente reduziert, meistens 99,99%
– Größenordnung 3 – 6 für die meisten Anwendungen
• 0,004% der Fehler repräsentieren 99% aller Fehler!
• Reduktionsraten bei unoptimierten Anwendungen (viel) höher
– Beispiel (FFT)
optimiert: 48,7 Mrd. (initial) → 0,3 Mio. (reduziert)
unoptimiert: 61,18 Mrd. (initial) → 0,16 Mio. (reduziert)
• Verfahrensanteile an Gesamtreduktion:
27%
15%
10%
48%
Adressgrenzen
Def-Use-Analyse
Speicheräquivalenz
Kontrolläquivalenz
(optimiert)
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
26
4. Bewertung der Verfahren ≫ Genauigkeit von Heuristiken
Bewertungsmodell der Genauigkeit
• Wie genau repräsentieren die Piloten ihre Population?
– Beispiel: FI in Pilot → maskiert, FI in 𝒬 → 98 % maskiert, 2 % SDC
⟹ Genauigkeit 98 %
• Gesamtgenauigkeit: Gewichteter ∅ aller Piloten mit 𝒬
• Praktisch unmöglich: „FI in 𝒬“!
• Alternative (machbar):
– Population zufällig abtasten
– Nur in jedes 8-te Bit injizieren
– Beschränke Piloten, sodass #Simulationen ≈ 1 Mio.
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
27
4. Bewertung der Verfahren ≫ Genauigkeit von Heuristiken
Ergebnisse (Auswahl)
• ∅ 96% Genauigkeit über Kontroll- und Speicheräquivalenz
– Beinhaltet Vorhersage-basierte Techniken
⟹ 100 % Genauigkeit!
• Speziell für Kontrolläquivalenz:
– 95,7 % für FI in Register
– 94,5 % für FI in Adressregister
• Pro Anwendung über alle Techniken gemittelt: > 91 %
• Schwachstelle:
– Beschränkung auf Basisblock-Ebene
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
28
4. Bewertung der Verfahren ≫ Genauigkeit von Heuristiken
Zusammenfassung & Fazit
• Optimierungsziele waren:
1.
2.
Reduktion des Fehlerraums
Beschleunigung der Experimente
• Kernideen waren:
– Fehlerauswirkung vorherzusagen oder
– Fehler in Äquivalenzklassen einteilen
• Ergebnisse:
– Hohe Reduktionsraten erzielbar (… ggf. mit Heuristiken)
– Stark abhängig vom Kontext (Compiler, Target, Verfahren)
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
29
Übersicht
1. Einleitung
•
•
Szenario
Problemstellung
2. Konzepte eines FI-Frameworks
•
•
Struktur & Ablauf
Motivation: Optimierungen
3. Reduktion des Fehlerraums
•
•
•
Klassifikation von Verfahren
Exakte Verfahren
Heuristisches Verfahren
4. Bewertung der Verfahren
•
•
Effektivität: Reduktionsfaktor
Genauigkeit der Heuristik
5. Diskussion
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
30
5. Diskussion
Diskussion
Vielen Dank für die Aufmerksamkeit!
Fragen? Anmerkungen? Kritik?
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
31
Literaturverzeichnis
Literatur & Quellen (1)
WICHTIGSTE GRUNDLAGE DES VORTRAGS:
•
„Relyzer: Exploiting Application-Level Fault Equivalence to Analyze
Application Resiliency to Transient Faults”; S. K. S. Hari, S. V. Adve, H. Naeimi
und P. Ramachandran; Proceedings of the 17th international conference on
Architectural Support for Programming Languages and Operating Systems
(ASPLOS '12), http://rsim.cs.illinois.edu/Pubs/12-ASPLOS-Hari.pdf
WEITERE QUELLEN:
•
•
•
„Fault-list collapsing for fault-injection experiments“; A. Benso, M. Rebaudengo, L.
Impagliazzo und P. Marmo; Proceedings of the Annual Reliability und Maintainability
Symposium, 1998; http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=653808
„FAIL*: Towards a Versatile Fault-Injection Experiment Framework“; H. Schirmeier, M.
Hoffmann, R. Kapitza, D. Lohmann und O. Spinczyk; 25th International Conference on
Architecture of Computing Systems (ARCS '12), 2012;
http://danceos.org/publications/VERFE-2012-Schirmeier.pdf
„New Techniques for Speeding-up Fault-injection Campaigns“; L. Berrojo, I. González,
F. Corno, M. Sonza Reorda, G. Squillero, L. Entrena und C. Lopez; Proceedings of the
conference on Design, automation and test in Europe, 2002; http://www.dateconference.com/proceedings/PAPERS/2002/DATE02/PDFFILES/08D_4.PDF
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
32
Literaturverzeichnis
Literatur & Quellen (2)
WEITERE QUELLEN:
•
„Investigating the limitations of PVF for realistic program vulnerability
assessment“; B. Döbel, H. Schirmeier und M. Engel. In Proceedings of the 5rd
HiPEAC Workshop on Design for Reliability (DFR '13), Berlin, Germany, Jan. 2013;
http://danceos.org/publications/HiPEAC-DFR-2013-Doebel.pdf
A. Böckenkamp: Optimierungstechniken für FI-Experimente (SFt)
33