Re: [tip:perf/core] perf tools, Alpha: Add Alpha support to perf.h

From: Ingo Molnar
Date: Mon Oct 26 2009 - 08:23:26 EST



* Pekka Enberg <penberg@xxxxxxxxxxxxxx> wrote:

> Hi Ingo,
>
> On Mon, Oct 26, 2009 at 1:38 PM, tip-bot for Michael Cree
> <mcree@xxxxxxxxxxxx> wrote:
> > Commit-ID:  fcd14b3203b538dca04a2b065c774c0b57863eec
> > Gitweb:     http://git.kernel.org/tip/fcd14b3203b538dca04a2b065c774c0b57863eec
> > Author:     Michael Cree <mcree@xxxxxxxxxxxx>
> > AuthorDate: Mon, 26 Oct 2009 21:32:06 +1300
> > Committer:  Ingo Molnar <mingo@xxxxxxx>
> > CommitDate: Mon, 26 Oct 2009 09:45:41 +0100
> >
> > perf tools, Alpha: Add Alpha support to perf.h
> >
> > For the perf tool the patch implements an Alpha specific section
> > in the perf.h header file.
> >
> > Signed-off-by: Michael Cree <mcree@xxxxxxxxxxxx>
> > Cc: Richard Henderson <rth@xxxxxxxxxxx>
> > Cc: Ivan Kokshaysky <ink@xxxxxxxxxxxxxxxxxxxx>
> > Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
> > Cc: Paul Mackerras <paulus@xxxxxxxxx>
> > LKML-Reference: <1256545926-6972-1-git-send-email-mcree@xxxxxxxxxxxx>
> > Signed-off-by: Ingo Molnar <mingo@xxxxxxx>
> > ---
> >  tools/perf/perf.h |    6 ++++++
> >  1 files changed, 6 insertions(+), 0 deletions(-)
> >
> > diff --git a/tools/perf/perf.h b/tools/perf/perf.h
> > index 8cc4623..216bdb2 100644
> > --- a/tools/perf/perf.h
> > +++ b/tools/perf/perf.h
> > @@ -47,6 +47,12 @@
> >  #define cpu_relax()    asm volatile("":::"memory")
> >  #endif
> >
> > +#ifdef __alpha__
> > +#include "../../arch/alpha/include/asm/unistd.h"
> > +#define rmb()          asm volatile("mb" ::: "memory")
> > +#define cpu_relax()    asm volatile("" ::: "memory")
> > +#endif
>
> OK, I'll bite. We tell userspace developers not to include kernel
> headers. Why is it okay for perf to do it (especially for something
> that's in asm)?

The main counter-argument against inclusion was always "what if we break
them accidentally". I.e. it can become a semi-ABI - stuff we cannot
change because we cannot change the outside projects. With perf this
cannot occur - it's all in one Git tree and can always be fixed/changed.

Note that we reuse a couple of other facilities in tools/perf as well -
linux/list.h, rbtree.c, etc. - and this is good - you can code perf as
if you were hacking on the kernel! ;-)

Ingo
--
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/