Subject: Re: i386 snapshot panics all the time
To: None <thorpej@zembu.com>
From: Kazushi (Jam) Marukawa <jam@pobox.com>
List: current-users
Date: 06/06/2000 09:55:59
Hi,

I'm using Cyrix MII 300 and getting the same trouble.  I
haven't seen any messages about this issue in June.  So, I'm
sending this message to see what's going on now and tell my
experience.

   On May 29, 12:38, Jason R Thorpe wrote:
   > Subject: Re: i386 snapshot panics all the time
   > Please try the following for me:
   > 
   > Boot directly into DDB ("boot netbsd -d"), and:
   > 
   > db> w vm_page_zero_enable 0
   > db> c
   > 
   > Then edit sys/arch/i386/include/pmap.h, and look for the line:
   > 
   > #define PMAP_PAGEIDLEZERO(pa)   pmap_zero_page_uncached((pa))
   > 
   > Comment it out.  Build a new kernel; the sources I used to build the
   > snapshot are on ftp.netbsd.org with the snapshot, now.  Install it and
   > boot it.
   > 
   > Hammer on it as usual.  Please report if the system is more stable (I
   > suspect it will be), and also report if system performance is on the
   > order of as good as with the uncached zero hook.

I edited the NetBSD like above and compiled it.  My NetBSD
is checked out few hours ago through annoncvs.  Then, I
started the compilation of whole user land with this new
kernel.  NetBSD crashs again.

kernel: page fault trap, code=0
Stopped at      pmap_zero_page+0x39:    repe stosl
%es:(%edi)
db> t
pmap_zero_page(57b6000,0,7fffffff,c9e8ec98,c9e8ec98) at
pmap_zero_page+0x39
uvm_pageidlezero(e000ffe7,c9e8ec98,0,7fffffff,c019c803) at
uvm_pageidlezero+0x8c

idle(c9e8ec98) at idle+0x1b
bpendtsleep(c2cd8bec,11,c03e4ef5,0) at bpendtsleep
biowait(c2cd8bec,f097,c9b14acc,c922ac00,c0499fa0) at
biowait+0x2f
bwrite(c2cd8bec,0,c9b149f8,20,c9eb1c88) at bwrite+0x10a
ffs_update(c9eb1cb8,c9eb1e20,c9eb1edc,c9eb1e0c,c9eb1cb8) at
ffs_update+0x24c
ufs_makeinode(8180,c9dcd1a4,c9eb1eec,c9eb1f00,c9eb1e84) at
ufs_makeinode+0x242
ufs_create(c9eb1e0c,bfbfb5e4,c9eb1f88,602,c08f3800) at
ufs_create+0x2a
vn_open(c9eb1edc,602,180,c9eb1f88,c9e8ec98) at vn_open+0xe8
sys_open(c9e8ec98,c9eb1f88,c9eb1f80,0,0) at sys_open+0xca
syscall() at syscall+0x234
--- syscall (number 5) ---
0x48119577:
db> print $ecx
     400
db> print $edi
c0602000
db> c

    I continued kernel.  My NetBSD continues the
    compilation.  After for a while, NetBSD crashs again.
    However, the time period between both crashs is little
    bit longer than the period with old non-edited NetBSD.
    I'm not sure, but I feel so.

kernel: page fault trap, code=0
Stopped at      pmap_zero_page+0x39:    repe stosl
%es:(%edi)
db> t
pmap_zero_page(47f6000,0,7fffffff,c9e8ec98,c9e8ec98) at
pmap_zero_page+0x39
uvm_pageidlezero(e000ffe7,c9e8ec98,0,7fffffff,c019c803) at
uvm_pageidlezero+0x8c

