Capo:
A Software-Hardware Interface for Practical Deterministic Multiprocessor Replay
Department of Computer Science University of Illinois at Urbana-Champaign
Capo: A Software-Hardware Interface for Practical Deterministic - - PowerPoint PPT Presentation
Capo: A Software-Hardware Interface for Practical Deterministic Multiprocessor Replay Pablo Montesinos, Matthew Hicks, Samuel T. King and Josep Torrellas Department of Computer Science University of Illinois at Urbana-Champaign 2 Motivation:
Department of Computer Science University of Illinois at Urbana-Champaign
Pablo Montesinos Capo: Practical Deterministic Replay of Multiprocessors
2
Pablo Montesinos Capo: Practical Deterministic Replay of Multiprocessors
3
Pablo Montesinos Capo: Practical Deterministic Replay of Multiprocessors
4
Library Compiler Virtual Machine Operating System Virtual Machine Monitor SW-based schemes
Pablo Montesinos Capo: Practical Deterministic Replay of Multiprocessors
5
Library Compiler Virtual Machine Operating System Virtual Machine Monitor Hardware-based schemes SW-based schemes
Pablo Montesinos Capo: Practical Deterministic Replay of Multiprocessors
6
Pablo Montesinos Capo: Practical Deterministic Replay of Multiprocessors
7
Pablo Montesinos Capo: Practical Deterministic Replay of Multiprocessors
Replay Sphere 2 Replaying
8
Replay Sphere 1 Recording
Replay Sphere 1 Recording Thread 103 Thread 128 Thread 26 R-thread 1 R-thread 2 R-thread 1 Thread 39 R-thread 3
CPU 1 CPU 2 CPU 3 CPU 4 Replay HW Replay Sphere Manager CPU 1 CPU 3 CPU 2 CPU 4
Pablo Montesinos Capo: Practical Deterministic Replay of Multiprocessors
9
Pablo Montesinos Capo: Practical Deterministic Replay of Multiprocessors
10
Pablo Montesinos Capo: Practical Deterministic Replay of Multiprocessors
11
Pablo Montesinos Capo: Practical Deterministic Replay of Multiprocessors
12
Sphere 1 Recording Sphere 2 Replaying Sphere 3 Recording (ready)
Replay Sphere Control Block Replay Sphere Control Block
Log 1 Log 2 Log 3
Replay Sphere Control Block Replay Sphere Control Block
Mode Log Pointers Mode Log Pointers
(running) (running)
Pablo Montesinos Capo: Practical Deterministic Replay of Multiprocessors
13
Pablo Montesinos Capo: Practical Deterministic Replay of Multiprocessors
14
Replay Sphere 1 - Recording
B Y E \0 Replay Sphere Manager
R-thread 1 R-thread 2 copy_to_user
H I ! \0
X = buf[2] buf[3] = Y read(&buf)
Log 1 Log 1
buf
Pablo Montesinos Capo: Practical Deterministic Replay of Multiprocessors
15
Pablo Montesinos Capo: Practical Deterministic Replay of Multiprocessors
16
Replay Sphere 1 Recording R-thread 1 R-thread 2 Replay Sphere Manager Log 1 ptrace new_copy_to_user Replay Sphere Manager
Replay Sphere Control Blocks R-thread Control Blocks
Pablo Montesinos Capo: Practical Deterministic Replay of Multiprocessors
17
Pablo Montesinos Capo: Practical Deterministic Replay of Multiprocessors
18
Pablo Montesinos Capo: Practical Deterministic Replay of Multiprocessors
19
1 2 3 4 SPLASH2-avg Apache-avg Compilation-avg Log Size (bits/kilo-instruction)
Pablo Montesinos Capo: Practical Deterministic Replay of Multiprocessors
20
1 2 SPLASH2-avg Apache-avg Compilation-avg Normalized Execution Time
Standard execution ptrace’s interposition overhead Rest of Replay Sphere Manager
Pablo Montesinos Capo: Practical Deterministic Replay of Multiprocessors
21
1 2 Record Replay Normalized Cycles
Execution Stall
Pablo Montesinos Capo: Practical Deterministic Replay of Multiprocessors
22
Department of Computer Science University of Illinois at Urbana-Champaign
Pablo Montesinos Capo: Practical Deterministic Replay of Multiprocessors
24
Proc 0
Commit Request Commit Request 7 3 Ok Ok CS Log A Size R-threadID = 7 R-threadID = 3 Chunk A
Proc 1
CS Log B Size Chunk B
Arbiter
RSID R-threadID
7
RSID R-threadID
1 3 Interleaving Logs
Pablo Montesinos Capo: Practical Deterministic Replay of Multiprocessors
25
Pablo Montesinos Capo: Practical Deterministic Replay of Multiprocessors
DMA
DMA Log
Network
Proc 0
PI Log CS Log Chunk A
Arbiter
Interrupt Log I/O Log
Proc 1
CS Log Chunk B Interrupt Log I/O Log
26
Pablo Montesinos Capo: Practical Deterministic Replay of Multiprocessors
27 DMA Network
Proc 0
PI Log CS Log Chunk A
Arbiter
Proc 1
CS Log Chunk B DMA Log Interrupt Log I/O Log Interrupt Log I/O Log Interleaving Log
Pablo Montesinos Capo: Practical Deterministic Replay of Multiprocessors
Replay Sphere 1 Replaying Replay Sphere 1 Replaying
28
R-thread 1 R-thread 2 read()
Log 1
fork()
OS
RSM
sys_fork thread 674 R-thread 3
Pablo Montesinos Capo: Practical Deterministic Replay of Multiprocessors
29
Page Table
Sphere 1
R-thread 1
mprotect X
R-thread 2
while(1){ *x = *x+1 }
CPU 1 CPU 2