Presentation is loading. Please wait.

Presentation is loading. Please wait.

Determina, Inc. Persisting Information Across Application Executions Derek Bruening Determina, Inc.

Similar presentations


Presentation on theme: "Determina, Inc. Persisting Information Across Application Executions Derek Bruening Determina, Inc."— Presentation transcript:

1 Determina, Inc. Persisting Information Across Application Executions Derek Bruening Determina, Inc.

2 Determina, Inc. 2 Dynamic vs. Static Program Analysis Dynamic analysis has advantages: –Access to entire app: libraries, generated code –Visibility on exact use cases (data used and control flow followed) –Applicable to any binary But…costly to do –Analysis cost is part of the runtime of the app –Analysis is applied every time the app is run

3 Determina, Inc. 3 Analysis Challenges Monitoring values of application variables is performance-intensive –Transparent instrumentation expensive on x86 –May need to monitor more than just function parameters Difficult to obtain enough data from short- lived applications

4 Determina, Inc. 4 Solution: Persistent Data Store results from prior application executions on disk Instrument different part of application in each run to keep costs down Combine results of each new run with stored data Once have enough data for analysis, send to central server

5 Determina, Inc. 5 Common Persistence Infrastructure Underlying execution engine can also benefit from persistence Can share the same validation and consistency models to ensure persisted state corresponds to current application code and behavior

6 Determina, Inc. 6 Managed Program Execution Engine Manipulate, at runtime, every instruction an arbitrary application executes, with: –Minimal performance penalty –Full transparency Exports interface for building custom tools No modifications to the hardware, operating system, or application Foundation of Determina Memory Firewall

7 Determina, Inc. 7 executable Native Execution library Alibrary B hardware platform APPLICATION

8 Determina, Inc. 8 Execute From Code Cache hardware platform code cache EXECUTION ENGINE executablelibrary Alibrary B APPLICATION

9 Determina, Inc. 9 basic block builder trace selector START dispatch context switch BASIC BLOCK CACHE TRACE CACHE non-control-flow instructions indirect branch lookup indirect branch stays on trace? Managed Program Execution Engine

10 Determina, Inc. 10 Non-Amortized Overhead In steady-state, overhead is amortized Overhead does show up in non-steady-state: –Application start-up –Short-lived applications –Extensive new code execution Not an issue on servers (long-running apps) A major issue on desktops –Startup time is directly visible and perceived as a slowdown

11 Determina, Inc. 11 Traces Combine frequently executed sequences of basic blocks into traces –Superior code layout –Eliminate indirect branches Traces provide ~10% performance boost on longer-running applications Will they help startup performance, with its once-executed code?

12 Determina, Inc. 12 Solution: Persistent Code Cache Goals: –Improve start-up performance –Support process-shared code caches Challenges: –Re-design data structures to support persistence –Efficiently validate persisted files –Safely allow persistent file updates

13 Determina, Inc. 13 Prototype Implementation Supports both no-traces mode and trace building mode Persists at end of run to application-specific files, loaded in for the next run Does not support relocation Validates only the module base

14 Determina, Inc. 14 Per-Module Caches hardware platform cache execache libAcache libB EXECUTION ENGINE executablelibrary Alibrary B APPLICATION

15 Determina, Inc. 15 Persistent Caches hardware platform cache execache libAcache libB EXECUTION ENGINE executablelibrary Alibrary B APPLICATION cache exe cache libA cache libB PERSISTED CACHES

16 Determina, Inc. 16 Persistent Caches hardware platform cache execache libAcache libB executablelibrary Alibrary B APPLICATION cache exe cache libA cache libB PERSISTED CACHES EXECUTION ENGINE

17 Determina, Inc. 17 Summary Persisting information across application executions has many advantages –Reduce overhead –Enable inter-process sharing –Enable accumulation of data from multiple runs for broader view of application with less instrumentation or in presence of varying workloads Many challenges remain


Download ppt "Determina, Inc. Persisting Information Across Application Executions Derek Bruening Determina, Inc."

Similar presentations


Ads by Google