Probabilistic Calling Context
|
|
- Stephany Olivia Terry
- 6 years ago
- Views:
Transcription
1 Probabilistic Calling Context Michael D. Bond Kathryn S. McKinley University of Texas at Austin Why Context Sensitivity? Static program location not enough at com.mckoi.db.jdbcserver.jdbcinterface.execquery():213 1
2 Why Context Sensitivity? Static program location not enough at com.mckoi.db.jdbcserver.jdbcinterface.execquery():213 at com.mckoi.db.jdbc.mconnection.executequery():348 at com.mckoi.db.jdbc.mstatement.executequery():11 at com.mckoi.db.jdbc.mstatement.executequery():127 at Test.main():48 Why Context Sensitivity? Static program location not enough at com.mckoi.db.jdbcserver.jdbcinterface.execquery():213 at com.mckoi.db.jdbc.mconnection.executequery():348 at com.mckoi.db.jdbc.mstatement.executequery():11 at com.mckoi.db.jdbc.mstatement.executequery():127 at Test.main():48 Motivated by Complex programs Small methods Virtual dispatch 2
3 Why Context Sensitivity? Static program location not enough at com.mckoi.db.jdbcserver.jdbcinterface.execquery():213 at com.mckoi.db.jdbc.mconnection.executequery():348 at com.mckoi.db.jdbc.mstatement.executequery():11 at com.mckoi.db.jdbc.mstatement.executequery():127 at Test.main():48 Motivated by Complex programs Small methods Virtual dispatch C/Fortran method call return Java/C# method return call Context Is Nontrivial Program antlr bloat chart eclipse fop hsqldb jython luindex lusearch pmd xalan Call sites 4,184 3,36 2,335 9,611 2, , ,89 1,53 API calls Distinct contexts 128,627 6,947 22,63 226,2 37,71 16,5 628,48 12, ,18 17,95 3
4 Example: Residual Testing Does behavior occur at production time that did not occur at testing time? class SimpleWindow { close() { class EditorWindow { close() { Example: Residual Testing Does behavior occur at production time that did not occur at testing time? autoupdate() { class SimpleWindow { close() { for all windows w w.close(); inputhandler() { class EditorWindow { case CLICK_EXIT: close() { w.checkunsaved(); w.close(); 4
5 Example: Residual Testing Does behavior occur at production time that did not occur at testing time? autoupdate() { class SimpleWindow { close() { for all windows w w.close(); inputhandler() { case CLICK_EXIT: w.checkunsaved(); w.close(); class EditorWindow { close() { Bug! Example: Residual Testing Does behavior occur at production time that did not occur at testing time? autoupdate() { class SimpleWindow { close() { for all windows w New behavior indicates bugs w.close(); inputhandler() { class EditorWindow { find new behavior case CLICK_EXIT: close() { w.checkunsaved(); Bug! w.close(); Context sensitivity helps 5
6 Two-Phase Dynamic Analyses Training Production Behavior observed New or anomalous behavior detected Two-Phase Dynamic Analyses Residual testing What behavior occurs at production time that did not occur at testing time? [Vaswani et al. 7] Anomaly-based bug detection What new behavior occurs during a buggy program run? [Hangal & Lam 2] Anomaly-based intrusion detection Does a program exhibit anomalous behavior? [Inoue 5] Training Production Behavior observed New or anomalous behavior detected 6
7 Probabilistic Calling Context Adds context sensitivity to dynamic analyses Maintains value representing context Unique with high probability New value new context walk stack High accuracy: <.1% false negatives Low overhead: 3% overhead, -8% for clients Training Production Behavior observed New or anomalous behavior detected Outline Introduction Previous approaches Maintaining the PCC value Evaluation Accuracy Performance 7
8 Previous Approaches Tracking context [Ammons et al. 97] [Spivey 4] Maintain CCT position at each call/return Walking the stack [Nethercote & Seward 7] Path profiling [Ball & Larus 96] [Melski & Reps 99] Call graphs large path explosion Virtual dispatch complicates instrumentation Previous Approaches Tracking context [Ammons et al. 97] [Spivey 4] Maintain CCT position at each call/return Walking the stack [Nethercote & Seward 7] Path profiling [Ball & Larus 96] [Melski & Reps 99] Call graphs large path explosion Virtual dispatch complicates instrumentation Sampling [Zhuang et al. 6] Sacrifices coverage for low overhead 8
9 Outline Introduction Previous approaches Maintaining the PCC value Evaluation Accuracy Performance PCC Function f ( V, cs ) V is PCC value cs is call site ID 9
10 PCC Function f ( V, cs ) V is PCC value cs is call site ID cs 1 V f ( V, cs 1 ) cs V f ( V, cs 2 ) 2 V V saved V V saved PCC Function f ( V, cs ) 3V + cs (mod 2 32 ) V is PCC value cs is call site ID 1
11 PCC Function f ( V, cs ) 3V + cs (mod 2 32 ) Motivated by MPI datatype hashing [Langou et al. 5] [Gropp ] Cheap to compute Desirable properties: Non-commutative Composition efficient to compute Differentiating Similar Contexts A V 3V + cs 1 V 3V + cs 2 B C V 3V + cs 2 A B V 3V + cs 1 C A() B() B() A() 11
12 Differentiating Similar Contexts A V 3V + cs 1 V 3V + cs 2 B C V 3V + cs 2 A B V 3V + cs 1 C Non-commutative f ( f (V, cs 1 ), cs 2 ) f ( f (V, cs 2 ), cs 1 ) Efficiency at Inlined Calls A V 3V + cs 1 B V 3V + cs 2 C 12
13 Efficiency at Inlined Calls A V 3V + cs 1 A B V 3V + cs 2 C B V 3 ( 3V + cs 1 ) + cs 2 C Efficiency at Inlined Calls A V 3V + cs 1 A B V 3V + cs 2 C B V 9V + 3cs 1 + cs 2 C 13
14 Efficiency at Inlined Calls A V 3V + cs 1 A B V 3V + cs 2 C B V 9V + 3cs 1 + cs 2 C Composition efficient to compute n n i f ( V, cs ) = 3 V + 3 cs i i i Outline Introduction Previous approaches Maintaining the PCC value Evaluation Methodology Evaluating potential clients Accuracy Performance 14
15 Methodology Implementation in Jikes RVM Available on Jikes RVM Research Archive Deterministic calling context profiling Maintains CCT node at each call & return Benchmarks: DaCapo, SPEC JBB2, SPEC JVM98 Platform: 3.6 GHz Pentium 4 w/linux How Clients Use PCC Record values New value new context walk stack Training Production Behavior observed New or anomalous behavior detected 15
16 Evaluating Potential Clients Record values Training Global hash table Check values (no new values) Production Behavior observed New or anomalous behavior detected Evaluating Potential Clients Memory overhead: proportional to contexts Record values Training Global hash table Check values (no new values) Production Behavior observed New or anomalous behavior detected 16
17 Evaluating Potential Clients Anomaly-based intrusion detection Check PCC value at system calls (Network, I/O, OS) Residual testing Check PCC value at Java API calls (calls to java.*) Upper bound Check PCC value at all calls Ideal Accuracy PCC maps context to value New PCC value new context Familiar PCC value probably familiar context 17
18 Ideal Accuracy PCC maps context to value New PCC value new context Familiar PCC value probably familiar context Expected conflicts (false negatives) Distinct contexts 1, 1,, 1,, 1,, 1,,, 1,,, 32-bit values 1 (.%) 116 (.%) 11,632 (.1%) 1,155,17 (1.2%) 17,882,641 (1.8%) 6,123,623,65 (61.2%) 64-bit values (.%) (.%) (.%) (.%) (.%) 3 (.%) Ideal Accuracy PCC maps context to value New PCC value new context Familiar PCC value probably familiar context Expected conflicts (false negatives) Distinct contexts 32-bit values 64-bit values 1, 1,, API calls 1 (.%) 116 (.%) (.%) (.%) 1,, 11,632 (.1%) (.%) 1,, 1,,, 1,,, 1,155,17 (1.2%) 17,882,641 (1.8%) 6,123,623,65 (61.2%) (.%) (.%) 3 (.%) 18
19 Ideal Accuracy PCC maps context to value New PCC value new context Familiar PCC value probably familiar context Expected conflicts (false negatives) Distinct contexts 32-bit values 1, 1 (.%) 1,, 116 (.%) 1,, 11,632 (.1%) 64-bit values (.%) (.%) All calls (.%) 1,, 1,155,17 (1.2%) (.%) 1,,, 17,882,641 (1.8%) (.%) 1,,, 6,123,623,65 (61.2%) 3 (.%) Ideal Accuracy PCC maps context to value New PCC value new context Familiar PCC value probably familiar context Expected conflicts (false negatives) Distinct contexts 32-bit values 64-bit values 1, 1 (.%) (.%) 1,, 116 (.%) (.%) Near-perfect 1,, 11,632 (.1%) accuracy (.%) 1,, 1,155,17 (1.2%) (.%) 1,,, 17,882,641 (1.8%) (.%) 1,,, 6,123,623,65 (61.2%) 3 (.%) 19
20 2 PCC s Accuracy 17,95 2,15,838, ,895 xalan ,18 537,17, ,45 pmd ,511, lusearch 12,556 39,733, ,615 luindex ,48 543,845,772 4,289 5,929 jython 16,5 81,161, hsqldb 37,71 9,918, fop 5 226,2 132,57, ,11 eclipse 4 22,63 258,891, chart 4 6,947 1,159,281, bloat 3 128,627 24,422,13 1, ,49 antlr Conf. Distinct Dynamic Conf. Distinct Dynamic Program Java API calls System calls PCC s Accuracy 17,95 2,15,838, ,895 xalan ,18 537,17, ,45 pmd ,511, lusearch 12,556 39,733, ,615 luindex ,48 543,845,772 4,289 5,929 jython 16,5 81,161, hsqldb 37,71 9,918, fop 5 226,2 132,57, ,11 eclipse 4 22,63 258,891, chart 4 6,947 1,159,281, bloat 3 128,627 24,422,13 1, ,49 antlr Conf. Distinct Dynamic Conf. Distinct Dynamic Program Java API calls System calls
21 PCC s Accuracy Program antlr bloat chart eclipse fop hsqldb jython luindex lusearch pmd xalan Dynamic 49,363,211 6,276,446,59 98,459,469 1,266,81,54 44,2, ,68,667 5,326,949,158 74,53,14 1,439,34,336 2,726,876,957 1,83,858,546 All calls Distinct 1,6,578 1,98,25 845,432 4,815,91 174,955 11,795 3,859, ,21 6,39 8,43,96 163,25 Conf , , ,653 6 PCC s Execution Time Overhead DaCapo SPEC All 6 5 Overhead (%) PCC 3% PCC + system calls 21
22 PCC s Execution Time Overhead DaCapo SPEC All 6 5 Overhead (%) % PCC PCC + system calls PCC + API calls PCC + all calls Summary PCC maintains calling context value New value indicates new behavior Low overhead Maintaining PCC value adds 3% Checking PCC value -8% Memory overhead proportional to contexts High accuracy Less than.1% false negative rate PCC adds context sensitivity to clients that detect anomalous behavior 22
23 Summary Thank you! PCC maintains calling context value New value indicates new behavior Low overhead Maintaining PCC value adds 3% Checking PCC value -8% Memory overhead proportional to contexts High accuracy Less than.1% false negative rate PCC adds context sensitivity to clients that detect anomalous behavior Extra slides 23
24 Context Sensitivity Mostly Unused Do paths capture enough behavior? C/Fortran method call call return Java/C# method return 24
Program Calling Context. Motivation
Program alling ontext Motivation alling context enhances program understanding and dynamic analyses by providing a rich representation of program location ollecting calling context can be expensive The
More informationTowards Parallel, Scalable VM Services
Towards Parallel, Scalable VM Services Kathryn S McKinley The University of Texas at Austin Kathryn McKinley Towards Parallel, Scalable VM Services 1 20 th Century Simplistic Hardware View Faster Processors
More informationHow s the Parallel Computing Revolution Going? Towards Parallel, Scalable VM Services
How s the Parallel Computing Revolution Going? Towards Parallel, Scalable VM Services Kathryn S McKinley The University of Texas at Austin Kathryn McKinley Towards Parallel, Scalable VM Services 1 20 th
More informationLu Fang, University of California, Irvine Liang Dou, East China Normal University Harry Xu, University of California, Irvine
Lu Fang, University of California, Irvine Liang Dou, East China Normal University Harry Xu, University of California, Irvine 2015-07-09 Inefficient code regions [G. Jin et al. PLDI 2012] Inefficient code
More informationA Dynamic Evaluation of the Precision of Static Heap Abstractions
A Dynamic Evaluation of the Precision of Static Heap Abstractions OOSPLA - Reno, NV October 20, 2010 Percy Liang Omer Tripp Mayur Naik Mooly Sagiv UC Berkeley Tel-Aviv Univ. Intel Labs Berkeley Tel-Aviv
More informationEfficient Runtime Tracking of Allocation Sites in Java
Efficient Runtime Tracking of Allocation Sites in Java Rei Odaira, Kazunori Ogata, Kiyokuni Kawachiya, Tamiya Onodera, Toshio Nakatani IBM Research - Tokyo Why Do You Need Allocation Site Information?
More informationBugs in Deployed Software
Bell: Bit-Encoding Online Memory Leak Detection Michael D. Bond Kathryn S. McKinley University of Texas at Austin Bugs in Deployed Software Humans rely on software for critical tasks Bugs are costly &
More informationA Trace-based Java JIT Compiler Retrofitted from a Method-based Compiler
A Trace-based Java JIT Compiler Retrofitted from a Method-based Compiler Hiroshi Inoue, Hiroshige Hayashizaki, Peng Wu and Toshio Nakatani IBM Research Tokyo IBM Research T.J. Watson Research Center April
More informationIdentifying the Sources of Cache Misses in Java Programs Without Relying on Hardware Counters. Hiroshi Inoue and Toshio Nakatani IBM Research - Tokyo
Identifying the Sources of Cache Misses in Java Programs Without Relying on Hardware Counters Hiroshi Inoue and Toshio Nakatani IBM Research - Tokyo June 15, 2012 ISMM 2012 at Beijing, China Motivation
More informationAdaptive Multi-Level Compilation in a Trace-based Java JIT Compiler
Adaptive Multi-Level Compilation in a Trace-based Java JIT Compiler Hiroshi Inoue, Hiroshige Hayashizaki, Peng Wu and Toshio Nakatani IBM Research Tokyo IBM Research T.J. Watson Research Center October
More informationLightweight Data Race Detection for Production Runs
Lightweight Data Race Detection for Production Runs Swarnendu Biswas, UT Austin Man Cao, Ohio State University Minjia Zhang, Microsoft Research Michael D. Bond, Ohio State University Benjamin P. Wood,
More informationEfficient Context Sensitivity for Dynamic Analyses via Calling Context Uptrees and Customized Memory Management
to Reuse * * Evaluated * OOPSLA * Artifact * AEC Efficient Context Sensitivity for Dynamic Analyses via Calling Context Uptrees and Customized Memory Management Jipeng Huang Michael D. Bond Ohio State
More informationToward Efficient Strong Memory Model Support for the Java Platform via Hybrid Synchronization
Toward Efficient Strong Memory Model Support for the Java Platform via Hybrid Synchronization Aritra Sengupta, Man Cao, Michael D. Bond and Milind Kulkarni 1 PPPJ 2015, Melbourne, Florida, USA Programming
More informationChronicler: Lightweight Recording to Reproduce Field Failures
Chronicler: Lightweight Recording to Reproduce Field Failures Jonathan Bell, Nikhil Sarda and Gail Kaiser Columbia University, New York, NY USA What happens when software crashes? Stack Traces Aren
More informationPhosphor: Illuminating Dynamic. Data Flow in Commodity JVMs
Phosphor: Illuminating Dynamic Fork me on Github Data Flow in Commodity JVMs Jonathan Bell and Gail Kaiser Columbia University, New York, NY USA Dynamic Data Flow Analysis: Taint Tracking Output that is
More informationElfen Scheduling. Fine-Grain Principled Borrowing from Latency-Critical Workloads using Simultaneous Multithreading (SMT) Xi Yang
Elfen Scheduling Fine-Grain Principled Borrowing from Latency-Critical Workloads using Simultaneous Multithreading (SMT) Xi Yang Australian National University Stephen M Blackburn Australian National University
More informationGC Assertions: Using the Garbage Collector to Check Heap Properties
GC Assertions: Using the Garbage Collector to Check Heap Properties Edward E. Aftandilian Samuel Z. Guyer Department of Computer Science Tufts University {eaftan,sguyer}@cs.tufts.edu Abstract This paper
More informationPhase-based Adaptive Recompilation in a JVM
Phase-based Adaptive Recompilation in a JVM Dayong Gu Clark Verbrugge Sable Research Group, School of Computer Science McGill University, Montréal, Canada {dgu1, clump}@cs.mcgill.ca April 7, 2008 Sable
More informationFree-Me: A Static Analysis for Automatic Individual Object Reclamation
Free-Me: A Static Analysis for Automatic Individual Object Reclamation Samuel Z. Guyer, Kathryn McKinley, Daniel Frampton Presented by: Jason VanFickell Thanks to Dimitris Prountzos for slides adapted
More informationJinn: Synthesizing Dynamic Bug Detectors for Foreign Language Interfaces
Jinn: Synthesizing Dynamic Bug Detectors for Foreign Language Interfaces Byeongcheol Lee Ben Wiedermann Mar>n Hirzel Robert Grimm Kathryn S. McKinley B. Lee, B. Wiedermann, M. Hirzel, R. Grimm, and K.
More informationTolerating Memory Leaks
Tolerating Memory Leaks UT Austin Technical Report TR-07-64 December 7, 2007 Michael D. Bond Kathryn S. McKinley Department of Computer Sciences The University of Texas at Austin {mikebond,mckinley}@cs.utexas.edu
More informationUnderstanding Parallelism-Inhibiting Dependences in Sequential Java
Understanding Parallelism-Inhibiting Dependences in Sequential Java Programs Atanas(Nasko) Rountev Kevin Van Valkenburgh Dacong Yan P. Sadayappan Ohio State University Overview and Motivation Multi-core
More informationTrace-based JIT Compilation
Trace-based JIT Compilation Hiroshi Inoue, IBM Research - Tokyo 1 Trace JIT vs. Method JIT https://twitter.com/yukihiro_matz/status/533775624486133762 2 Background: Trace-based Compilation Using a Trace,
More informationZ-Rays: Divide Arrays and Conquer Speed and Flexibility
Z-Rays: Divide Arrays and Conquer Speed and Flexibility Jennifer B. Sartor Stephen M. Blackburn Daniel Frampton Martin Hirzel Kathryn S. McKinley University of Texas at Austin Australian National University
More informationUncovering Performance Problems in Java Applications with Reference Propagation Profiling
Uncovering Performance Problems in Java Applications with Reference Propagation Profiling Dacong Yan 1 Guoqing Xu 2 Atanas Rountev 1 1 Department of Computer Science and Engineering, Ohio State University
More informationTowards Garbage Collection Modeling
Towards Garbage Collection Modeling Peter Libič Petr Tůma Department of Distributed and Dependable Systems Faculty of Mathematics and Physics, Charles University Malostranské nám. 25, 118 00 Prague, Czech
More informationThe DaCapo Benchmarks: Java Benchmarking Development and Analysis
The DaCapo Benchmarks: Java Benchmarking Development and Analysis Stephen M Blackburn αβ, Robin Garner β, Chris Hoffmann γ, Asjad M Khan γ, Kathryn S McKinley δ, Rotem Bentzur ε, Amer Diwan ζ, Daniel Feinberg
More informationAverroes: Letting go of the library!
Workshop on WALA - PLDI 15 June 13th, 2015 public class HelloWorld { public static void main(string[] args) { System.out.println("Hello, World!"); 2 public class HelloWorld { public static void main(string[]
More informationContinuous Object Access Profiling and Optimizations to Overcome the Memory Wall and Bloat
Continuous Object Access Profiling and Optimizations to Overcome the Memory Wall and Bloat Rei Odaira, Toshio Nakatani IBM Research Tokyo ASPLOS 2012 March 5, 2012 Many Wasteful Objects Hurt Performance.
More informationLegato: Bounded Region Serializability Using Commodity Hardware Transactional Memory. Aritra Sengupta Man Cao Michael D. Bond and Milind Kulkarni
Legato: Bounded Region Serializability Using Commodity Hardware al Memory Aritra Sengupta Man Cao Michael D. Bond and Milind Kulkarni 1 Programming Language Semantics? Data Races C++ no guarantee of semantics
More informationPERFBLOWER: Quickly Detecting Memory-Related Performance Problems via Amplification
PERFBLOWER: Quickly Detecting Memory-Related Performance Problems via Amplification Lu Fang 1, Liang Dou 2, and Guoqing Xu 1 1 University of California, Irvine, USA {lfang3, guoqingx}@ics.uci.edu 2 East
More informationImmix: A Mark-Region Garbage Collector with Space Efficiency, Fast Collection, and Mutator Performance
Immix: A Mark-Region Garbage Collector with Space Efficiency, Fast Collection, and Mutator Performance Stephen M. Blackburn Australian National University Steve.Blackburn@anu.edu.au Kathryn S. McKinley
More informationJava Performance Evaluation through Rigorous Replay Compilation
Java Performance Evaluation through Rigorous Replay Compilation Andy Georges Lieven Eeckhout Dries Buytaert Department Electronics and Information Systems, Ghent University, Belgium {ageorges,leeckhou}@elis.ugent.be,
More information1 Scalable Runtime Bloat Detection Using Abstract Dynamic Slicing
1 Scalable Runtime Bloat Detection Using Abstract Dynamic Slicing GUOQING XU, University of California, Irvine NICK MITCHELL, IBM T. J. Watson Research Center MATTHEW ARNOLD, IBM T. J. Watson Research
More informationNDSeq: Runtime Checking for Nondeterministic Sequential Specs of Parallel Correctness
EECS Electrical Engineering and Computer Sciences P A R A L L E L C O M P U T I N G L A B O R A T O R Y NDSeq: Runtime Checking for Nondeterministic Sequential Specs of Parallel Correctness Jacob Burnim,
More informationAdaptive Optimization using Hardware Performance Monitors. Master Thesis by Mathias Payer
Adaptive Optimization using Hardware Performance Monitors Master Thesis by Mathias Payer Supervising Professor: Thomas Gross Supervising Assistant: Florian Schneider Adaptive Optimization using HPM 1/21
More informationHybrid Static-Dynamic Analysis for Statically Bounded Region Serializability
Hybrid Static-Dynamic Analysis for Statically Bounded Region Serializability Aritra Sengupta, Swarnendu Biswas, Minjia Zhang, Michael D. Bond and Milind Kulkarni ASPLOS 2015, ISTANBUL, TURKEY Programming
More informationIBM Research - Tokyo 数理 計算科学特論 C プログラミング言語処理系の最先端実装技術. Trace Compilation IBM Corporation
数理 計算科学特論 C プログラミング言語処理系の最先端実装技術 Trace Compilation Trace JIT vs. Method JIT https://twitter.com/yukihiro_matz/status/533775624486133762 2 Background: Trace-based Compilation Using a Trace, a hot path identified
More informationDoubleChecker: Efficient Sound and Precise Atomicity Checking
DoubleChecker: Efficient Sound and Precise Atomicity Checking Swarnendu Biswas, Jipeng Huang, Aritra Sengupta, and Michael D. Bond The Ohio State University PLDI 2014 Impact of Concurrency Bugs Impact
More informationNew Algorithms for Static Analysis via Dyck Reachability
New Algorithms for Static Analysis via Dyck Reachability Andreas Pavlogiannis 4th Inria/EPFL Workshop February 15, 2018 A. Pavlogiannis New Algorithms for Static Analysis via Dyck Reachability 2 A. Pavlogiannis
More informationDynamic Analysis of Inefficiently-Used Containers
Dynamic Analysis of Inefficiently-Used Containers Shengqian (Victor) Yang 1 Dacong Yan 1 Guoqing Xu 2 Atanas Rountev 1 1 Ohio State University 2 University of California, Irvine PRESTO: Program Analyses
More informationPart I Garbage Collection Modeling: Progress Report
Part I Garbage Collection Modeling: Progress Report Peter Libič Department of Distributed and Dependable Systems http://d3s.mff.cuni.cz CHARLES UNIVERSITY PRAGUE Faculty of Mathematics and Physics Last
More informationEfficient Runtime Tracking of Allocation Sites in Java
Efficient Runtime Tracking of Allocation Sites in Java Rei Odaira, Kazunori Ogata, Kiyokuni Kawachiya, Tamiya Onodera, Toshio Nakatani IBM Research Tokyo 623-4, Shimotsuruma, Yamato-shi, Kanagawa-ken,
More informationPointer Analysis in the Presence of Dynamic Class Loading
Pointer Analysis in the Presence of Dynamic Class Loading Martin Hirzel, Amer Diwan University of Colorado at Boulder Michael Hind IBM T.J. Watson Research Center 1 Pointer analysis motivation Code a =
More informationScreaming Fast Declarative Pointer Analysis
Screaming Fast Declarative Pointer Analysis http://doop.program-analysis.org Martin Bravenboer and Yannis Smaragdakis University of Massachusetts Amherst University of Oregon NEPLS March 5, 2008 overview
More informationLarge-Scale API Protocol Mining for Automated Bug Detection
Large-Scale API Protocol Mining for Automated Bug Detection Michael Pradel Department of Computer Science ETH Zurich 1 Motivation LinkedList pinconnections =...; Iterator i = pinconnections.iterator();
More informationToward Efficient Strong Memory Model Support for the Java Platform via Hybrid Synchronization
Toward Efficient Strong Memory Model Support for the Java Platform via Hybrid Synchronization Aritra Sengupta Man Cao Michael D. Bond Milind Kulkarni Ohio State University Purdue University {sengupta,caoma,mikebond}@cse.ohio-state.edu
More informationAcknowledgements These slides are based on Kathryn McKinley s slides on garbage collection as well as E Christopher Lewis s slides
Garbage Collection Last time Compiling Object-Oriented Languages Today Motivation behind garbage collection Garbage collection basics Garbage collection performance Specific example of using GC in C++
More informationLeveraging Test Generation and Specification Mining for Automated Bug Detection without False Positives
Leveraging Test Generation and Specification Mining for Automated Bug Detection without False Positives Michael Pradel and Thomas R. Gross Department of Computer Science ETH Zurich 1 Motivation API usage
More informationComplex, concurrent software. Precision (no false positives) Find real bugs in real executions
Harry Xu May 2012 Complex, concurrent software Precision (no false positives) Find real bugs in real executions Need to modify JVM (e.g., object layout, GC, or ISA-level code) Need to demonstrate realism
More informationDetecting and Fixing Memory-Related Performance Problems in Managed Languages
Detecting and Fixing -Related Performance Problems in Managed Languages Lu Fang Committee: Prof. Guoqing Xu (Chair), Prof. Alex Nicolau, Prof. Brian Demsky University of California, Irvine May 26, 2017,
More informationTail Latency: Beyond Queuing Theory. Kathryn S McKinley Xi Yang, Stephen M Blackburn, Sameh Elnikety, Yuxiong He, Ricardo Bianchini
Tail Latency: Beyond Queuing Theory Kathryn S McKinley Xi Yang, Stephen M Blackburn, Sameh Elnikety, Yuxiong He, Ricardo Bianchini Microsoft s Quincy datacenter 3 Servers in US datacenters 2 Servers in
More informationCGO:U:Auto-tuning the HotSpot JVM
CGO:U:Auto-tuning the HotSpot JVM Milinda Fernando, Tharindu Rusira, Chalitha Perera, Chamara Philips Department of Computer Science and Engineering University of Moratuwa Sri Lanka {milinda.10, tharindurusira.10,
More informationLeak Pruning. 1. Introduction. Abstract. Department of Computer Sciences The University of Texas at Austin
Leak Pruning Michael D. Bond Kathryn S. McKinley Department of Computer Sciences The University of Texas at Austin {mikebond,mckinley}@cs.utexas.edu Abstract Managed languages improve programmer productivity
More informationLightweight Data Race Detection for Production Runs
Lightweight Data Race Detection for Production Runs Ohio State CSE Technical Report #OSU-CISRC-1/15-TR01; last updated August 2016 Swarnendu Biswas Ohio State University biswass@cse.ohio-state.edu Michael
More informationDynamic Vertical Memory Scalability for OpenJDK Cloud Applications
Dynamic Vertical Memory Scalability for OpenJDK Cloud Applications Rodrigo Bruno, Paulo Ferreira: INESC-ID / Instituto Superior Técnico, University of Lisbon Ruslan Synytsky, Tetiana Fydorenchyk: Jelastic
More informationReplicating Real-Time Garbage Collector
Replicating Real-Time Garbage Collector Tomas Kalibera Purdue University, West Lafayette, IN 47907, USA; Charles University, Prague, 147 00, Czech Republic SUMMARY Real-time Java is becoming a viable platform
More informationMicroPhase: An Approach to Proactively Invoking Garbage Collection for Improved Performance
MicroPhase: An Approach to Proactively Invoking Garbage Collection for Improved Performance Feng Xian, Witawas Srisa-an, and Hong Jiang Department of Computer Science & Engineering University of Nebraska-Lincoln
More informationCorrecting the Dynamic Call Graph Using Control Flow Constraints
Correting the Dynmi Cll Grph Using Control Flow Constrints Byeongheol Lee Kevin Resnik Mihel Bond Kthryn MKinley 1 Appered in CC2007 Motivtion Complexity of lrge objet oriented progrms Deompose the progrm
More informationUsing Managed Runtime Systems to Tolerate Holes in Wearable Memories
Using Managed Runtime Systems to Tolerate Holes in Wearable Memories Tiejun Gao Karin Strauss Stephen M. Blackburn Kathryn S. McKinley Doug Burger James Larus Australian National University {tiejun.gao,steve.blackburn}@anu.edu.au
More informationJazz: A Tool for Demand-Driven Structural Testing
Jazz: A Tool for Demand-Driven Structural Testing J. Misurda, J. A. Clause, J. L. Reed, P. Gandra, B. R. Childers, and M. L. Soffa Department of Computer Science University of Pittsburgh Pittsburgh, Pennsylvania
More informationOn The Limits of Modeling Generational Garbage Collector Performance
On The Limits of Modeling Generational Garbage Collector Performance Peter Libič Lubomír Bulej Vojtěch Horký Petr Tůma Department of Distributed and Dependable Systems Faculty of Mathematics and Physics,
More informationThe Potentials and Challenges of Trace Compilation:
Peng Wu IBM Research January 26, 2011 The Potentials and Challenges of Trace Compilation: Lessons learned from building a trace-jit on top of J9 JVM (Joint work with Hiroshige Hayashizaki and Hiroshi Inoue,
More informationMyths and Realities: The Performance Impact of Garbage Collection
Myths and Realities: The Performance Impact of Garbage Collection Tapasya Patki February 17, 2011 1 Motivation Automatic memory management has numerous software engineering benefits from the developer
More informationMemory Monitoring in a Multi-tenant OSGi Execution Environment
Memory Monitoring in a Multi-tenant OSGi Execution Environment Koutheir Attouchi, Gaël Thomas, André Bottaro, Gilles Muller To cite this version: Koutheir Attouchi, Gaël Thomas, André Bottaro, Gilles Muller.
More informationKazunori Ogata, Dai Mikurube, Kiyokuni Kawachiya and Tamiya Onodera
RT0854 Computer Science 13 pages Research Report April 27, 2009 A Study of Java s non-java Memory Kazunori Ogata, Dai Mikurube, Kiyokuni Kawachiya and Tamiya Onodera IBM Research, Tokyo Research Laboratory
More informationIntelligent Compilation
Intelligent Compilation John Cavazos Department of Computer and Information Sciences University of Delaware Autotuning and Compilers Proposition: Autotuning is a component of an Intelligent Compiler. Code
More informationThe RV System Tutorial
The RV System Tutorial Patrick Meredith and Grigore Rosu joint work with Feng Chen, Dongyun Jin, Dennis Griffith, Michael Ilseman Runtime Verification, Inc. University of Illinois The RV System!"#$%&'(%)!"#*)+,'-(!9&('/+
More informationCachetor: Detecting Cacheable Data to Remove Bloat
Cachetor: Detecting Cacheable Data to Remove Bloat Khanh Nguyen and Guoqing Xu University of California, Irvine, CA, USA {khanhtn, guoqingx}@ics.uci.edu ABSTRACT Modern object-oriented software commonly
More informationPerformance Impact of Multithreaded Java Server Applications
Performance Impact of Multithreaded Java Server Applications Yue Luo, Lizy K. John Laboratory of Computer Architecture ECE Department University of Texas at Austin 1/2/01 1 Outline Motivation VolanoMark
More informationCopyright by Jennifer Bedke Sartor 2010
Copyright by Jennifer Bedke Sartor 2010 The Dissertation Committee for Jennifer Bedke Sartor certifies that this is the approved version of the following dissertation: Exploiting Language Abstraction to
More informationLecture 10. Dynamic Analysis
Lecture 10. Dynamic Analysis Wei Le Thank Xiangyu Zhang, Michael Ernst, Tom Ball for Some of the Slides Iowa State University 2014.11 Outline What is dynamic analysis? Instrumentation Analysis Representing
More informationJIT Compilation Policy for Modern Machines
JIT Compilation Policy for Modern Machines Prasad A. Kulkarni Department of Electrical Engineering and Computer Science, University of Kansas prasadk@ku.edu Abstract Dynamic or Just-in-Time (JIT) compilation
More informationDeriving Code Coverage Information from Profiling Data Recorded for a Trace-based Just-in-time Compiler
Deriving Code Coverage Information from Profiling Data Recorded for a Trace-based Just-in-time Compiler Christian Häubl Institute for System Software Johannes Kepler University Linz Austria haeubl@ssw.jku.at
More informationFinding the Limit: Examining the Potential and Complexity of Compilation Scheduling for JIT-Based Runtime Systems
Finding the Limit: Examining the Potential and Complexity of Compilation Scheduling for JIT-Based Runtime Systems Yufei Ding, Mingzhou Zhou, Zhijia Zhao, Sarah Eisenstat, Xipeng Shen Computer Science Department,
More informationPACER: Proportional Detection of Data Races
PACER: Proportional Detection of Data Races Michael D. Bond Katherine E. Coons Kathryn S. McKinley Department of Computer Science, The University of Texas at Austin {mikebond,coonske,mckinley}@cs.utexas.edu
More informationDELTAPATH: PRECISE AND SCALABLE CALLING CONTEXT ENCODING
DELTAPATH: PRECISE AND SCALABLE CALLING CONTEXT ENCODING Qiang Zeng*, Junghwan Rhee, Hui Zhang, Nipun Arora, Guofei Jiang, Peng Liu* NEC Laboratories America *Penn State University www.nec-labs.com Calling
More informationCopyright by Ivan Jibaja 2015
Copyright by Ivan Jibaja 2015 The Dissertation Committee for Ivan Jibaja certifies that this is the approved version of the following dissertation: Exploiting Hardware Heterogeneity and Parallelism for
More informationMethod-Specific Dynamic Compilation using Logistic Regression
Method-Specific Dynamic Compilation using Logistic Regression John Cavazos Michael F.P. O Boyle Member of HiPEAC Institute for Computing Systems Architecture (ICSA), School of Informatics University of
More informationLightweight Data Race Detection for Production Runs
Lightweight Data Race Detection for Production Runs Swarnendu Biswas University of Texas at Austin (USA) sbiswas@ices.utexas.edu Man Cao Ohio State University (USA) caoma@cse.ohio-state.edu Minjia Zhang
More informationMethod-Level Phase Behavior in Java Workloads
Method-Level Phase Behavior in Java Workloads Andy Georges, Dries Buytaert, Lieven Eeckhout and Koen De Bosschere Ghent University Presented by Bruno Dufour dufour@cs.rutgers.edu Rutgers University DCS
More informationCompact and Efficient Strings for Java
Compact and Efficient Strings for Java Christian Häubl, Christian Wimmer, Hanspeter Mössenböck Institute for System Software, Christian Doppler Laboratory for Automated Software Engineering, Johannes Kepler
More informationSoftware Challenges: Abstraction and Analysis
Software Challenges: Abstraction and Analysis Martin Bravenboer University of Massachusetts Amherst University of Oregon April 2, 2009 University of Waterloo my research 1 the design and implementation
More informationStatic Java Program Features for Intelligent Squash Prediction
Static Java Program Features for Intelligent Squash Prediction Jeremy Singer,, Adam Pocock, Mikel Lujan, Gavin Brown, Nikolas Ioannou, Marcelo Cintra Thread-level Speculation... Aim to use parallel multi-core
More informationAn Efficient Storeless Heap Abstraction Using SSA Form
An Efficient Storeless Heap Abstraction Using SSA Form Nomair A. Naeem Ondřej Lhoták D. R. Cheriton School of Computer Science University of Waterloo, Canada {nanaeem,olhotak}@uwaterloo.ca Abstract Precise,
More informationString Deduplication for Java-based Middleware in Virtualized Environments
String Deduplication for Java-based Middleware in Virtualized Environments Michihiro Horie, Kazunori Ogata, Kiyokuni Kawachiya, Tamiya Onodera IBM Research - Tokyo Duplicated strings found on Web Application
More informationContext-sensitive points-to analysis: is it worth it?
McGill University School of Computer Science Sable Research Group Context-sensitive points-to analysis: is it worth it? Sable Technical Report No. 2005-2 Ondřej Lhoták Laurie Hendren October 21, 2005 w
More informationBoosting the Priority of Garbage: Scheduling Collection on Heterogeneous Multicore Processors
Boosting the Priority of Garbage: Scheduling Collection on Heterogeneous Multicore Processors SHOAIB AKRAM, Ghent University JENNIFER B. SARTOR, Ghent University and Vrije Universiteit Brussel KENZO VAN
More informationUsing Prefetching to Improve Reference-Counting Garbage Collectors
Using Prefetching to Improve Reference-Counting Garbage Collectors Harel Paz 1 and Erez Petrank 2 1 IBM Haifa Research Laboratory, Mount Carmel, Haifa 31905, ISRAEL. 2 Microsoft Research, One Microsoft
More informationJava Heap Resizing From Hacked-up Heuristics to Mathematical Models. Jeremy Singer and David R. White
Java Heap Resizing From Hacked-up Heuristics to Mathematical Models Jeremy Singer and David R. White Outline Background Microeconomic Theory Heap Sizing as a Control Problem Summary Outline Background
More informationUsing Prefetching to Improve Reference-Counting Garbage Collectors
Using Prefetching to Improve Reference-Counting Garbage Collectors Harel Paz 1, and Erez Petrank 2, 1 IBM Haifa Research Laboratory, Mount Carmel, Haifa 31905, Israel paz@il.ibm.com 2 Microsoft Research,
More informationJinn: Synthesizing a Dynamic Bug Detector for Foreign Language Interfaces
UT Austin Computer Science Technical Report TR-09-39. Under double-blind submission to PLDI 2010. Jinn: Synthesizing a Dynamic Bug Detector for Foreign Language Interfaces Byeongcheol Lee University of
More informationOur Experiences with Optimizations in Sun s Java Just-In-Time Compilers
Journal of Universal Computer Science, vol. 12, no. 7 (2006), 788-810 submitted: 28/1/06, accepted: 6/4/06, appeared: 28/7/06 J.UCS Our Experiences with Optimizations in Sun s Java Just-In-Time Compilers
More informationScheduling Hard Real-time Garbage Collection
Scheduling Hard Real-time Garbage Collection Tomas Kalibera, Filip Pizlo, Antony L. Hosking, Jan Vitek Purdue University Abstract Managed languages such as Java and C# are increasingly being considered
More informationValor: Efficient, Software-Only Region Conflict Exceptions
Valor: Efficient, Software-Only Region Conflict Exceptions Swarnendu Biswas PhD Student, Ohio State University biswass@cse.ohio-state.edu Abstract Data races complicate programming language semantics,
More informationA Quantitative Evaluation of the Contribution of Native Code to Java Workloads
A Quantitative Evaluation of the Contribution of Native Code to Java Workloads Walter Binder University of Lugano Switzerland walter.binder@unisi.ch Jarle Hulaas, Philippe Moret EPFL Switzerland {jarle.hulaas,philippe.moret}@epfl.ch
More informationAugmenting Static Source Views in IDEs with Dynamic Metrics
Augmenting Static Source Views in IDEs with Dynamic Metrics David Röthlisberger 1, Marcel Härry 1, Alex Villazón 2, Danilo Ansaloni 2, Walter Binder 2, Oscar Nierstrasz 1, Philippe Moret 2 1 Software Composition
More informationContinuous Path and Edge Profiling
Continuous Path and Edge Profiling Michael D. Bond Kathryn S. McKinley Dept. of Computer Sciences, University of Texas at Austin E-mail: {mikebond,mckinley}@cs.utexas.edu Abstract Microarchitectures increasingly
More informationAutomated Documentation Inference to Explain Failed Tests
Automated Documentation Inference to Explain Failed Tests Sai Zhang University of Washington Joint work with: Cheng Zhang, Michael D. Ernst A failed test reveals a potential bug Before bug-fixing, programmers
More informationImplementing Higher-Level Languages. Quick tour of programming language implementation techniques. From the Java level to the C level.
Implementing Higher-Level Languages Quick tour of programming language implementation techniques. From the Java level to the C level. Ahead-of-time compiler compile time C source code C compiler x86 assembly
More information