[PATCH] MIPS Fixups for LTTng (Update)
Manish Lachwani <[email protected]>
| Newsgroups | gmane.linux.kernel.tracing |
|---|---|
| Message-ID | <[email protected]> |
Hi Mathieu, I looked at the i386 stuff and made the necessary changes for MIPS (32-bit). Let me know your thoughts on this attached patch. Thanks, Manish Lachwani
mips_lttng_fixups.patch
(text/plain, 4.6 KB)
Source: MontaVista Software, Inc. Type: Defect Fix Signed-off-by: Manish Lachwani <[email protected]> Description: MIPS Fixups for LTTng: arch/mips/kernel/process.c | 4 ---- arch/mips/kernel/scall32-o32.S | 9 --------- arch/mips/kernel/traps.c | 13 ++++++------- arch/mips/mm/fault.c | 12 ++++++------ 4 files changed, 12 insertions(+), 26 deletions(-) Index: linux-2.6.18/arch/mips/kernel/process.c =================================================================== --- linux-2.6.18.orig/arch/mips/kernel/process.c +++ linux-2.6.18/arch/mips/kernel/process.c @@ -276,10 +276,6 @@ long kernel_thread(int (*fn)(void *), vo pid = do_fork(flags | CLONE_VM | CLONE_UNTRACED, 0, ®s, 0, NULL, NULL); MARK(kernel_thread_create, "%ld %p", pid, fn); -#ifdef CONFIG_LTT - if(pid >= 0) - trace_process_kernel_thread(pid, fn); -#endif //CONFIG_LTT return pid; } Index: linux-2.6.18/arch/mips/kernel/traps.c =================================================================== --- linux-2.6.18.orig/arch/mips/kernel/traps.c +++ linux-2.6.18/arch/mips/kernel/traps.c @@ -591,7 +591,7 @@ asmlinkage void do_fpe(struct pt_regs *r { die_if_kernel("FP exception in kernel code", regs); - trace_kernel_trap_entry(CAUSE_EXCCODE(regs->cp0_cause), (void*)regs->cp0_epc); + MARK(kernel_trap_entry, "%d struct pt_regs %p", CAUSE_EXCCODE(regs->cp0_cause), regs); if (fcr31 & FPU_CSR_UNI_X) { int sig; @@ -748,20 +748,19 @@ asmlinkage void do_cpu(struct pt_regs *r die_if_kernel("do_cpu invoked from kernel context!", regs); - trace_kernel_trap_entry(CAUSE_EXCCODE(regs->cp0_cause), (void*)regs->cp0_epc); - + MARK(kernel_trap_entry, "%d struct pt_regs %p", CAUSE_EXCCODE(regs->cp0_cause), regs); cpid = (regs->cp0_cause >> CAUSEB_CE) & 3; switch (cpid) { case 0: if (!cpu_has_llsc) if (!simulate_llsc(regs)) { - trace_kernel_trap_exit(); + MARK(kernel_trap_exit, MARK_NOARGS); return; } if (!simulate_rdhwr(regs)) { - trace_kernel_trap_exit(); + MARK(kernel_trap_exit, MARK_NOARGS); return; } @@ -818,7 +817,7 @@ asmlinkage void do_cpu(struct pt_regs *r } #endif /* CONFIG_MIPS_MT_FPAFF */ } - trace_kernel_trap_exit(); + MARK(kernel_trap_exit, MARK_NOARGS); return; case 2: @@ -828,7 +827,7 @@ asmlinkage void do_cpu(struct pt_regs *r } force_sig(SIGILL, current); - trace_kernel_trap_exit(); + MARK(kernel_trap_exit, MARK_NOARGS); } asmlinkage void do_mdmx(struct pt_regs *regs) Index: linux-2.6.18/arch/mips/kernel/scall32-o32.S =================================================================== --- linux-2.6.18.orig/arch/mips/kernel/scall32-o32.S +++ linux-2.6.18/arch/mips/kernel/scall32-o32.S @@ -69,7 +69,6 @@ stack_done: #ifdef CONFIG_LTT sw t2, PT_R1(sp) move a0, sp - jal trace_real_syscall_entry lw t2, PT_R1(sp) lw a0, PT_R4(sp) # Restore argument registers @@ -94,10 +93,6 @@ stack_done: # restarting 1: sw v0, PT_R2(sp) # result -#ifdef CONFIG_LTT - jal trace_real_syscall_exit -#endif // CONFIG_LTT - o32_syscall_exit: raw_local_irq_disable # make sure need_resched and # signals dont change between @@ -139,10 +134,6 @@ syscall_trace_entry: # restarting 1: sw v0, PT_R2(sp) # result -#ifdef CONFIG_LTT - jal trace_real_syscall_exit -#endif //CONFIG_LTT) - j syscall_exit /* ------------------------------------------------------------------------ */ Index: linux-2.6.18/arch/mips/mm/fault.c =================================================================== --- linux-2.6.18.orig/arch/mips/mm/fault.c +++ linux-2.6.18/arch/mips/mm/fault.c @@ -115,7 +115,7 @@ survive: } up_read(&mm->mmap_sem); - trace_kernel_trap_exit(); + MARK(kernel_trap_exit, MARK_NOARGS); return; /* @@ -144,7 +144,7 @@ bad_area_nosemaphore: /* info.si_code has been set above */ info.si_addr = (void __user *) address; force_sig_info(SIGSEGV, &info, tsk); - trace_kernel_trap_exit(); + MARK(kernel_trap_exit, MARK_NOARGS); return; } @@ -210,7 +210,7 @@ do_sigbus: info.si_addr = (void __user *) address; force_sig_info(SIGBUS, &info, tsk); - trace_kernel_trap_exit(); + MARK(kernel_trap_exit, MARK_NOARGS); return; vmalloc_fault: { @@ -248,9 +248,9 @@ vmalloc_fault: pte_k = pte_offset_kernel(pmd_k, address); if (!pte_present(*pte_k)) goto no_context; - trace_kernel_trap_entry(CAUSE_EXCCODE(regs->cp0_cause), (void*)regs->cp0_epc); - trace_kernel_trap_exit(); + MARK(kernel_trap_entry, "%d struct pt_regs %p", CAUSE_EXCCODE(regs->cp0_cause), regs); + MARK(kernel_trap_exit, MARK_NOARGS); return; } - trace_kernel_trap_exit(); + MARK(kernel_trap_exit, MARK_NOARGS); }