Re: [RFC PATCH] x86: stop machine text poke should issue sync core

From: H. Peter Anvin
Date: Thu Mar 03 2011 - 01:11:52 EST


On 02/28/2011 07:24 AM, Mathieu Desnoyers wrote:
>
> Index: linux-2.6-lttng/arch/x86/kernel/alternative.c
> ===================================================================
> --- linux-2.6-lttng.orig/arch/x86/kernel/alternative.c
> +++ linux-2.6-lttng/arch/x86/kernel/alternative.c
> @@ -612,6 +612,12 @@ static int __kprobes stop_machine_text_p
>
> flush_icache_range((unsigned long)tpp->addr,
> (unsigned long)tpp->addr + tpp->len);
> + /*
> + * Intel Archiecture Software Developer's Manual section 7.1.3 specifies
> + * that a core serializing instruction such as "cpuid" should be
> + * executed on _each_ core before the new instruction is made visible.
> + */
> + sync_core();
> return 0;
> }
>

Isn't this executed from an IPI handler, which will return with IRET (a
serializing instruction) anyway?

-hpa
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/