]> git.baikalelectronics.ru Git - kernel.git/commit
perf: avoid structure size confusion by using a fixed size
authorArjan van de Ven <arjan@linux.intel.com>
Tue, 21 Jul 2009 05:54:26 +0000 (22:54 -0700)
committerPeter Zijlstra <a.p.zijlstra@chello.nl>
Wed, 22 Jul 2009 16:05:57 +0000 (18:05 +0200)
commit0b0b7dd3542b74d0186dca3a3fa47be59d875a76
tree1a9a6f4a7fd759fd7a5eeaffe475dca678a2651c
parent5a1237a5be655a515f487b5c203c74f41d285c2a
perf: avoid structure size confusion by using a fixed size

for some reason, this structure gets compiled as 36 bytes in some files
(the ones that alloacte it) but 40 bytes in others (the ones that use it).
The cause is an off_t type that gets a different size in different
compilation units for some yet-to-be-explained reason.

But the effect is disasterous; the size/offset members of the struct
are at different offsets, and result in mostly complete garbage.
The parser in perf is so robust that this all gets hidden, and after
skipping an certain amount of samples, it recovers.... so this bug
is not normally noticed.

.... except when you want every sample to be exact.

Fix this by just using an explicitly sized type.

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <4A655917.9080504@linux.intel.com>
tools/perf/util/header.h