Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 07 Dec 1995 16:55:25 -0800
From:      Faried Nawaz <fn@pain.csrv.uidaho.edu>
To:        current@freebsd.org
Subject:   getblk problem?
Message-ID:  <199512080055.QAA04069@pain.csrv.uidaho.edu>

next in thread | raw e-mail | index | archive | help
Hi,

I've experienced five crashes since Dec 5.  Yesterday (6th) around 5pm PST,
I sup'd -current (I had last sup'd around Dec 3), and recompiled my kernel -- 

machine		"i386"
cpu		"I486_CPU"
ident		pain
maxusers	8

options		GPL_MATH_EMULATE	#Math coprocessor emulation
options		INET			#InterNETworking
options		FFS			#Berkeley Fast Filesystem
options		"COMPAT_43"		#Compatible with BSD 4.3
options		KTRACE			#kernel tracing
options		IPACCT			#ip accounting
options		IPFIREWALL
options		IPFIREWALL_VERBOSE
options		"PCVT_FREEBSD=210"	#pcvt for os=-current
options		FAT_CURSOR		#fat cursor.
options		PCVT_PRETTYSCRNS	#pretty screensaver
options		PCVT_META_ESC		#alt = meta
options		PCVT_INHIBIT_NUMLOCK	#i hate numlock
options		JREMOD

config		kernel	root on wd0 

controller	isa0
controller	wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr
disk		wd0  at wdc0 drive 0
disk		wd1  at wdc0 drive 1
# uncomment one of the following.
#device	sc0  at isa? port "IO_KBD" tty irq 1 vector scintr
device		vt0  at isa? port "IO_KBD" tty irq 1 vector pcrint
device		npx0 at isa? port "IO_NPX" irq 13 vector npxintr
device		sio0 at isa? port "IO_COM1" tty irq 4 vector siointr
device		sio1 at isa? port "IO_COM2" tty irq 3 vector siointr
device		lpt0 at isa? port? tty irq 7 vector lptintr
device		ed1  at isa? port 0x300 net irq 15 iomem 0xd8000 vector edintr
device		pca0 at isa? port "IO_TIMER1" tty

pseudo-device	loop
pseudo-device	ether
pseudo-device	log
pseudo-device	pty		16
pseudo-device	bpfilter	2
pseudo-device	tun		1
pseudo-device	speaker
pseudo-device	vn		2


The problem appeared to have disappeared...until today.  Crashed again,
around 3pm, after being up for around 20 hours.

I rebuilt the kernel with -g, and 

; gdb -q -k
(kgdb) symbol-file kernel
Reading symbols from kernel...done.
(kgdb) exec-file /var/crash/kernel.6
(kgdb) core-file /var/crash/vmcore.6
IdlePTD 1a2000
current pcb at 19521c
panic: m_copydata
#0  boot (howto=260) at ../../i386/i386/machdep.c:942
942					dumppcb.pcb_ptd = rcr3();
(kgdb) where
#0  boot (howto=260) at ../../i386/i386/machdep.c:942
#1  0xf010fbf3 in panic (fmt=0xf015ec4c "page fault")
    at ../../kern/subr_prf.c:124
#2  0xf015f74e in trap_fatal (frame=0xf0186cb8) at ../../i386/i386/trap.c:744
#3  0xf015f2c0 in trap_pfault (frame=0xf0186cb8, usermode=0)
    at ../../i386/i386/trap.c:666
#4  0xf015ef5f in trap (frame={tf_es = -266862576, tf_ds = -261488624, 
      tf_edi = -1073610752, tf_esi = 16, tf_ebp = -266834684, 
      tf_isp = -267340059, tf_ebx = 0, tf_edx = 458832, tf_ecx = 0, 
      tf_eax = 16, tf_trapno = 12, tf_err = 0, tf_eip = -267340059, tf_cs = 8, 
      tf_eflags = 66118, tf_esp = -247748460, tf_ss = -261454080})
    at ../../i386/i386/trap.c:307
#5  0xf015809d in calltrap ()
#6  0xf010b6e5 in tsleep (ident=0xf13ba894, priority=16, 
    wmesg=0xf011f165 "getblk", timo=0) at ../../kern/kern_synch.c:295
#7  0xf011f1ea in getblk (vp=0xf06a8700, blkno=458832, size=8192, slpflag=0, 
    slptimeo=0) at ../../kern/vfs_bio.c:864
#8  0xf011e191 in bread (vp=0xf06a8700, blkno=458832, size=8192, 
    cred=0xffffffff, bpp=0xf0186da0) at ../../kern/vfs_bio.c:179
#9  0xf0140f65 in ffs_update (ap=0xf0186dc8) at ../../ufs/ffs/ffs_inode.c:133
#10 0xf01443ae in ffs_fsync (ap=0xf0186e08) at ./vnode_if.h:1034
#11 0xf01430f2 in ffs_sync (mp=0xf06ae800, waitfor=2, cred=0xf0501b80, 
    p=0xf019df48) at ./vnode_if.h:410
---Type <return> to continue, or q <return> to quit---
#12 0xf01247da in sync (p=0xf019df48, uap=0x0, retval=0x0)
    at ../../kern/vfs_syscalls.c:348
