Part 1: Automated Bug Diagnosis; Part 2: Virtual instruction set computing

Thumbnail

Event details

Date 02.10.2014
Hour 15:3017:00
Speaker Vikram Adve , Visiting Professor in the School of Computer and
Communication Sciences at EPFL and Professor of Computer Science at the University of Illinois at Urbana-Champaign
Location
Category Conferences - Seminars
I will present our work on two ongoing projects: (1) automated diagnosis of software failures, and (2) the benefits of using rich virtual instruction sets as a persistent representation of all software.  If time permits, I may even draw a mythical connection between the projects!

In the first part of the talk, I will describe new insights into analyzing the root causes of software failures automatically.  We use dynamically observed likely invariants to identify candidate locations for the root cause of a failure, and then use novel static and dynamic analyses to filter out false positives and to extract valuable information relevant to understanding the failure.  Experimental results show that we are able to narrow down the locations of root causes to just a few (e.g., 2-10) program locations, even in large programs, for all but one bug we have tested.  We are now exploring how to automate the process fully using dynamic symbolic execution, and how to apply these fault isolation techniques for diagnosis and triaging of software failures in production software.

Next, I will discuss a project on Virtual Instruction Set Computing (VISC). Despite extensive advances in managed run-time systems and dynamic
compilation, high performance applications and security-sensitive systems software are almost universally compiled and shipped as native machine
code.  In the VISC project, we are exploring the security, reliability, and performance implications of shipping *all* such software in virtual
instruction set form.  We use the LLVM bitcode language as the shipping representation to enable advanced "lifelong" program analysis and
transformation for such programs.  We have shown that shipping operating systems in LLVM form enables powerful security guarantees to be enforced
using compiler techniques.  We are now exploring how the approach could be used to improve programmability and portability for heterogeneous parallel
systems, and to enable novel performance optimization techniques.

Practical information

  • Informed public
  • Free

Organizer

  • Willy Zwaenepoel

Contact

  • Stéphanie Baillargues

Event broadcasted in

Share