Re: [PATCH 1/2] perf tools: allow building for ARM

From: Russell King - ARM Linux
Date: Fri Dec 11 2009 - 16:20:00 EST


On Fri, Dec 11, 2009 at 02:38:08AM -0800, David Miller wrote:
> From: Ingo Molnar <mingo@xxxxxxx>
> Date: Fri, 11 Dec 2009 11:23:16 +0100
>
> >
> > * Jamie Iles <jamie.iles@xxxxxxxxxxxx> wrote:
> >
> >> +#ifdef __arm__
> >> +#include "../../arch/arm/include/asm/unistd.h"
> >> +#define rmb() asm volatile("":::"memory")
> >> +#define cpu_relax() asm volatile("":::"memory")
> >> +#endif
> >
> > cpu_relax() looks fine, but rmb() seems not to match the one that can be
> > found in arch/arm/:
>
> I think he did it this way so it can compile in the meantime,
> and that doing it right requires runtime cpu detection to
> select which barrier instruction is even available on the
> current ARM cpu.

We provide a way for userspace to be independent of the CPU for these
operations by providing code snippets up in the vector page for userspace
to call. The kernel places the correct code there according to the CPU
it's built for.

Look for __kuser_memory_barrier in arch/arm/kernel/entry-armv.S
--
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/