Re: [PATCH] perf: make perf.data more self-descriptive (v5)

From: Stephane Eranian
Date: Thu Sep 22 2011 - 17:25:21 EST


On Thu, Sep 22, 2011 at 11:20 PM, Andi Kleen <andi@xxxxxxxxxxxxxx> wrote:
> Stephane Eranian <eranian@xxxxxxxxxx> writes:
>
>> The goal of this patch is to include more information
>> about the host environment into the perf.data so it is
>> more self-descriptive. Overtime, profiles are captured
>> on various machines and it becomes hard to track what
>> was recorded, on what machine and when.
>
> I read it near completely.
>
> The only weird thing were the .byte coded push/pops
> in CPUID.
>
That's because it needs to compile for both 32 and 64
bit ABIs. I cloned my code in libpfm4. Here is the
comment I have in libpfm4:
/*
* .byte 0x53 == push ebx. it's universal for 32 and 64 bit
* .byte 0x5b == pop ebx.
* Some gcc's (4.1.2 on Core2) object to pairing push/pop and ebx in
64 bit mode.
* Using the opcode directly avoids this problem.
*/
But that may not be true anymore.

> Also the /proc parser doesn't seem very robust,
> e.g. strstr is not a good way to check for a field.
>
> And the code reading /proc lines with fgets should
> likely use getline()
>
Good point, I will fix that.

> Then the bswap code would be much nicer inside a macro.
>
> Other than that it looks good.
>
Thanks.
--
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/