idle(c9e8ec98) at idle+0x1b
bpendtsleep(c2cbed4c,11,c03e4e3a,0,0) at bpendtsleep
getblk(c9d8b2a4,71,2000,0,0) at getblk+0x92
cluster_read(c9d8b2a4,134b8c,0,71,2000) at cluster_read+0x3f
ffs_read(c9ec1e9c,c9ec1f88,2000,c9e2eea4,c9ec1e9c) at
ffs_read+0x254
vn_read(c9e2eea4,c9e2eec0,c9ec1ee8,c08d5400,1) at
vn_read+0xba
dofileread(c9e8ec98,3,c9e2eea4,8055000,2000) at
dofileread+0x93
sys_read(c9e8ec98,c9ec1f88,c9ec1f80,0,48151f60) at
sys_read+0x67
syscall() at syscall+0x234
--- syscall (number 3) ---
0x4813c2c3:
db> print $ecx
     400
db> print $edi
c0602000
db> w vm_page_zero_enable 0
vm_page_zero_enable                    0x1 =          0
db> c

    This time, I changed vm_page_zero_enable to zero with
    hope this may help me.  Kernel crashs again with
    different message "uvm_fault(0xc04f14e0, 0xc0602000, 0, 3) -> 1."

db> c
uvm_fault(0xc04f14e0, 0xc0602000, 0, 3) -> 1
kernel: page fault trap, code=0
Stopped in sh at        pmap_zero_page+0x39:    repe stosl
%es:(%edi)
db> t
pmap_zero_page(2402000,0,948a000,c04f1480,8) at
pmap_zero_page+0x39
uvm_pagealloc_strat(c04f1480,948a000,0,0,2) at
uvm_pagealloc_strat+0x2c2
uao_get(c04f1480,948a000,0,c9ececa8,c9ececa0) at
uao_get+0x101
uvm_fault(c04f14e0,c948a000,0,3,0) at uvm_fault+0x830
trap() at trap+0x431
--- trap (number 6) ---
sys_execve(c9eb67ec,c9ecef88,c9ecef80,0,80b20b8) at
sys_execve+0x160
syscall() at syscall+0x234
--- syscall (number 59) ---
0x806d4d7:
db> print ecx
Symbol not found
db> print $ecx
     400
db> print $edi
c0602000
db> c

    Then, I continued.  The NetBSD continues the compilation
    for a while, then it hangs.  It replys to ping.
    However, I cannot do any interactive works, so I reboot
    my machine from kernel debugger.  That's all of my
    experience.

    Now, I'm using edited and re-compiled kernel without
    changing vm_page_zero_enable to zero.  It crashs
    sometimes, but I can continue if I was in the home.  I
    hope someone can solve this problem soon.

   On May 29, 22:28, Jukka Marin wrote:
   > Subject: Re: i386 snapshot panics all the time
   > On Mon, May 29, 2000 at 12:15:13PM -0700, Jason R Thorpe wrote:
   > >  > Not sure of the relevance, but my problem box is also a Cyrix:
   > >  > 
   > >  > cpu0: family 6 model 0 step 0
   > >  > cpu0: Cyrix 6x86MX (686-class)
   > > 
   > > It probably is.
   > 
   > Hey, all we need is a bunch of good monkeys to type "continue<ENTER>"
   > whenever the system panics! :-)
   > 
   >   -jm

Yes.  I'm doing the same monkey businnes to compile whole
user land again and again.  However, is this really safety?


   On May 30, 20:10, Manuel Bouyer wrote:
   > Subject: Re: i386 snapshot panics all the time
   > Just an idea: could peoples with this vm_page_zero() problem try to disable
   > the internal cache and see how it goes ?
   > I've an older cyrix CPU which has problems under -current with the internal
   > cache enabled ... it doesn't panic in the same way though.

I've not installed VGA card, so I cannot do it now.  I'll do
it if nobody cannot solve this problem, but I don't like
this way.  Is there any way to get old stable pmap.c?

Thanks,
-- Kazushi
Absent, adj.:
	Exposed to the attacks of friends and acquaintances; defamed;
slandered.