Re: [PATCH 0/4] x86/insn: perf tools: Add a few new x86 instructions

From: Adrian Hunter
Date: Tue Sep 01 2015 - 08:13:22 EST

On 01/09/15 14:38, 平松雅巳 / HIRAMATU,MASAMI wrote:
>> From: Ingo Molnar [] On Behalf Of Ingo Molnar
>> * Adrian Hunter <adrian.hunter@xxxxxxxxx> wrote:
>>> Hi
>>> perf tools has a copy of the x86 instruction decoder for decoding
>>> Intel PT. [...]
>> So that's the arch/x86/lib/insn.c instruction length decoder that the kernel uses
>> for kprobes et al - and the two versions already forked slightly:
>> -#include "inat.h"
>> -#include "insn.h"
>> +#include <asm/inat.h>
>> +#include <asm/insn.h>
>> it would be nice to add a diff check to the perf build, and (non-fatally) warn
>> during the build if the two versions depart from each other?
>> This will make sure the two versions are fully in sync in the long run as well.
>> ( Alternatively we could perhaps also librarize it into tools/lib/, and teach the
>> kernel build to pick that one up? )
> Agreed, what I concern is that someone finds a bug and fixes one of them and
> another is not fixed.
> I'll see the forked version and check if it can be merged into the kernel.

Ever since Linus complained about perf tools including kernel headers, I
have assumed we should have separate source code. That email thread was not
cc'ed to a mailing list but here is a quote:

Em Sat, Jul 04, 2015 at 08:53:46AM -0700, Linus Torvalds escreveu:
> So this is more fundamental, and looks like it's just due to perf
> abusing the kernel headers, and now that rbtree has rcu support
> ("rbtree: Make lockless searches non-fatal"), it gets tons of headers
> included that really don't work from user space.
> There might be other things going on, but the rbtree one seems to be a
> big one. I think perf needs to get its own rbtree header or something,
> instead of doing that insane "let's include random core kernel
> headers" thing.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at