Re: What's become with PPC patches?
Mathieu Desnoyers <[email protected]>
| Newsgroups | gmane.linux.kernel.tracing |
|---|---|
| Message-ID | <20061107230517.GA28175@Krystal> |
* Sergei Shtylyov ([email protected]) wrote: > Hello. > > Mathieu Desnoyers wrote: > > >>>>Since we were about to start working on LTTng in arch/powerpc/ tree (at > >>>>last), I've looked thru the current 2.6.18 patches, and was surprised > >>>>in a bad > >>>>way about PPC patches which only looked like a shadow of what they were > >>>>several months ago, largely reminding the result of a failed rebase > >>>>with only > >>>>some added lines and braces serving no particular purpose. Looks like > >>>>that > >>>>disaster (I think it's the right word) happened after > >>>>2.6.17-lttng-0.5.108. > >>>>Mattieau, could you clarify what happened? The patch has lost a lot of > >>>>trace points (assmingly borrowed from my last year's LTT work), so it's > >>>>going to be quite a setback for us, and completely unexpected... :-( > > >>>Can you point to some examples of the trace points that went away ? I > >>>will > >>>probably be able to explain where they are now : most likely in > >>>architecture > >>>independant locations. > > >> Look at arch/powerpc/mm/fault.c in your patchset, for example... > > >Look at ltt/probes/ltt-probe-ppc.c: probe_mm_handle_fault_entry/exit > >And also at > > >mm/memory.c: MARK(mm_handle_fault_entry, "%lu %ld", address, > > KSTK_EIP(current)); > >[...] > >mm/memory.c: MARK(mm_handle_fault_exit, MARK_NOARGS); > > >Note that there should also be a call to trace_kernel_trap_entry/exit in > >probe_mm_handle_fault_entry/exit in ltt/probes/ltt-probe-ppc.c (see > >ltt-probe-i386.c for an example). I will fix in the next releases. > > Hm, that's all good... but where's the syscall entry/exit hook gone from > arch/powerpc/kernel/entry_32.S? > arch/powerpc/kernel$ grep MARK * process.c: MARK(kernel_thread_create, "%ld %p", retval, fn); process.c:#define REGS_MARKER 0x7265677368657265ul process.c:#define FRAME_MARKER 12 process.c:#define REGS_MARKER 0x72656773ul process.c:#define FRAME_MARKER 2 process.c: && stack[FRAME_MARKER] == REGS_MARKER) { ptrace.c: MARK(kernel_syscall_entry, "%ld struct pt_regs %p", ptrace.c: MARK(kernel_syscall_exit, MARK_NOARGS); syscalls.c: MARK(ipc_call, "%u %d", call, first); time.c: MARK(kernel_trap_entry, "%ld struct pt_regs %p", regs->trap, regs); time.c: MARK(kernel_trap_exit, MARK_NOARGS); traps.c: MARK(kernel_trap_entry, "%ld struct pt_regs %p", regs->trap, regs); traps.c: MARK(kernel_trap_exit, MARK_NOARGS); traps.c: MARK(kernel_trap_entry, "%ld struct pt_regs %p", regs->trap, regs); traps.c: MARK(kernel_trap_exit, MARK_NOARGS); traps.c: MARK(kernel_trap_entry, "%ld struct pt_regs %p", regs->trap, regs); traps.c: MARK(kernel_trap_exit, MARK_NOARGS); So look at ptrace.c, Mathieu OpenPGP public key: http://krystal.dyndns.org:8080/key/compudj.gpg Key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68