Binary translation in the context of virtualized environments


Whole-system virtualization is used for a variety of purposes, ranging from security to resource sharing and debugging aids. Modern desktop processors nowadays also include specific virtualization instructions to help manage such environments more efficiently.

These instructions on the one hand enable setting up a virtualized environment, which includes the ability to redirect privileged instructions to support routines provided by the host. This allows for running unmodified OSes both fairly easily and efficiently inside such contexts. On the other hand, they also provide facilities for the virtualized OS (guest) to explicitly call upon the virtualization environment (host) to provide particular services, which can further aid in improving performance and understanding.

In the related field of dynamic binary translation (DBT), applications are usually virtualized individually and without making use of support offered by the host processor. While the stress is usually less on performance and more on program understanding in this case, the overhead often imposed by DBT reduces its acceptance and makes it less usable for interactive programs.

Static binary translation (SBT) causes less performance problems since the translation happens offline and no extra program logic is required at run time to keep the target application inside a virtual environment. On the other hand, it cannot deal with code which is generated or changed at run time. Therefore, information gathered using DBT is often used in order to augment static analyses. Conversely, SBT can be used to perform a number of analyses offline in advance, which may be reusable by DBT in order to reduce the instrumentation overhead.

Research Challenge

Given the similarities between DBT and whole-system virtualization, it is clear that advances and knowledge obtained in one field may be applicable in the other as well. Moreover, synergistic approaches whereby several techniques are combined, such as using SBT to make the job of the application level or whole-system virtualizers easier, open the door towards even more performance and instrumentation opportunities.

Initial research topics

* Explore how processor support for whole-system virtualization in modern processors can be used to speed up DBT, i.e., application level dynamic instrumentation.
* Explore how SBT can be used to massage guest OS kernels into a more virtualization-friendly form, for example by changing sequences of expensive supervisor instruction sequences into single services calls into the virtualization environment.
* Explore how the information gathered by the processor's performance counters can be used to assist in improving performance of DBT and virtualization.

This cluster contributes with HiPEAC Roadmap Challenges
1.6 Software controlled reconfiguration
1.9 Virtualization
4.5 Instrumentation and performance analysis
5.6 Just-in-time compilation
5.7 Full system optimization
6.3 Adaptable run-time systems

Other planned activities

* Preparation of the Dagstuhl seminar on [virtualisation and binary
Translation, oktober 2008, co-organized with Jack Davidson, Bruce Childers and Mary Lou Soffa]
* Organize a tutorial on static and dynamic binary instrumentation,
based on the Diablo and Diota tools we developed
* Gather a community around this important technology, including companies.


Research cluster

Requested: € 80000
Granted: € 80000

Requested: € 80000
Granted: € 80000

The aim is to hire Dr. Jonas Maebe. Jonas Maebe has developed Diota (presented at OOPSLA 2006) which is a dynamic binary instrumentor able to automatically instrument applications which dynamically generate their own code like the Java Virtual Machine. The system allows to link high level events (e.g. the creation of a Java object) to low level evens like a cache miss – so-called vertical instrumentation. Since July 2007 he maintains and further develops the Diablo binary instrumentation framework. So, he is very knowledgeable in static and dynamic binary translation, as well as in application virtual machines. Besides doing to research described above, his task will be to bring together a community on virtualization and binary translation in Europe and contribute significantly to the preparation of the Dagstuhl seminar.

Since Janos Maebe is already working at Ghent University, he can immediately be hired for this cluster.


Requested: 11 month(s)
Granted: 0 month(s), starting on: Thu, September 27, 2007

FRANKE Bjoern (Edinburgh University) (--member--)
BERNSTEIN David (IBM) (--member--)
ROHOU Erven (STMicroelectronics) (--member--)
DE BOSSCHERE Koen (Ghent University) (--member--)
BARTOLINI Sandro (University of Siena) (--member--)
NAVARRO Nacho (UPC) (--member--)

Bilha Mendelson
Marco Cornero
Marisa Gil
Enric Morancho
Bjorn De Sutter
Lieven Eeckhout
Dominique Chanet
Jonas Maebe