assertion-based debugging of hw/sw concurrency issues in ... · luis gabriel murillo. contact:...

1
Evaluation: EURETILE Platform SW stack KPN programming model for user applications (DAL) Threading model and message passing for lower SW layers OS running on each tile Assertion-based Debugging of HW/SW Concurrency Issues in Many-core Systems Debugging is hard with multiple cores Many HW/SW actors working concurrently Luis Gabriel Murillo. Contact: [email protected] SWAT Debugger Framework a. Front-end and AST generation b. IR-level partitions and transformations c. Assertion Checker generation d. Source debugger back-end SWAT being applied for: OS-level debugging and driver ISRs, e.g.: Checking the collective state of the system (e.g., distributed arrays) in DAL applications, e.g.: How to deal with concurrency bugs at the system level? System Complexity $ $ $ $$ The trend: Debugging based on Virtual Platforms (VPs) Enable earlier HW/SW integration Full control of HW and SW Non-intrusive inspection Vehicle to reproduce concurrency bugs OSs Drivers User Applications SWAT: Language for S ystem-w ide A ssert ions Easy way to capture user knowledge, covering: SW contexts (thread, process), variables HW devices, signals, registers Concurrency-related events (e.g., OS events) Linear Temporal Logic (LTL) (HW/SW signal handling bug) (SW-only order violation bug) Hard to find and understand Root unrelated to visible symptoms Random occurrences Not always reproducible May remain unnoticed (IRQ mask back-up/restore consistency check) (Distribution of initial conditions)

Upload: others

Post on 25-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Assertion-based Debugging of HW/SW Concurrency Issues in ... · Luis Gabriel Murillo. Contact: murillo@ice.rwth-aachen.de SWAT Debugger Framework a. Front-end and AST generation b

Evaluation: EURETILE Platform

SW stack

KPN programming model for user applications (DAL)

Threading model and message passing for lower SW layers

OS running on each tile

Assertion-based Debugging of HW/SW Concurrency Issues

in Many-core Systems

Debugging is hard with multiple cores Many HW/SW actors working concurrently

Luis Gabriel Murillo. Contact: [email protected]

SWAT Debugger Framework

a. Front-end and AST generation

b. IR-level partitions and transformations

c. Assertion Checker generation

d. Source debugger back-end

SWAT being applied for: OS-level debugging and driver ISRs, e.g.:

Checking the collective state of the system (e.g.,

distributed arrays) in DAL applications, e.g.:

How to deal with concurrency bugs at the

system level?

System Complexity

$$

$

$$

The trend: Debugging based on Virtual

Platforms (VPs) Enable earlier HW/SW integration

Full control of HW and SW

Non-intrusive inspection

Vehicle to reproduce concurrency bugs

OSs Drivers

User Applications

SWAT: Language for System-wide Assertions Easy way to capture user knowledge, covering:

SW contexts (thread, process), variables

HW devices, signals, registers

Concurrency-related events (e.g., OS events)

Linear Temporal Logic (LTL)

(HW/SW signal handling bug)

(SW-only order violation bug)

Hard to find and

understand

Root unrelated to

visible symptoms

Random occurrences

Not always

reproducible

May remain unnoticed

(IRQ mask back-up/restore consistency check)

(Distribution of initial conditions)