[ltt-dev] Followup: UST support for PowerPC

Pierre-Marc Fournier pierre-marc.fournier at polymtl.ca
Sat Apr 10 11:51:50 EDT 2010


On 04/10/2010 11:09 AM, Mathieu Desnoyers wrote:
> * soumyakanti chakraborty (soumyakanti.chakraborty at gmail.com) wrote:
>> On Sat, Apr 10, 2010 at 12:32 PM, Naren<tracemein at gmail.com>  wrote:
>>
>>> Hi,
>>>
>>> In the UST manual Link<http://lttng.org/files/ust/manual/ust.html#Supported-platforms>,
>>> its mentioned that *"**UST can currently trace applications running on
>>> Linux, on the x86-32 and x86-64 architectures**". *I am interested in
>>> using UST on applications running on PowerPC platforms, especially, ppc32.
>>> Is it still the case that it is not supported in ppc?
>>>
>>> Hello Naren
>>
>> As of now UST doesnt support ppc architectures.It is needed to be ported to
>> it, but according to Pierre its is easy to do it as presently userspace-rcu
>> atomic ops supports ppc architecture.
>
> Yep. One should have a look at the kernel LTTng
> arch/powerpc/include/asm/trace-clock.h, and port the trace clock to UST.
> That imply reimplementing Linux get_tb() and get_tbl().
>
> This work should be relatively straightforward for powerpc32/64, but can
> be much more difficult for other architectures, possibly requiring vDSO
> support.
>

This step is actually optional in a first pass. The gettimeofday() 
alternative can be used but with slightly degraded performance.

The way I would personally proceed for porting is to just try to install 
everything normally on the ppc system and fix errors as they occur.

include/ust/marker.h contains asm which will break, but which is written 
is a very arch-independent way. You probably need to just implement the 
ARCH_COPY_ADDR and _ASM_PTR macros that are in include/ust/processor.h

The rest of the stuff in include/ust/processor.h is less important 
because it is used only for GDB integration. You are likely not using 
that so you can just just do a nop version for ppc.

The fls() implementation in include/ust/kernelcompat.h will break 
because it is in asm. It should be simple to implement for ppc. You can 
look at how they do their ppc fls() function in the kernel for help.

Once you are done you can send me the patch and I will merge it. We will 
then be able to add ppc support to the Debian package. Yay!

pmf

Thanks




More information about the lttng-dev mailing list