Parallel Assertion Processing using Memory...
Transcript of Parallel Assertion Processing using Memory...
![Page 1: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/1.jpg)
Parallel Assertion Processing using Memory Snapshots
Junaid Haroon Siddiqui Muhammad Faisal Iqbal
Derek Chiou
UCAS526 April 2009
![Page 2: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/2.jpg)
Motivation
• Importance of Assertions
• Parallel Assertion Processing
• Memory Snapshots
![Page 3: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/3.jpg)
Importance of Assertions
• Assertions are important in catching bugs early
• Some assertions are costly like validating class invariants
• Consider validating a binary tree
• Limited use due to Performance penalty and serial nature
![Page 4: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/4.jpg)
Parallel Assertion Processing
• We propose costly assertions be executed in parallel
• Potentially increase efficiency
• Two issues
• Retaining state of memory for assertion
• Programmer’s view of assertions
![Page 5: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/5.jpg)
Memory Snapshots
• We propose memory snapshots
• Low cost snapshot at assertion point
• Maintain snapshot with copy-on-write
• Performance benefits depend on workload characteristics
![Page 6: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/6.jpg)
Outline
• Parallel Assertion Processing
• User Interface to Memory Snapshots
• Implementation of Memory Snapshots
• Evaluation & Results
• Future Work & Conclusions
![Page 7: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/7.jpg)
Parallel Assertion Processing
• Assertion Task Queue
• Steps at Assertion Point
• Steps at Assertion Task Processing
• Processor Allocation for Assertion Task
![Page 8: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/8.jpg)
Assertion Task Queue
• Fixed Size Circular Buffer
• Predicate is the assertion routine
• Data is an address passed to that routine
• Snapshot id identifies the snapshot to be used
![Page 9: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/9.jpg)
Steps at Assertion Point
• Take Snapshot
• Blocking?
• Optional & Compulsory Assertions
• Enqueue Assertion Task
![Page 10: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/10.jpg)
Steps at Assertion Task Processing
• Dequeue Assertion Task
• Evaluate Assertion
• Possible Halt
• Rollback?
• Release Snapshot
![Page 11: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/11.jpg)
Processor Allocation for Assertion Task
• Many models exist once assertion and its processing are decoupled
• Dedicated threads with Processor affinity
• Low priority task in global work queue
• Event handler serving own assertions after signaling completion
![Page 12: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/12.jpg)
User Interface to Memory Snapshots
• Accessing Snapshots by Memory Mapping
• Accessing Snapshots by Virtual Address
• Accessing Snapshots from a Software Library
![Page 13: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/13.jpg)
Accessing Snapshots by Memory Mapping
• System call like mmap void* mmap_snapshot(void* p, size_t len)
• Flexibility of smaller snapshots
• Practically need snapshot of whole heap
• Overhead of kernel setting up page tables for copy-on-write
![Page 14: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/14.jpg)
Accessing Snapshot by Virtual Address bits
• Reserve bits for snapshot identifier
• No unused bits even in 64-bit processors
• Using valid bits means OS has to change address space model
• Kernel can setup these at fault time
![Page 15: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/15.jpg)
Accessing Snapshots from a Software Library• Added cost on software
developer
• High availability being in software
• Snapshot Manager
• Modify Notifications
• Assertion Queue
class snapshot_manager { snapshot_id take(bool block); void release(snapshot_id id); void modify_notification(void* p, size_t len); void* read_ptr(void* p, snapshot_id id);};class assertion_queue { assertion_queue(snapshot_manager& sm); bool queue(predicate_type pred, void* data, bool block); bool process(bool block);};
![Page 16: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/16.jpg)
Implementation of Memory Snapshots
• Snapshots of Physical Address Space
• Snapshots of Virtual Address Space
• Snapshots User Library
![Page 17: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/17.jpg)
• Use physical address space bits
• Practical for 64-bit machines
• Snapshot register to identify active snapshots
• Divide memory in blocks for copy-on-write
• Snapshot Cache for historical copies
Snapshots of Physical Address Space
![Page 18: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/18.jpg)
Snapshot Cache
• When snapshot taken
• When memory is written
• When snapshot released
![Page 19: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/19.jpg)
Snapshot Aware Cache
• Performance advantage of cache support
• Cache aware of snapshot identifier bits in physical address
• Every cache has its own snapshot register
• Broadcast changes to this register
• Every cache entry has a snapshot bit vector
![Page 20: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/20.jpg)
Behavior of Snapshot Aware Cache• When snapshot taken
• When data is read or written
• When data written, and other bits set
• When snapshot released
![Page 21: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/21.jpg)
Physical Address Space Snapshot Issues
• Limited Snapshot cache
• Performance dependency between applications
• Issues caused by paging
• Applications truly interested in snapshots of virtual address space
![Page 22: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/22.jpg)
Snapshots of Virtual Address Space
• Kernel runs the show
• All three user interfaces possible
• All based on setting up page table for copy-on-write operation
• Copy-on-write overhead
• Kernel support with software library?
![Page 23: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/23.jpg)
Snapshots User Library
• Snapshot Manager
• Snapshot cache in software map
• Read request
• Modify notifications
• Snapshots taken and released
• Assertion Queue
![Page 24: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/24.jpg)
Issues with Snapshots User Library
• Advantage is no change required in kernel or hardware
• Big performance overhead due to lookups
• Missing modify notification
• Hybrid software-kernel scheme?
![Page 25: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/25.jpg)
Evaluation & Results
• Two schemes evaluated
• Pure Software library with Software library interface
• Snapshots of physical address space with no User interface
![Page 26: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/26.jpg)
Software Library Approach
• Successful implementation
• Correctness verification done
• Performance results are disappointing
• Nature of Application?
![Page 27: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/27.jpg)
Physical Address SpaceSnapshots Approach
• Evaluated Gems but modifying functional behavior of memory probably not possible
• Evaluated PIN but changing every data accessed by an instruction probably not possible
• Evaluated M5 and it gave all the necessary flexibility
![Page 28: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/28.jpg)
Physical Address Space Snapshots in M5
• Added a snapshot cache to physical memory
• Altered physical memory controller
• Altered memtest to take and access snapshots
• Correctness testing done but no Performance testing
![Page 29: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/29.jpg)
Conclusions
• Extracting costly assertions from critical path can improve efficiency
• Exact performance benefit depends on many factors
• Our work most useful for high cost assertions and infrequent modifications
• Our works shows feasibility of this scheme
![Page 30: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/30.jpg)
Future Work
• Workload characterization where different schemes are most useful
• Support for Rollback to a snapshot
• Reverse Debugging?
• Software Controlled Rollback?
• Multiple active versions of memory
![Page 31: Parallel Assertion Processing using Memory Snapshotslca.ece.utexas.edu/people/iqbal/ucas5-slides.pdf · 2010-07-28 · Parallel Assertion Processing using Memory Snapshots Junaid](https://reader030.fdocuments.us/reader030/viewer/2022040203/5e8ddff27e2e7f3064097ba2/html5/thumbnails/31.jpg)
Questions?