#13 0xf015a6fd in boot (howto=256) at ../../i386/i386/machdep.c:891
#14 0xf010fbf3 in panic (fmt=0xf01187c4 "m_copydata")
    at ../../kern/subr_prf.c:124
#15 0xf01187f1 in m_copydata (m=0x0, off=-1, len=1, 
    cp=0xf07edde8 "\005larry\005vdata\003com") at ../../kern/uipc_mbuf.c:367
#16 0xf013b5c5 in tcp_output (tp=0xf071d800) at ../../netinet/tcp_output.c:476
#17 0xf013a85a in tcp_input (m=0xf06c5d80, iphlen=20)
    at ../../netinet/tcp_input.c:1629
#18 0xf0135779 in ipintr () at ../../netinet/ip_input.c:466
#19 0xf015955d in swi_net_next ()
#20 0xf015e938 in cpu_switch ()
(kgdb) up
#1  0xf010fbf3 in panic (fmt=0xf015ec4c "page fault")
    at ../../kern/subr_prf.c:124
124		boot(bootopt);
(kgdb) up
#2  0xf015f74e in trap_fatal (frame=0xf0186cb8) at ../../i386/i386/trap.c:744
744			panic(trap_msg[type]);
(kgdb) up
#3  0xf015f2c0 in trap_pfault (frame=0xf0186cb8, usermode=0)
    at ../../i386/i386/trap.c:666
666			trap_fatal(frame);
(kgdb) up
#4  0xf015ef5f in trap (frame={tf_es = -266862576, tf_ds = -261488624, 
      tf_edi = -1073610752, tf_esi = 16, tf_ebp = -266834684, 
      tf_isp = -267340059, tf_ebx = 0, tf_edx = 458832, tf_ecx = 0, 
      tf_eax = 16, tf_trapno = 12, tf_err = 0, tf_eip = -267340059, tf_cs = 8, 
      tf_eflags = 66118, tf_esp = -247748460, tf_ss = -261454080})
    at ../../i386/i386/trap.c:307
307				(void) trap_pfault(&frame, FALSE);
(kgdb) up
#5  0xf015809d in calltrap ()
(kgdb) up
#6  0xf010b6e5 in tsleep (ident=0xf13ba894, priority=16, 
    wmesg=0xf011f165 "getblk", timo=0) at ../../kern/kern_synch.c:295
295		int sig, catch = priority & PCATCH;
(kgdb) up
#7  0xf011f1ea in getblk (vp=0xf06a8700, blkno=458832, size=8192, slpflag=0, 
    slptimeo=0) at ../../kern/vfs_bio.c:864
864				if (!tsleep(bp, PRIBIO | slpflag, "getblk", slptimeo))
(kgdb) up
#8  0xf011e191 in bread (vp=0xf06a8700, blkno=458832, size=8192, 
    cred=0xffffffff, bpp=0xf0186da0) at ../../kern/vfs_bio.c:179
179		bp = getblk(vp, blkno, size, 0, 0);
(kgdb) up
#9  0xf0140f65 in ffs_update (ap=0xf0186dc8) at ../../ufs/ffs/ffs_inode.c:133
133		error = bread(ip->i_devvp, fsbtodb(fs, ino_to_fsba(fs, ip->i_number)),
(kgdb) up
#10 0xf01443ae in ffs_fsync (ap=0xf0186e08) at ./vnode_if.h:1034
Source file is more recent than executable.
1034		return (VCALL(vp, VOFFSET(vop_update), &a));
(kgdb) up
#11 0xf01430f2 in ffs_sync (mp=0xf06ae800, waitfor=2, cred=0xf0501b80, 
    p=0xf019df48) at ./vnode_if.h:410
Source file is more recent than executable.
410		return (VCALL(vp, VOFFSET(vop_fsync), &a));
(kgdb) up
#12 0xf01247da in sync (p=0xf019df48, uap=0x0, retval=0x0)
    at ../../kern/vfs_syscalls.c:348
348				VFS_SYNC(mp, MNT_NOWAIT, p != NULL ? p->p_ucred : NOCRED, p);
(kgdb) up
#13 0xf015a6fd in boot (howto=256) at ../../i386/i386/machdep.c:891
891			sync(&proc0, NULL, NULL);
(kgdb) quit
; exit

I'm not sure what to look for (it's the first time I've done this).  Is
this the getblk problem, or a new one?  All my panics have been due to
"m_copydata".

It's a 486sx33 with two ide drives, trident svga video card, ne2000-ish
ethernet card.  I'm using a 32mb swap partition, and a 16mb file swap (a
vnode disk; I'm going to disable that and see what happens).
(One thing: over the weekend, I upgraded to 16mb ram (4 4x9 30pin 70ns simms)
from 8mb (4 1x9 30pin 70ns and 4 1x3 30pin 70ns simms).  Things ran fine
from Saturday until Tuesday -- no crashes.)


I'm compiling a kernel with DDB right now.


Has anyone else seen this, or something like this?


faried.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199512080055.QAA04069>