APIC, AMD-K6/2 -mcpu=586...

Bill Pringlemeir (bpringle@sympatico.ca)
18 May 2001 09:38:01 -0400


Hello,

I have the 2.4.4 distribution from kernel.org.

"http://www.kernel.org/pub/linux/kernel/v2.4/"

I have a Mandrake system and selected the AMD processors and APIC
option. The egcs-2.91.66 compiler with -mcpu=586. It appears that
the structure alignment of the floating point registers was not
correct under this configuration. This code was being compiled and
a linker error produced.

if (offsetof(struct task_struct, thread.i387.fxsave) & 15) {
/* printk("WJP: value is %x.\n",
offsetof(struct task_struct, thread.i387.fxsave) & 15); */
/* while(1); */
extern void __buggy_fxsr_alignment(void);
__buggy_fxsr_alignment();
}

The alignment was to 8 bytes instead of 16. I added some padding to
the thread structure to produce an alignment of 16 and the code
compiled and seemed to work fine; I used it for a few days.

[in processor.h]
/* floating point info */
/* unsigned char wjpDummy[8]; */
union i387_union i387;

I did not see any mention of this in the archives [but the volume of
mailings is large... which I may be contributing to]. I recompiled
without the padding and APIC support and everything seems to be fine,
but _VERY_ slow. Is this change ok locally? Has it been addressed
in a patch?

regards,
Bill Pringlemeir.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/