Subject: Re: [PATCH 1/3][RFC] ftrace/ppc: Have PPC skip updating with stop_machine()

From: Michael Ellerman <[email-masked]>
Date: Fri, 08 Jun 2012 14:13:16 +1000

On Thu, 2012-04-26 at 14:31 -0400, Steven Rostedt wrote:
> plain text document attachment
> (0001-ftrace-ppc-Have-PPC-skip-updating-with-stop_machine.patch)
> From: Steven Rostedt <[email-masked]>
> 
> PPC does not have the synchronization issues that x86 has with
> modifying code on one CPU while another CPU is executing it.
> The other CPU will either see the old or new code without any
> issues, unlike x86 which may issue a GPF.
> 
> Instead of calling the heavy stop_machine, just update the code.

This looks nice, but it's giving me this:

arch/powerpc/kernel/ftrace.c:497:13: error: static declaration of 'ftrace_replace_code' follows non-static declaration                                                
include/linux/ftrace.h:317:13: note: previous declaration of 'ftrace_replace_code' was here

I think the fix is just to make our ftrace_replace_code() non-static?

cheers

> +static void ftrace_replace_code(int enable)
> +{
> +	struct ftrace_rec_iter *iter;
> +	struct dyn_ftrace *rec;
> +	int ret;
> +
> +	for (iter = ftrace_rec_iter_start(); iter;
> +	     iter = ftrace_rec_iter_next(iter)) {
> +		rec = ftrace_rec_iter_record(iter);
> +		ret = __ftrace_replace_code(rec, enable);
> +		if (ret) {
> +			ftrace_bug(ret, rec->ip);
> +			return;
> +		}
> +	}
> +}
> +