Re: Instruction Tracing for Linux

From: Marcelo Tosatti
Date: Fri Jul 08 2005 - 16:28:20 EST


On Fri, Jul 08, 2005 at 09:11:03PM +0200, Andi Kleen wrote:
> "Adnan Khaleel" <Adnan.Khaleel@xxxxxxxxxxx> writes:
>
> > Hi there,
> >
> > I'm a hardware designer and I'm interested in collecting dynamic execution traces in Linux. I've looked at several trace toolkits available for Linux currently but none of them offer the level of detail that I need. Ideally I would like to be able to record the instructions being executed on an SMP system along with markers for system or user space in addition to process id. I need these traces in order to evaluate the data sharing, coherence traffic etc in larger SMP systems. I've tried several other approaches to collecting execution traces namely via machine emulators etc but so far I've been dogged with the problem of trying to get any OS up and running stably on a multiprocessor configuration.
> >
> > Is there a Linux kernel patch that will let me do this? I have considered using User Mode Linux but I'm not sure if this is the correct approach either - if any of you think that this is the easier path, I'd be interested in exploring this more. Other things that have crossed my mind is to use a gdb or the kernel debugger interface in order to collect the instructions but I'm not sure if this would be the correct path. Also I do require the tool/patch to be stable enough so that I can run commercial benchmarks on it reliably.
> >
> > I understand that recording every executed instruction can considerably slow down the application and may be considerably different from the freely running application but nevertheless I think that some trace is better than no trace and this is where I am at the moment.
> >
> > If any of you have had experiences in profiling the kernel etc by collecting actual kernel instructions executed, I'd be interested in seeing if that may be extended for my purpose.
>
> While some CPUs (like Intel P4) have ways to do such hardware
> tracing I know of no free tool that uses it. There are some user
> space tools to collect at user space, but they probably won't help you.
>
> Your best bet is likely some full system simulator with tracing
> support like Simics, SimNow, bochs, qemu. The first two might be able to
> run enterprise benchmarks.

Laplace is a modified version of Bochs for load/store instruction tracing
and more:

http://www.cs.amherst.edu/~sfkaplan/research/laplace/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/