Re: [PATCH 2.6.12-rc1-mm1 3/3] perfctr: 64-bit values in register descriptors

From: Mikael Pettersson
Date: Wed Mar 23 2005 - 15:41:47 EST


On Wed, 23 Mar 2005 14:34:30 +1100, David Gibson wrote:
>On Wed, Mar 23, 2005 at 04:00:03AM +0100, Mikael Pettersson wrote:
>> - <linux/perfctr.h>: Change value fields in register descriptors
>> to 64 bits. This will be needed for ppc64, and ppc32 user-space
>> on ppc64 kernels, and may eventually also be needed on x86.
>> We could have different descriptor types for 32 and 64-bit
>> registers, but that just complicates things for no real benefit.
>>
>> Signed-off-by: Mikael Pettersson <mikpe@xxxxxxxxx>
>
>Erm.. won't this stop i386 binaries working on an x86_64 kernel, since
>kernel and user will have different ideas of the alignment...?

Indeed it does. A brown paper bag occasion :-(

Andrew, please apply the following fix on top of the previous patch.
This has been tested with i386 binaries on an x86_64 kernel.

- <linux/perfctr.h>: Change number fields in register descriptors to 64 bits.
Otherwise i386 binaries break on x86_64 kernels since the descriptors
get larger alignment and sizes on x86_64 than on i386.

Signed-off-by: Mikael Pettersson <mikpe@xxxxxxxxx>

include/linux/perfctr.h | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)

diff -rupN linux-2.6.12-rc1-mm1.perfctr-update-common/include/linux/perfctr.h linux-2.6.12-rc1-mm1.perfctr-update-common-fix/include/linux/perfctr.h
--- linux-2.6.12-rc1-mm1.perfctr-update-common/include/linux/perfctr.h 2005-03-23 20:59:47.000000000 +0100
+++ linux-2.6.12-rc1-mm1.perfctr-update-common-fix/include/linux/perfctr.h 2005-03-23 20:59:57.000000000 +0100
@@ -29,7 +29,7 @@ struct vperfctr_control {

/* common description of an arch-specific control register */
struct perfctr_cpu_reg {
- __u32 nr;
+ __u64 nr;
__u64 value;
};

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