[ltt-dev] Followup: UST support for PowerPC

Mathieu Desnoyers mathieu.desnoyers at efficios.com
Sat Apr 10 12:13:33 EDT 2010


* Pierre-Marc Fournier (pierre-marc.fournier at polymtl.ca) wrote:
> 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.

Using gettimeofday for UST is OK as long as you don't expect to merge the
tracefiles with the LTTng kernel traces.

Thanks,

Mathieu

>
> 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

-- 
Mathieu Desnoyers
Operating System Efficiency R&D Consultant
EfficiOS Inc.
http://www.efficios.com




More information about the lttng-dev mailing list