BSDCan2017 - 0722

BSDCan 2017
The Technical BSD Conference

Bjoern A. Zeeb
Day Talks #2 - 10 June - 2017-06-10
Room DMS 1160
Start time 14:45
Duration 01:00
ID 852
Event type Lecture
Track Hacking
Language used for presentation English

From the outside

Measuring and understanding FreeBSD using the gem5 simulator.

What do you do if you are trying to understand software and wonder about the impact your measurement tool has on your measurements? You look at your system from the outside. However most of us might find it hard to tap CPU pins with an oscilloscope these days (and would probably not even find what they are looking for there). As part of a research project I have been on the adventurous journey booting FreeBSD in a micro-architecural simulator to analyse a small set of selected problems under a network workload.

The talk will start with a summary of the adventurous journey to get FreeBSD running in full-system mode for three architectures (X86_64, ARM v6/7, and ARM v8) in the gem5 simulator where Linux was just working already. You'd think BSD should just work as well, right? I'll talk about early discoveries that have already helped to improve certain bits of FreeBSD, explore the questions "does your code really do what you think it does?" and "do you really measure what you think you are measuring?".

Being able to tune hardware to specific configurations, e.g., cache-sizes or simulating different pipeline models, I'll discuss micro-architectural effects of code under test and elaborate on the advantages and disadvantages of the trace-driven analysis methodology. Having all this understanding, can we go back to the initial question and describe the impact a measurement tool has on the system? Do our design-choices and optimisations make sense?

I'll close with a couple of remarks and open questions of other possible use cases for this simulator based trace-driven methodology, and an outlook on where I think this can be taken to and be useful for the community beyond academic research.