Subject: kern/29521: Frequent faults in uvm_pagelookup
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: None <qgarnier@eve-team.com>
List: netbsd-bugs
Date: 02/24/2005 13:26:00
>Number: 29521
>Category: kern
>Synopsis: Frequent faults in uvm_pagelookup
>Confidential: no
>Severity: critical
>Priority: high
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu Feb 24 13:26:00 +0000 2005
>Originator: Quentin Garnier
>Release: NetBSD 2.99.14
>Organization:
>Environment:
System: NetBSD storo.eve 2.99.14 NetBSD 2.99.14 (STORO) #1: Mon Jan 17 12:21:45 CET 2005 qgarnier@storo.eve:/home/src/current/obj/home/src/current/src/sys/arch/i386/compile/STORO i386
Architecture: i386
Machine: i386
>Description:
I frequently get fatal page faults in uvm_pagelookup(). The back trace
is not always the same, but it usually get through genfs_getpages().
I have a few dumps in case someone can work out some magic out of them.
First I used NetBSD 2.0 on that host, but it was too painful, so I
switched to a slightly better -current, as shown in the env field. NFS
is now a bit better, but I'm afraid I haven't won on the stability side
after all.
I can't hook kgdb on that host, but I'd really really like to see that
issue solved, so I'm ready to answer any query. But it's kind of a last
hope thing...
Example back trace:
#12 0xc0265ea8 in trap (frame=0xcf7fb660)
at /home/src/current/src/sys/arch/i386/i386/trap.c:296
#13 0xc0102c97 in calltrap ()
#14 0xc0254b53 in uvn_findpage (uobj=0xd3505740, offset=2965504,
pgp=0xcf7fb8a4, flags=1) at /home/src/current/src/sys/uvm/uvm_vnode.c:379
#15 0xc0254ae1 in uvn_findpages (uobj=0xd3505740, offset=2949120,
npagesp=0xcf7fb820, pgs=0xcf7fb894, flags=1)
at /home/src/current/src/sys/uvm/uvm_vnode.c:348
#16 0xc0223684 in genfs_getpages (v=0xcf7fba04)
at /home/src/current/src/sys/miscfs/genfs/genfs_vnops.c:579
#17 0xc0224159 in genfs_getpages (v=0xcf7fbad4)
at /home/src/current/src/sys/sys/vnode_if.h:1923
#18 0xc0254a04 in uvn_get (uobj=0xd3505740, offset=2879488, pps=0xc2a06b50,
npagesp=0xcf7fbb58, centeridx=0, access_type=1, advice=0, flags=2)
at /home/src/current/src/sys/sys/vnode_if.h:1923
#19 0xc0245daa in uvm_loanuobjpages (uobj=0xd3505740, pgoff=2879488,
orignpages=1, origpgpp=0xc2a06b50)
at /home/src/current/src/sys/uvm/uvm_loan.c:552
#20 0xc015b05e in nfsrv_read (nfsd=0xcf835510, slp=0xc23a9400,
procp=0xcdedbe60, mrq=0xcf7fbdc8)
at /home/src/current/src/sys/nfs/nfs_serv.c:686
As usual, the actual frame where the fault happens is shadowed by
calltrap(), but line 379 of uvm_vnode.c is a call to uvm_pagelookup().
>How-To-Repeat:
Use NetBSD for a busy NFS server.
>Fix:
Unknown.