general protection fault on boot.

Vincent Hoffman vince at unsane.co.uk
Thu Sep 10 13:02:15 UTC 2009


Kostik Belousov wrote:
> On Thu, Sep 10, 2009 at 11:34:23AM +0100, Vincent Hoffman wrote:
>   
>> Kostik Belousov wrote:
>>     
>>> On Wed, Sep 09, 2009 at 01:38:59PM -0400, John Baldwin wrote:
>>>   
>>>       
>>>> On Wednesday 09 September 2009 12:32:51 pm Vincent Hoffman wrote:
>>>>     
>>>>         
>>>>> Hi all,
>>>>>           I've been running the 8.0-BETAs in a xen virtual machine
>>>>> (hvm/fully virtualised) for testing and something between r196730 and
>>>>> r196746 causes a general protection fault on boot. I'll try and narrow
>>>>> it down if i get a chance but I'm a a bit busy at the moment.
>>>>>  
>>>>> backtrace is available at
>>>>> http://unsane.co.uk/~jhary/freebsd/GPF-09-09-09.gif 
>>>>> Xen dom0 is a centos5.3 box using the xen-3.3.1 rpms from
>>>>> http://www.gitco.de/linux/i386/centos/5/rpms/  if thats of any use.
>>>>>
>>>>> Let me know if I need to provide any more info.
>>>>>       
>>>>>           
>>>> Hmm, can you try reverting 196737?  Or actually, can you print out the value 
>>>> of %ebx ('p $ebx' in ddb will work I think)?  I wonder if this patch would 
>>>> fix it:
>>>>
>>>> Index: pmap.c
>>>> ===================================================================
>>>> --- pmap.c	(revision 196974)
>>>> +++ pmap.c	(working copy)
>>>> @@ -999,7 +999,7 @@
>>>>  		 * coherence domain.
>>>>  		 */
>>>>  		mfence();
>>>> -		for (; sva < eva; sva += cpu_clflush_line_size)
>>>> +		for (; sva <= eva; sva += cpu_clflush_line_size)
>>>>  			clflush(sva);
>>>>  		mfence();
>>>>  	} else {
>>>>     
>>>>         
>>> Oh, no, another pointy hat to me :(.
>>>
>>> Please, try this patch instead.
>>>
>>> diff --git a/sys/i386/xen/pmap.c b/sys/i386/xen/pmap.c
>>> index 4b81aae..122318c 100644
>>> --- a/sys/i386/xen/pmap.c
>>> +++ b/sys/i386/xen/pmap.c
>>> @@ -1004,8 +1004,8 @@ pmap_invalidate_cache_range(vm_offset_t sva, vm_offset_t eva)
>>>  		 * coherence domain.
>>>  		 */
>>>  		mfence();
>>> -		for (; eva < sva; eva += cpu_clflush_line_size)
>>> -			clflush(eva);
>>> +		for (; sva < eva; sva += cpu_clflush_line_size)
>>> +			clflush(sva);
>>>  		mfence();
>>>  	} else {
>>>  
>>>   
>>>       
>> Hi,
>>     I tried this this morning with no joy i'm afraid.
>> not much change but new backtrace (with p $ebx) at
>> http://www.unsane.co.uk/~jhary/freebsd/10-09-09.gif
>>     
> I would need the panic message and ddb lines that are not
> present on your screenshot.
>
> Also, the dmesg is interesting (CPU features report).
>   
Sorry, did need more coffee after all then.
http://unsane.co.uk/~jhary/freebsd/gpf-10-09-09-1.gif 
http://unsane.co.uk/~jhary/freebsd/gpf-10-09-09-2.gif
http://unsane.co.uk/~jhary/freebsd/dmesg.boot

like I said, Console access via vnc is available if wanted.

Vince


>> Just to check I'm not in need of more coffee as i'm still learning svn
>> (and my coding skills such as they are lie in shell and perl)
>>
>> krill# svn info
>> Path: .
>> URL: svn://svn.freebsd.org/base/stable/8
>> Repository Root: svn://svn.freebsd.org/base
>> Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
>> Revision: 196740
>> Node Kind: directory
>> Schedule: normal
>> Last Changed Author: rnoland
>> Last Changed Rev: 196737
>> Last Changed Date: 2009-09-01 17:41:28 +0100 (Tue, 01 Sep 2009)
>>
>>
>> krill# sed -n '1010,1017p' sys/i386/xen/pmap.c
>>                  * coherence domain.
>>                  */
>>                 mfence();
>>                 for (; sva < eva; sva += cpu_clflush_line_size)
>>                         clflush(sva);
>>                 mfence();
>>         } else {
>>
>> krill#
>>
>> Happy to give vnc access to the console of the machine if that would help.
>>
>> Vince
>>     



More information about the freebsd-stable mailing list