Patch seems to have fixed the problem. The build that used to fail immediatelly has been going on for few minutes now with no crashes so far. Thanks a lot for the quick fix! --Atem On 8/30/08, Kostik Belousov <kostikbel_at_gmail.com> wrote: > > Interestingly enough, crash always occurs on "mov %fs:0x0,%rdi" instruction, > > yet the same code in the same binaries works fine when binaries are used > > without mixing amd64/i386 binaries. Could that be that amd64 might > > somehow inherit invalid registers from i386 binaries? > > Quite possible, almost sure. Could you, please, check whether the > change below would fix it for you ? > > diff --git a/sys/amd64/amd64/cpu_switch.S b/sys/amd64/amd64/cpu_switch.S > index f34b0cc..9e13ef4 100644 > --- a/sys/amd64/amd64/cpu_switch.S > +++ b/sys/amd64/amd64/cpu_switch.S > _at__at_ -265,6 +265,10 _at__at_ load_seg: > movl PCB_DS(%r8),%ds > movl PCB_ES(%r8),%es > movl PCB_FS(%r8),%fs > + movl $MSR_FSBASE,%ecx > + rdmsr > + shlq $32,%rdx > + leaq (%rax,%rdx),%r9 > jmp done_load_seg > /* Restore userland %gs while preserving kernel gsbase */ > 2: movq PCB_GS32P(%r8),%rax > > -- --ArtemReceived on Sat Aug 30 2008 - 17:50:06 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:34 UTC