Subject: Re: uvm_fault kernel: page fault trap while un-tar-ing a large file
To: None <tech-kern@netbsd.org>
From: Juergen Hannken-Illjes <hannken@eis.cs.tu-bs.de>
List: tech-kern
Date: 06/21/2007 22:45:51
On Thu, Jun 21, 2007 at 10:07:47PM +0200, Edgar Fuß wrote:
> >Usually a va like that points to a NULL pointer dereference.
> How on earth can trunc_page(any_garbage) equal 0x10?
> Am I missing something?
>
> >Did you manage to get a line number?
> In what sense? The kdb_trap() call is from arch/amd64/amd64/trap.c:237.
> I don't have a backtrace. I don't even have the stack frame of the
> original
> trap handler because of the locking-against-myself-panic during sync.
> Maybe I'll be able to extract the frame from the tar process's kernel
> stack.
>
> Or do you mean this:
> gdb netbsd.gdb
> (gdb) info line *(dqget+0x118)
> Line 729 of "/var/tmp/src-4.0beta2/sys/ufs/ufs/ufs_quota.c"
> starts at address 0xffffffff8028e4df <dqget+255>
> and ends at 0xffffffff8028e4fb <dqget+283>.
So this is here?
/*
* Cache hit with no references. Take
* the structure off the free list.
*/
if (dq->dq_cnt == 0)
==> TAILQ_REMOVE(&dqfreelist, dq, dq_freelist);
dqref(dq);
*dqp = dq;
What about a disassembly of <dqget+255> .. <dqget+283>
--
Juergen Hannken-Illjes - hannken@eis.cs.tu-bs.de - TU Braunschweig (Germany)