Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdJohan de Wilde Laatst gewijzigd meer dan 8 jaar geleden
1
Studie en implementatie van input replay Cornelis Frank
2
INPUTPROCESSING OUTPUT Normaal verloop: Recording: INPUT PROCESSING OUTPUT RECORDING Replay: INPUTPROCESSINGOUTPUT REPLAY
3
Doel input replay: dezelfde output genereren ! Dit is soms niet gewenst bv: append bij files Algemeen: OUTPUT niet state-less of history-dependent bv: robotarm, neuraal netwerk OUTPUT perceptionele OUTPUT Oplossing: selectieve output bij replay-fase
4
Recording Soorten input –Externe IPC ( SYSV IPC) –Interne IPC
5
Recording: externe IPC USER PROGRAM Linux KERNEL syscall U1U2KERNEL SYSV IPC
6
Recording: interne IPC USER PROGRAM task1task2 CLONE Niet-deterministisch scheduler, IRQs, CPU Een lock-protocol verhelpt dit niet!
7
Recording methodes Brute force: full context recording –Memory space –Processor state Selectief –Registers –Geheugen
8
Selectieve recording: registers Tabelleren: manueel werk syscallR1R2R3 writeXX readXX Automatiseren: at compile-time GCC.section magic
9
Selectieve recording: geheugen Comparing: traag, oude copy nodig Vóór de system callNa de system call cmp
10
Dirty-flags in paging systeem Nog steeds lineair scannen Selectieve recording: geheugen PDBR Page Directory Page Table Page 4KB dirty flags read-only flags
11
Read-only flags + exception handler COW conflict bij fork Write-macro’s instrumenteren –put_user(value, *addr) –copy_to_user(*to, *from, count) Selectieve recording: geheugen
12
Input Recording task_struct User data memoryUser Code entry.S kernel module put_user int 0x80 mm linux kernel if (current->ptrace & PT_PTRACED) { … } current
13
Opvragen van de input record Via een extensie op de ptrace system call Parent process Child process linux kernel tracing ptrace peek/poke extensie ptrace
14
ptrace uitbreidingen long int ptrace(enum __ptrace_request request, pid_t pid, void *addr, void *data) PTRACE_RAWMEMDIFF Opvragen van de raw memory record PTRACE_DIFFMEM Opvragen van de genormaliseerde record PTRACE_PATCHMEM Opnieuw invoeren van een record (bij replay)
15
Normalisatie User data memory raw record genormaliseerde record
21
Input replay: besluit Recording perfect mogelijk m.b.v. extended ptrace kernel patch Replay mogelijk in de meeste gevallen… Implementatie nog te schrijven
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.