Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/sys/arch





Le 14/11/2017 à 15:49, Maxime Villard a écrit :
Le 14/11/2017 à 15:15, Joerg Sonnenberger a écrit :
On Tue, Nov 14, 2017 at 03:06:00PM +0100, Maxime Villard wrote:
Le 11/11/2017 à 10:10, Manuel Bouyer a écrit :
Module Name:    src
Committed By:    bouyer
Date:        Sat Nov 11 09:10:19 UTC 2017

Modified Files:
    src/sys/arch/x86/x86: cpu.c fpu.c identcpu.c
    src/sys/arch/xen/x86: cpu.c

Log Message:
Revert http://mail-index.netbsd.org/source-changes/2017/11/08/msg089525.html,
it breaks Xen:
http://www-soc.lip6.fr/~bouyer/NetBSD-tests/xen/HEAD/amd64/201711082340Z_anita.txt


To generate a diff of this commit:
cvs rdiff -u -r1.139 -r1.140 src/sys/arch/x86/x86/cpu.c
cvs rdiff -u -r1.25 -r1.26 src/sys/arch/x86/x86/fpu.c
cvs rdiff -u -r1.65 -r1.66 src/sys/arch/x86/x86/identcpu.c
cvs rdiff -u -r1.114 -r1.115 src/sys/arch/xen/x86/cpu.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

You have %rdi = 0xffffa0000c194c18, so the stack is not aligned to 64 bytes,
and that's why fxsave faults. Looks like you are triggering another bug earlier
in the boot procedure - on my dom0-amd64 fxsave worked correctly.

The stack on AMD64 is not 64byte aligned, but depending on when exactly
you check, 16byte aligned with or without an offset of 8byte.

GCC assumes 16byte alignment, and pushes __aligned(64) variables following

I meant __aligned(16), but was thinking about something else at the same time
and said 64


Home | Main Index | Thread Index | Old Index