From cf2742ffae0f4333eb3a69a768c8a3b7aa319c49 Mon Sep 17 00:00:00 2001 From: David Smith Date: Mon, 18 May 2009 13:05:01 -0500 Subject: PR10091 fixes. * runtime/itrace.c (usr_itrace_report_signal): Add a workaround for ppc-specific problem. * testsuite/systemtap.base/itrace.exp: Improved tests. Improved test completeness. Will also no longer give fails for systems that don't support single or block step (will give xfails instead). --- runtime/itrace.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'runtime/itrace.c') diff --git a/runtime/itrace.c b/runtime/itrace.c index 68f85301..1c8e8d87 100644 --- a/runtime/itrace.c +++ b/runtime/itrace.c @@ -182,8 +182,14 @@ static u32 usr_itrace_report_signal(u32 action, if (info->si_signo != SIGTRAP || !ui) return UTRACE_RESUME; +#if defined(UTRACE_ORIG_VERSION) && defined(CONFIG_PPC) + /* Because of a ppc utrace bug, we need to stop the task here. + usr_itrace_report_quiesce() will continue stepping the task. */ + return_flags = UTRACE_SIGNAL_IGN | UTRACE_STOP | UTRACE_ACTION_NEWSTATE; +#else /* normal case: continue stepping */ return_flags = ui->step_flag | UTRACE_SIGNAL_IGN; +#endif #ifdef CONFIG_PPC if (ui->ppc_atomic_ss.step_over_atomic) { remove_atomic_ss_breakpoint(tsk, &ui->ppc_atomic_ss.end_bpt); -- cgit From 5ec6fd73a01c7ade715ec4e0c0785faec8acc3b6 Mon Sep 17 00:00:00 2001 From: David Smith Date: Mon, 18 May 2009 14:55:40 -0500 Subject: PR10171 workaround. * runtime/itrace.c: To avoid ia64 lockups, disable itrace on ia64. --- runtime/itrace.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'runtime/itrace.c') diff --git a/runtime/itrace.c b/runtime/itrace.c index 1c8e8d87..3014f9e5 100644 --- a/runtime/itrace.c +++ b/runtime/itrace.c @@ -20,6 +20,11 @@ #include #include "ptrace_compatibility.h" +/* PR10171: To avoid ia64 lockups, disable itrace on ia64. */ +#if defined(__ia64__) +#error "Unsupported itrace architecture" +#endif + /* PR9974: Adapt to struct renaming. */ #ifdef UTRACE_API_VERSION #define utrace_attached_engine utrace_engine -- cgit