Re: Testers needed for LTTng 0.6.0pre1
Mathieu Desnoyers <[email protected]>
| Newsgroups | gmane.linux.kernel.tracing |
|---|---|
| Message-ID | <20060928152447.GA6836@Krystal> |
Thanks for the report. gcc 3.4 seems to have some difficulties with my operands. I am changing my approach to make it compatible with it. A new version will come soon. Thanks, Mathieu * Christopher Yeoh ([email protected]) wrote: > At 2006/9/27 15:54-0400 Mathieu Desnoyers writes: > > > > I would like you to test it on various architectures (and check for warnings) to > > see if I broke something when porting the LTTng instrumentation to markers. > > The marker mechanism doesn't compile on ppc64. Neither the asm-powerpc > or asm-generic version of marker.h work. > > The problem appears to be in the macro: > > asm volatile( ".section .markers, \"a\";\n\t" \ > ".long %1, 0f, %2, %3;\n\t" \ > ".previous;\n\t" \ > ".align 32;\n\t" \ > "0:\n\t" \ > "li $0,%0;\n\t" \ > : "=r" (condition) : \ > "m" (*(#name)), \ > "m" (__mark_call_##name), \ > "m" (*format)); \ > > For the .long part, gcc ends up outputting something like: > > long 0(9), 0f, 0(11), 0(3); > > ie register relative addresses which the assembler barfs on. > > Would something like the following be ok? (based on asm-generic version > - I did try to do get something working based on the asm-powerpc > version working, but so far without success): > > #define MARK(name, format, args...) \ > do { \ > static marker_probe_func *__mark_call_##name = \ > __mark_empty_function; \ > volatile static char __marker_enable_##name = 0; \ > static struct _mark_marker_local { \ > const char *local_name; \ > volatile char *enable; \ > marker_probe_func **call; \ > const char *local_format; \ > } __attribute__((packed)) i __attribute__ ((section(".markers"))) \ > __attribute__((__used__)) = \ > { #name, &__marker_enable_##name, &__mark_call_##name, format }; \ > if (unlikely(__marker_enable_##name)) { \ > preempt_disable(); \ > (*__mark_call_##name)(format, ## args); \ > preempt_enable_no_resched(); \ > } \ > } while(0) > > > There also seems to be a problem with fs/compat.c (~1514) with lttng_name > not being declared. > > Chris > -- > [email protected] > IBM OzLabs Linux Development Group, ADL > Canberra, Australia > _______________________________________________ > ltt-dev mailing list > [email protected] > http://www.listserv.shafik.org/listserv/listinfo/ltt-dev > OpenPGP public key: http://krystal.dyndns.org:8080/key/compudj.gpg Key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68