Hijack: Taking Control of COTS Systems for Real-Time User-Level Services
Gabriel Parmer and Richard West
Computer Science Deparment Boston University Boston, MA 02215 {gabep1, richwest}@cs.bu.edu
Hijack: Taking Control of COTS Systems for Real-Time User-Level - - PowerPoint PPT Presentation
Hijack: Taking Control of COTS Systems for Real-Time User-Level Services Gabriel Parmer and Richard West Computer Science Deparment Boston University Boston, MA 02215 { gabep1, richwest } @cs.bu.edu April 5, 2007 COTS in RT/Embedded Systems
Computer Science Deparment Boston University Boston, MA 02215 {gabep1, richwest}@cs.bu.edu
Parmer, West, BU CS Hijack 2/33
Parmer, West, BU CS Hijack 3/33
Parmer, West, BU CS Hijack 4/33
Parmer, West, BU CS Hijack 5/33
Kernel module Host Kernel . . .
Background process Guest Guest
Hardware (I/O devices) Executive
Interrupts IDT Syscall interception Schedule / dispatch Hijack execution environment Unintercepted syscalls
Parmer, West, BU CS Hijack 6/33
Kernel module Host Kernel . . .
Background process Guest Guest
Hardware (I/O devices) Executive
Interrupts IDT Syscall interception Schedule / dispatch Hijack execution environment Unintercepted syscalls
Parmer, West, BU CS Hijack 7/33
Kernel module Host Kernel . . . Executive
Guest Guest executive state (to be restored) saved guest state syscall
1 guest service request
2 executive region mapped into
3 guest registers saved into
4 executive registers restored 5 executive executed
Parmer, West, BU CS Hijack 8/33
Kernel module Host Kernel . . . Executive
Guest Guest saved guest state (to be restored) saved executive state
1 executive returns to kernel
2 executive registers saved in
3 guest registers restored from
4 executive region unmapped
5 executive’s mappings evicted
6 guest executed
Parmer, West, BU CS Hijack 9/33
Parmer, West, BU CS Hijack 10/33
Parmer, West, BU CS Hijack 11/33
1 Hijack: Executive can give scheduler preference to tasks
2 Hijack Extended: Executive can busy wait for periods
Parmer, West, BU CS Hijack 12/33
1 10 100 1000 10000 100000 1 2 3 4
Number of Background CPU Bound Tasks Jitter (Tens of Microseconds)
Hijack Linux Task Hijack Extended
Parmer, West, BU CS Hijack 13/33
higher QoS
Parmer, West, BU CS Hijack 14/33
1 Linux, tasks with same priority 2 Linux, tasks with different priority 3 Hijack, Executive using policy similar to
Parmer, West, BU CS Hijack 15/33
Parmer, West, BU CS Hijack 16/33
Parmer, West, BU CS Hijack 17/33
Parmer, West, BU CS Hijack 18/33
Parmer, West, BU CS Hijack 19/33
Parmer, West, BU CS Hijack 20/33
Parmer, West, BU CS Hijack 22/33
50 100 150 200 250 300 350 50 100 150 200 250 300 # iTLB Misses Instruction WSS Hijack Guest -> Executive RPC Linux Pipe System Call
Parmer, West, BU CS Hijack 23/33
5000 10000 15000 20000 25000 30000 35000 50 100 150 200 250 300 Cycles Data WSS Hijack Guest -> Executive RPC Linux Pipe 5000 10000 15000 20000 25000 30000 50 100 150 200 250 300 Cycles Instruction WSS Hijack Guest -> Executive RPC Linux Pipe
Parmer, West, BU CS Hijack 24/33
0.0 5.0 10.0 15.0 20.0 25.0 30.0 1 2 3 4
Number of Background CPU Bound Tasks Average Signal Interarrival Time (milliseconds)
Hijack Linux Task
Parmer, West, BU CS Hijack 25/33
signal_handler 4KB guard page executive stack 4KB guard page sigaltstack executive read-only 0x3FC00000 read-writable
Parmer, West, BU CS Hijack 26/33
Parmer, West, BU CS Hijack 27/33
Parmer, West, BU CS Hijack 28/33
Parmer, West, BU CS Hijack 29/33
Parmer, West, BU CS Hijack 30/33
Parmer, West, BU CS Hijack 31/33