Subject: Bug Hunt: A little nudge needed
To: None <port-vax@netbsd.org>
From: Chuck McManis <cmcmanis@mcmanis.com>
List: port-vax
Date: 05/07/1999 22:47:36
Ok, I've successfully isolated the two problems in 1.4 that I'm seeing, one
is swap death (out of buffers) on a KA630 and getting stuck in diskwait on
the KA650. Since the 650 is faster I'm currently working the disk wait
issue (that will also let me transfer to disk operation rather than diskless)

I keep running up against basic problems with DDB and I'd like a couple of
hints if you have them on how to proceed.

When my process gets stuck in diskwait, I can pop into DDB using $D and use
ps/w to see that yes, its sitting on 'biowait'. That's fine except I'd like
to know if why its waiting.

So I use

db> ps/a

To find the UAREA pointer for the stuck process, then using
that value I can use 

db> x/x $uarea/4 

($uareas is actually the hex constant) to get the kernel stack pointer and
the user stack pointer.

Now what I'd like to do is then do a kernel trace back on the process to
see how it got to biowait, but how? 

--Chuck

[And why aren't 'xf' and 'xb' implemented in the VAX port?]