340 likes | 400 Views
Optimierungsverfahren für Fehlerinjektionsexperimente. Adrian Böckenkamp (adrian.boeckenkamp @ tu-dortmund.de) Montag, 04. März 2013. Seminarvortrag: Softwarebasierte Fehlertoleranz. Veranstalter: Olaf Spinczyk, Horst Schirmeier , Christoph Borchert, Boguslaw Jablkowski.
E N D
Optimierungsverfahren für Fehlerinjektionsexperimente Adrian Böckenkamp (adrian.boeckenkamp@tu-dortmund.de) Montag, 04. März 2013 Seminarvortrag: Softwarebasierte Fehlertoleranz Veranstalter: Olaf Spinczyk, Horst Schirmeier, Christoph Borchert, Boguslaw Jablkowski
Agenda • Einleitung • Konzepte eines FI-Frameworks • Reduktion des Fehlerraums • Bewertung der Verfahren • Diskussion
Übersicht • Einleitung • Szenario • Problemstellung • Konzepte eines FI-Frameworks • Struktur & Ablauf • Motivation: Optimierungen • Reduktion des Fehlerraums • Klassifikation von Verfahren • Exakte Verfahren • Heuristisches Verfahren • Bewertung der Verfahren • Effektivität: Reduktionsfaktor • Genauigkeit der Heuristik • Diskussion
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
1. Einleitung Szenario Begriffe (1) • Fehlermodell (hier) immer • Transiente Single-Bitflips • In Register und/oder Speicher • Statische Instruktion vs. dynamische Instanzen Ausführung: x86-Assembler: 4004d2:movl 4004d9:jmp 4004e9:cmpl 4004ed:setle 4004f0:test 4004f2:jne 4004db:mov 4004de:addl 4004e2:mov 4004e4:callq 4004e9:cmpl … 4004d2:movl 4004d9:jmp 4004e9:cmpl 4004ed:setle 4004f0:test 4004f2:jne 4004db:mov 4004de:addl 4004e2:mov 4004e4:callq 4004e9:cmpl … 4004d2:movl 4004d9:jmp 4004db:mov 4004de:addl 4004e2:mov 4004e4:callq 4004e9:cmpl 4004ed:setle 4004f0:test 4004f2:jne 4004d2:movl 4004d9:jmp 4004db:mov 4004de:addl 4004e2:mov 4004e4:callq 4004e9:cmpl 4004ed:setle 4004f0:test 4004f2:jne C++-Code: int i = 0; while (i < 10) { test(i++); } Dynamische Instanzen Statische Instruktionen :-Beziehung
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): • Rechenbeispiel (1D-FFT, x86) mit • Annahme: nur 9 „Basisregister“ (eax, edx, …), je 32 Bit Fehler! 8048700: add$0xa,%eax 8048702: mov%eax,0x14(%esp) Wann (PC) Wo (Register)
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 : • Klar: Soll bei Optimierungen berechenbar bleiben … Indikatorfunktion für SDC bei FI in mit
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
Übersicht • Einleitung • Szenario • Problemstellung • Konzepte eines FI-Frameworks • Struktur & Ablauf • Motivation: Optimierungen • Reduktion des Fehlerraums • Klassifikation von Verfahren • Exakte Verfahren • Heuristisches Verfahren • Bewertung der Verfahren • Effektivität: Reduktionsfaktor • Genauigkeit der Heuristik • Diskussion
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
2. Konzepte eines FI-Frameworks Struktur & Ablauf Generische Sicht: FI-Framework (Simulator-basiert) Ziel-Software Testeingaben Nebenbedingungen Ziel-Software Testeingaben Nebenbedingungen Erzeugung der Fehlerliste mit Golden-Run Erzeugung der Fehlerliste mit Golden-Run Datenbank Datenbank initiale Fehlerliste initiale Fehlerliste Table 1 Table 1 Schwerpunkt 1 Table 2 Table 2 Optimierung der Fehlermenge Table 3 Table 3 Table 4 Table 4 Schwerpunkt 2 Analyse Analyse Simulation Statistiken Statistiken
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 5 4 3 Speicher [KiB] 2 SDC? 1 0x3000 0x4000 0x5000 0x2000 0x1000 Instruktionen FI-Experiment(e)
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 5 … eher ungeeignet! Jetzt:Optimierung der FI-Infrastruktur 4 3 Speicher [KiB] 2 SDC? 1 0x3000 0x4000 0x5000 0x2000 0x1000 Instruktionen FI-Experiment(e)
2. Konzepte eines FI-Frameworks Motivation: Optimierungen Beschleunigungskonzepte: Framework (1) • Parallelitätnutzen • Experimente parallel (und verteilt) ausführen • Ergebnisse lokal zusammenführen • Viele(gleichverteilte) Snapshotsverwenden • Speichere viele Simulationszustände (Checkpoints ) • Injektion von : Lade mit • Trade-Off: Speicherplatz Start: 0 100 300 400 500 Instruktionen
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
Übersicht • Einleitung • Szenario • Problemstellung • Konzepte eines FI-Frameworks • Struktur & Ablauf • Motivation: Optimierungen • Reduktion des Fehlerraums • Klassifikation von Verfahren • Exakte Verfahren • Heuristisches Verfahren • Bewertung der Verfahren • Effektivität: Reduktionsfaktor • Genauigkeit der Heuristik • Diskussion
3. Reduktion des Fehlerraums Klassifikation von Verfahren Klassifikation: Fault-Space-Pruning • Mögliche Klassifikation: • Ergebnisvorhersage-basiert (known-outcome-based) • Äquivalenzklassen-basiert (equivalence-based) • Exakt • 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
3. Reduktion des Fehlerraums Exakte Verfahren Ergebnisvorhersage-basiert: Adressgrenzen • Idee: Einige Fehler in Speicheradressen sind detektierbar • Zugriffe auf ungültige Adressen Segmentation Fault • Zugriffe auf gültige Adressen FI-Experiment nötig • 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 Ausnutzen!
3. Reduktion des Fehlerraums Exakte Verfahren Äquivalenzklassen-basiert: Def-Use-Analyse (1) • Betrachte: • Schreibzugriff auf ein Register zu Zeit (W) • Lesezugriff auf zu Zeit (R) • Idee: FI in bei äquivalent zu FI in bei • D.h.: Instruktionen auf Register … • … vor einem R bis zum letzten W zusammenfassen äquivalent • … vor einem W bis zum letzten R ignorieren bekannt W 0x43:r1 = r2 + r3 0x45: r4 = r1+ r5 R
3. Reduktion des Fehlerraums Exakte Verfahren Äquivalenzklassen-basiert: Def-Use-Analyse (2) • Beispiel: • Beachte: Mehrere R'smit versch. Fehler-Propagationen möglich • Bisher nur auf Registern betrachtet • Klar: Auf Speicherzugriffe erweiterbar • Beobachtung: Exaktes Verfahren! Bei 32-Bit Registern FI weniger! R R W W W R Register W R W W R R W R W R Instruktionen
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)
3. Reduktion des Fehlerraums Heuristisches Verfahren Äquivalenzklassen-basiert: Kontrollpfade(2) • Beispiel (CFG): • Verfahren (Forts.): • Population: Pfade , die mehrfach ausgeführt werden • Pilot: Wähle zufälligen Pfad • Verwerfe alle Pfade Reduktion! Kontrollpfade mit : 1 2 3 4 5 unbesucht 6 7 besucht 5 Äquivalenzklassen 8
3. Reduktion des Fehlerraums Heuristisches Verfahren Äquivalenzklassen-basiert: Kontrollpfade (3) • Beispiel (Forts.): • Betrachte Pfad und FI in Ann.: wird 1.000x durchlaufen • Etwa weil: • entspricht diesen Pfaden • Wähle zufälligen Pilot FI in Reg.-Bits von für 1 3 2 for(int i=0; i<1000; i++) { // ... } for(int i=3; i<1000; i++) { // ... } for(int i=999; i<1000; i++) { // ... } for(int i=2; i<1000; i++) { // ... } for(int i=1; i<1000; i++) { // ... } 5 4 6 7 8 ...
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
Übersicht • Einleitung • Szenario • Problemstellung • Konzepte eines FI-Frameworks • Struktur & Ablauf • Motivation: Optimierungen • Reduktion des Fehlerraums • Klassifikation von Verfahren • Exakte Verfahren • Heuristisches Verfahren • Bewertung der Verfahren • Effektivität: Reduktionsfaktor • Genauigkeit der Heuristik • Diskussion
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. unoptimierteKompilate • Eckdaten • Anzahl der : 22,3 Millionen – 4,57 Milliarden • Kardinalität von : 1,9 – 500,4 Milliarden • Beispiele: FFT, GCC, Water, Ocean, …
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: (optimiert)
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.
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
4. Bewertung der Verfahren Genauigkeit von Heuristiken Zusammenfassung & Fazit • Optimierungszielewaren: • 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)
Übersicht • Einleitung • Szenario • Problemstellung • Konzepte eines FI-Frameworks • Struktur & Ablauf • Motivation: Optimierungen • Reduktion des Fehlerraums • Klassifikation von Verfahren • Exakte Verfahren • Heuristisches Verfahren • Bewertung der Verfahren • Effektivität: Reduktionsfaktor • Genauigkeit der Heuristik • Diskussion
5. Diskussion Diskussion Vielen Dank für die Aufmerksamkeit! Fragen? Anmerkungen? Kritik?
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. Impagliazzound 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. SonzaReorda, G. Squillero, L. Entrena und C. Lopez; Proceedings of the conference on Design, automation and test in Europe, 2002; http://www.date-conference.com/proceedings/PAPERS/2002/DATE02/PDFFILES/08D_4.PDF
Literaturverzeichnis Literatur & Quellen (2) Weitere Quellen: • „Investigating the limitations of PVF for realistic program vulnerability assessment“; B. Döbel, H. Schirmeier und M. Engel. InProceedings of the 5rd HiPEAC Workshop on Design for Reliability (DFR '13), Berlin, Germany, Jan. 2013; http://danceos.org/publications/HiPEAC-DFR-2013-Doebel.pdf