Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 1 Nov 2017 11:26:19 +0200
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Andreas Longwitz <longwitz@incore.de>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: double fault on 10.3-Stable i386 during installworld
Message-ID:  <20171101092619.GJ2566@kib.kiev.ua>
In-Reply-To: <59F910C5.8020709@incore.de>
References:  <59D11664.1060206@incore.de> <20171001180943.GO95911@kib.kiev.ua> <59F910C5.8020709@incore.de>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Nov 01, 2017 at 01:09:41AM +0100, Andreas Longwitz wrote:
> On the stack we have
> 
> 0xe437faa0:    0x00000000  R7:0xc0bc051c     0x00000020     0x00010007
> 
> so there is an exception on the instruction "movl  PCB_CR3(%edx),%eax"
> in function cpu_switch(). The next stack entries indicates a lot of page
> faults, but the "double fault" happens not until the page boundary at
> 0xe437f000 is reached. I do not really understand this, but it seems to
> me that the thread

Can you try to recover the %ecx, %edx values for the faulted frame ?
Note that %ecx is loaded from the on-stack argument.

Do you have latest CPU microcode loaded ?  Your machine is very old,
I believe this is P4 class processor, am I right ?

Sure if pcb access faults, the system is in very broken state and
since an attempt to handle the fault causes a new fault for pcb access,
it recurses and dies due to the stack overflow.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20171101092619.GJ2566>