Date: Sat, 15 Apr 1995 00:50:03 -0700 From: Heikki Suonsivu <hsu@clinet.fi> To: freebsd-bugs Subject: kern/345: Panic with 14th April supped kernel (EET, late evening 13th US time) Message-ID: <199504150750.AAA03090@freefall.cdrom.com> In-Reply-To: Your message of Sat, 15 Apr 1995 10:46:45 %2B0300 <199504150746.KAA00893@katiska.clinet.fi>
index | next in thread | previous in thread | raw e-mail
>Number: 345
>Category: kern
>Synopsis: panic "biodone: page busy < 0"
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: freebsd-bugs (FreeBSD bugs mailing list)
>State: open
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Sat Apr 15 00:50:02 1995
>Originator: Heikki Suonsivu
>Organization:
Helsinki University of Technology, Finland
>Release: FreeBSD 2.1.0-Development i386
>Environment:
P60 MSI motherboard, BT PCI SCSI (a month old), 32M, 512kB cache,
1G IBM 0662 and Seagate Barracuda 2G.
FreeBSD 2.1.0-Development
#0: Fri Apr 14 07:12:38 EET DST 1995
hsu@katiska.clinet.fi:/usr/current/src/sys/compile/CLINETSERVER
CPU: 56-MHz Pentium 510\60 or 567\66 (Pentium-class CPU)
Origin = "GenuineIntel" Id = 0x515 Stepping=5 Features=0x1bf<FPU,VME,PSE,MC
E,CX8,APIC>
real memory = 33161216 (8096 pages)
avail memory = 30236672 (7382 pages)
Probing for devices on the ISA bus:
sc0 at 0x60-0x6f irq 1 on motherboard
sc0: VGA color <16 virtual consoles, flags=0x0>
ed0 at 0x280-0x29f irq 5 on isa
ed0: address 00:4f:56:00:93:c4, type NE2000 (16 bit)
bpf: ed0 attached
lpt0 not found at 0x3bc
sio0 at 0x3f8-0x3ff irq 4 on isa
sio0: type 16450
sio1 not found at 0x2f8
sio2 not found at 0x3e8
sio3 not found at 0x2e8
pca0 on isa
pca0: PC speaker audio driver
bt0: Bt946C/ 0-PCI/EISA/VLB(32bit) bus
bt0: reading board settings, busmastering, int=11
bt0: version 4.23, sync, parity, 32 mbxs, 32 ccbs
bt0: targ 0 sync rate=10.00MB/s(100ns), offset=15
bt0: targ 1 sync rate=10.00MB/s(100ns), offset=15
bt0: Enabling Round robin scheme
bt0 at 0x330 irq 11 on isa
bt0 waiting for scsi devices to settle
(bt0:0:0): "IBM 0662S12 !O 2 23" is a type 0 fixed SCSI 2
sd is configured at 0
sd0(bt0:0:0): Direct-Access 1003MB (2055035 S), 4119 C 5 H 99 S/T 512 B/S
(bt0:1:0): "SEAGATE ST32550N 0012" is a type 0 fixed SCSI 2
sd is configured at 1
sd1(bt0:1:0): Direct-Access 2047MB (4194058 S), 3511 C 11 H 108 S/T 512 B/S
aha0 not probed due to I/O address conflict with bt0 at 0x330
wdc0 not found at 0x1f0
wdc1 not found at 0x170
fdc0 at 0x3f0-0x3f7 irq 6 drq 2 on isa
fdc0: NEC 765
fd0: 1.44MB 3.5in
mcd0: timeout getting status
mcd0 not found at 0x300
le0: no board found at 0x300
le0 not found at 0x300
npx0 on motherboard
npx0: INT 16 interface
matcd0 not found at 0xffffffff
matcd1 not found at 0xffffffff
matcd2 not found at 0xffffffff
matcd3 not found at 0xffffffff
bio_imask c0000840 tty_imask c0030032 net_imask c0030032
Probing for devices on the pci0 bus:
configuration mode 2 allows 16 devices.
pci0:0: vendor=0x10b9, device=0x1451, class=bridge [not supported]
pci0:2: vendor=0x10b9, device=0x1449, class=old [not supported]
pci0:3: vendor=0x104b, device=0x1040, class=storage [not supported]
map(10): io(ffe4)
changing root device to sd0a
sd0s1: start 0, end = 2055034, size 2055035: OK
sd1s1: start 0, end = 4194057, size 4194058: OK
sd0s1: start 0, end = 2055034, size 2055035: OK
bpf: ds0 attached
bpf: lo0 attached
bpf: ppp0 attached
bpf: ppp1 attached
bpf: ppp2 attached
bpf: ppp3 attached
bpf: ppp4 attached
bpf: ppp5 attached
bpf: ppp6 attached
bpf: ppp7 attached
bpf: ppp8 attached
bpf: ppp9 attached
bpf: ppp10 attached
bpf: ppp11 attached
bpf: ppp12 attached
bpf: ppp13 attached
bpf: ppp14 attached
bpf: ppp15 attached
bpf: ppp16 attached
bpf: ppp17 attached
bpf: ppp18 attached
bpf: ppp19 attached
bpf: ppp20 attached
bpf: ppp21 attached
bpf: ppp22 attached
bpf: ppp23 attached
bpf: ppp24 attached
bpf: ppp25 attached
bpf: ppp26 attached
bpf: ppp27 attached
bpf: ppp28 attached
bpf: ppp29 attached
bpf: ppp30 attached
bpf: ppp31 attached
bpf: sl0 attached
bpf: sl1 attached
bpf: sl2 attached
bpf: sl3 attached
bpf: sl4 attached
bpf: sl5 attached
bpf: sl6 attached
bpf: sl7 attached
bpf: sl8 attached
bpf: sl9 attached
bpf: sl10 attached
bpf: sl11 attached
bpf: sl12 attached
bpf: sl13 attached
bpf: sl14 attached
bpf: sl15 attached
bpf: tun0 attached
sd0s1: start 0, end = 2055034, size 2055035: OK
sd1s1: start 0, end = 4194057, size 4194058: OK
sd1s1: start 0, end = 4194057, size 4194058: OK
biodone: page busy < 0, off: 196608, foff: 196608, resid: 4096, index: 0
iosize: 8192, lblkno: 24
valid: 0xff, dirty: 0x0, mapped: 0
panic: biodone: page busy < 0
syncing disks... 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 giving up
dumping to dev 401, offset 344064
dump 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7
6 5 4 3 2 1
>Description:
Current directory is /var/crash/
Reading symbol data from /var/crash/kernel.15...done.
(kgdb) core vmcore.15
IdlePTD 246000
panic: biodone: page busy < 0
current pcb at 1f74c4
Reading in symbols for ../../i386/i386/machdep.c...done.
(kgdb) up
Reading in symbols for ../../kern/subr_prf.c...done.
#1 0xf0114ab3 in panic (fmt=(char *) 0xf0126f68 "biodone: page busy < 0\n") (../../kern/subr_prf.c line 128)
128 (../../kern/subr_prf.c)
(kgdb) directory /usr/src/sys/compile/CLINETSERVER
Source directories searched: /m/katiska/news/crash:/usr/src/sys/compile/CLINETSERVER
(kgdb) up
Reading in symbols for ../../kern/vfs_bio.c...done.
#2 0xf0127187 in biodone (bp=(struct buf *) 0xf27043b8) (../../kern/vfs_bio.c line 1134)
(kgdb) print *m
$1 = {pageq = {tqe_next = 0x0, tqe_prev = 0xf02c12c4}, hashq = {tqe_next = 0x0, tqe_prev = 0xf0268580}, listq = {tqe_next = 0xf02bb2e4, tqe_prev = 0xf02bec08}, object = 0xf0e2a280, offset = 0x00030000, phys_addr = 0x018dc000, wire_count = 0x0000, flags = 0x0042, hold_count = 0, act_count = 0x0000, bmapped = 0x0000, busy = 0x0000, valid = 0x00ff, dirty = 0x0000}
(kgdb) bt
#0 boot (arghowto=256) (../../i386/i386/machdep.c line 850)
#1 0xf0114ab3 in panic (fmt=(char *) 0xf0126f68 "biodone: page busy < 0\n") (../../kern/subr_prf.c line 128)
#2 0xf0127187 in biodone (bp=(struct buf *) 0xf27043b8) (../../kern/vfs_bio.c line 1134)
#3 0xf015cf2b in nfs_doio (...)
#4 0xf015bcba in nfs_bioread (...)
#5 0xf0174022 in nfs_read (...)
#6 0xf012f012 in vn_read (...)
#7 0xf0115c9b in read (...)
#8 0xf01b9a8d in syscall (...)
(kgdb) up
Reading in symbols for ../../nfs/nfs_bio.c...done.
#3 0xf015cf2b in nfs_doio (bp=(struct buf *) 0xf27043b8, cr=(struct ucred *) 0xf0db7f00, p=(struct proc *) 0xf0d4a900) (../../nfs/nfs_bio.c line 867)
(kgdb) up
#4 0xf015bcba in nfs_bioread (vp=(struct vnode *) 0xf0ab9800, uio=(struct uio *) 0xefbfff28, ioflag=0, cred=(struct ucred *) 0xf0db7f00) (../../nfs/nfs_bio.c line 249)
(kgdb) down
#3 0xf015cf2b in nfs_doio (bp=(struct buf *) 0xf27043b8, cr=(struct ucred *) 0xf0db7f00, p=(struct proc *) 0xf0d4a900) (../../nfs/nfs_bio.c line 867)
(kgdb) down
#2 0xf0127187 in biodone (bp=(struct buf *) 0xf27043b8) (../../kern/vfs_bio.c line 1134)
(kgdb) down
#1 0xf0114ab3 in panic (fmt=(char *) 0xf0126f68 "biodone: page busy < 0\n") (../../kern/subr_prf.c line 128)
(kgdb) up
#2 0xf0127187 in biodone (bp=(struct buf *) 0xf27043b8) (../../kern/vfs_bio.c line 1134)
(kgdb) up
#3 0xf015cf2b in nfs_doio (bp=(struct buf *) 0xf27043b8, cr=(struct ucred *) 0xf0db7f00, p=(struct proc *) 0xf0d4a900) (../../nfs/nfs_bio.c line 867)
(kgdb) print bp
$2 = (struct buf *) 0xf27043b8
(kgdb) print *bp
$3 = {b_hash = {le_next = 0xf26e8408, le_prev = 0xf0228c24}, b_vnbufs = {le_next = 0xf26e9928, le_prev = 0xf0ab982c}, b_freelist = {tqe_next = 0x0, tqe_prev = 0xf01f7648}, b_actf = 0x0, b_actb = 0x0, b_proc = 0x0, b_flags = 537920016, b_qindex = 0, b_error = 0, b_bufsize = 8192, b_bcount = 8192, b_resid = 0, b_dev = 0xffffffff, b_un = {b_addr = 0xf3438000 "\366t\005\270D\024\004"}, b_saveaddr = 0x0, b_lblkno = 24, b_blkno = 384, b_iodone = 0x0, b_iodone_chain = 0x0, b_vp = 0xf0ab9800, b_pfcent = 0, b_dirtyoff = 0, b_dirtyend = 0, b_rcred = 0xffffffff, b_wcred = 0xffffffff, b_validoff = 0, b_validend = 8192, b_pblkno = 233688, b_savekva = 0x0, b_driver1 = 0x0, b_driver2 = 0x0, b_spc = 0x0, b_pages = {0xf02c9c7c, 0xf0283488, 0x0 <repeats 14 times>}, b_npages = 2}
(kgdb) up
#4 0xf015bcba in nfs_bioread (vp=(struct vnode *) 0xf0ab9800, uio=(struct uio *) 0xefbfff28, ioflag=0, cred=(struct ucred *) 0xf0db7f00) (../../nfs/nfs_bio.c line 249)
(kgdb) print cred
$4 = (struct ucred *) 0xf0db7f00
(kgdb) print *cred
$5 = {cr_ref = 0x002d, cr_uid = 0x000005b5, cr_ngroups = 2, cr_groups = {0x000003e8, 0x000003e8, 0x00000000 <repeats 14 times>}}
(kgdb) print p
$6 = (struct proc *) 0xf0d4a900
(kgdb) print *proc
No symbol "proc" in current context.
(kgdb) print *p
$7 = {p_forw = 0xf0228efc, p_back = 0x0, p_next = 0xf0bdad00, p_prev = 0xf0e65c08, p_cred = 0xf0cbfa20, p_fd = 0xf0ce0180, p_stats = 0xf4694288, p_limit = 0xf022fdf4, p_vmspace = 0xf0b8d100, p_sigacts = 0xf469415c, p_flag = 16390, p_stat = 2, p_pad1 = {"\276\255\336"}, p_pid = 6952, p_hash = 0x0, p_pgrpnxt = 0x0, p_pptr = 0xf0bdad00, p_osptr = 0x0, p_ysptr = 0x0, p_cptr = 0x0, p_oppid = 0, p_dupfd = 0, p_estcpu = 0x000003f8, p_cpticks = 994, p_pctcpu = 0x0000001e, p_wchan = 0x0, p_wmesg = 0xf01e41d0 "netio", p_swtime = 0x00000090, p_slptime = 0x00000000, p_realtimer = {it_interval = {tv_sec = 0, tv_usec = 0}, it_value = {tv_sec = 0, tv_usec = 0}}, p_rtime = {tv_sec = 5, tv_usec = 29118}, p_uticks = 0x18e, p_sticks = 0x48d, p_iticks = 0x56, p_traceflag = 0, p_tracep = 0x0, p_siglist = 0, p_textvp = 0xf0ab9800, p_lock = 0, p_pad2 = {"\000\000\000"}, p_spare = {0, 0}, p_sigmask = 0x00000000, p_sigignore = 0x10489000, p_sigcatch = 0x28044003, p_priority = 0x18, p_usrpri = 0x7f, !
p_nice = 0, p_comm = {"irc1\000n", '\000' <repeats 11 times>}, p_pgrp = 0xf0e85e40, p_sysent = 0xf01e3620, p_rtprio = {type = 0x0001, prio = 0x0000}, p_thread = -559038737, p_addr = 0xf4694000, p_md = {md_flags = -559038737, md_regs = 0xefbfffbc}, p_xstat = 0xbeef, p_acflag = 0x0000, p_ru = 0xdeadbeef}
(kgdb) list
244 got_buf = 1;
245 if ((bp->b_flags & (B_DONE | B_DELWRI)) == 0) {
246 bp->b_flags |= B_READ;
247 not_readin = 0;
248 vfs_busy_pages(bp, 0);
249 error = nfs_doio(bp, cred, p);
250 if (error) {
251 brelse(bp);
252 return (error);
253 }
(kgdb) up
Reading in symbols for ../../nfs/nfs_vnops.c...done.
#5 0xf0174022 in nfs_read (ap=(struct vop_read_args *) 0xefbffedc) (../../nfs/nfs_vnops.c line 780)
(kgdb) list
775 {
776 register struct vnode *vp = ap->a_vp;
777
778 if (vp->v_type != VREG)
779 return (EPERM);
780 return (nfs_bioread(vp, ap->a_uio, ap->a_ioflag, ap->a_cred));
781 }
782
783 /*
784 * nfs readlink call
(kgdb) print *vp
Cannot read memory: address 0x0 out of bounds.
(kgdb) print *ap
Cannot read memory: address 0x0 out of bounds.
(kgdb) print ap
$8 = (struct vop_read_args *) 0x0
(kgdb) print vp
$9 = (struct vnode *) 0x0
(kgdb) print (struct vop_read_args *) 0xefbffedc
Undefined command: "".
(kgdb) print *(struct vop_read_args *) 0xefbffedc
$10 = (struct vop_read_args *) 0xefbffedc
(kgdb) print *(struct vop_read_args *) 0xefbffedc
$11 = {a_desc = 0xf01e223c, a_vp = 0xf0ab9800, a_uio = 0xefbfff28, a_ioflag = 0, a_cred = 0xf0db7f00}
(kgdb) up
Reading in symbols for ../../kern/vfs_vnops.c...done.
#6 0xf012f012 in vn_read (fp=(struct file *) 0xf0ec9fc0, uio=(struct uio *) 0xefbfff28, cred=(struct ucred *) 0xf0db7f00) (./vnode_if.h line 211)
Source file is more recent than executable.
(kgdb) print *vp
$12 = {v_flag = 0x00002002, v_usecount = 4, v_writecount = 0, v_holdcnt = 25, v_lastr = 23, v_id = 0x0001c621, v_mount = 0xf0afb600, v_op = 0xf0a18f00, v_freelist = {tqe_next = 0xf0c02a80, tqe_prev = 0xf0adec9c}, v_mntvnodes = {le_next = 0xf0ba4c80, le_prev = 0xf0b800a4}, v_cleanblkhd = {lh_first = 0xf27043b8}, v_dirtyblkhd = {lh_first = 0x0}, v_numoutput = 0, v_type = VREG, v_un = {vu_mountedhere = 0x0, vu_socket = 0x0, vu_specinfo = 0x0, vu_fifoinfo = 0x0}, v_lease = 0x0, v_lastw = 0, v_cstart = 0, v_lasta = 0, v_clen = 0, v_ralen = 0, v_maxra = 0, v_vmdata = 0xf0e2a280 "\364\324,\360\364\262+\360", v_tag = VT_NFS, v_data = 0xf0df5900}
(kgdb) print *uio
$13 = {uio_iov = 0xefbfff20, uio_iovcnt = 1, uio_offset = 196608, uio_resid = 2048, uio_segflg = UIO_USERSPACE, uio_rw = UIO_READ, uio_procp = 0xf0d4a900}
(kgdb) print *ioflag
No symbol "ioflag" in current context.
(kgdb) print *cred
$14 = {cr_ref = 0x002d, cr_uid = 0x000005b5, cr_ngroups = 2, cr_groups = {0x000003e8, 0x000003e8, 0x00000000 <repeats 14 times>}}
(kgdb) list
206 a.a_desc = VDESC(vop_read);
207 a.a_vp = vp;
208 a.a_uio = uio;
209 a.a_ioflag = ioflag;
210 a.a_cred = cred;
211 return (VCALL(vp, VOFFSET(vop_read), &a));
212 }
213 struct vop_write_args {
214 struct vnodeop_desc *a_desc;
215 struct vnode *a_vp;
(kgdb) up
Reading in symbols for ../../kern/sys_generic.c...done.
#7 0xf0115c9b in read (p=(struct proc *) 0xf0d4a900, uap=(struct read_args *) 0xefbfff94, retval=(int *) 0xefbfff8c) (../../kern/sys_generic.c line 112)
(kgdb) print *fp
Cannot read memory: address 0x0 out of bounds.
(kgdb) print fp
$15 = (struct file *) 0x0
(kgdb) print *(struct read_args *) 0xefbfff94
$16 = {fd = 7, buf = 0xefbfbfb8 , nbyte = 0x00000800}
(kgdb) up
Reading in symbols for ../../i386/i386/trap.c...done.
#8 0xf01b9a8d in syscall (frame={tf_es = 39, tf_ds = 39, tf_edi = 617216, tf_esi = -272646216, tf_ebp = -272644164, tf_isp = -272629788, tf_ebx = 617216, tf_edx = 292332, tf_ecx = 8, tf_eax = 3, tf_trapno = 530, tf_err = 530, tf_eip = 134625685, tf_cs = 31, tf_eflags = 530, tf_esp = -272646244, tf_ss = 39}) (../../i386/i386/trap.c line 828)
(kgdb) print args
$17 = {7, -272646216, 2048, 0, 0, 0, 1073741823, -272644164}
(kgdb) print rval
$18 = {0, 292332}
(kgdb) up
Initial frame selected; you cannot go up.
(kgdb) list
823 ktrsyscall(p->p_tracep, code, callp->sy_narg, args);
824 #endif
825 rval[0] = 0;
826 rval[1] = frame.tf_edx;
827
828 error = (*callp->sy_call)(p, args, rval);
829
830 switch (error) {
831
832 case 0:
(kgdb) down
#7 0xf0115c9b in read (p=(struct proc *) 0xf0d4a900, uap=(struct read_args *) 0xefbfff94, retval=(int *) 0xefbfff8c) (../../kern/sys_generic.c line 112)
(kgdb) list
107 */
108 if (KTRPOINT(p, KTR_GENIO))
109 ktriov = aiov;
110 #endif
111 cnt = uap->nbyte;
112 if ((error = (*fp->f_ops->fo_read)(fp, &auio, fp->f_cred)))
113 if (auio.uio_resid != cnt && (error == ERESTART ||
114 error == EINTR || error == EWOULDBLOCK))
115 error = 0;
116 cnt -= auio.uio_resid;
(kgdb) down
#6 0xf012f012 in vn_read (fp=(struct file *) 0xf0ec9fc0, uio=(struct uio *) 0xefbfff28, cred=(struct ucred *) 0xf0db7f00) (./vnode_if.h line 211)
(kgdb) list
206 a.a_desc = VDESC(vop_read);
207 a.a_vp = vp;
208 a.a_uio = uio;
209 a.a_ioflag = ioflag;
210 a.a_cred = cred;
211 return (VCALL(vp, VOFFSET(vop_read), &a));
212 }
213 struct vop_write_args {
214 struct vnodeop_desc *a_desc;
215 struct vnode *a_vp;
(kgdb) down
#5 0xf0174022 in nfs_read (ap=(struct vop_read_args *) 0xefbffedc) (../../nfs/nfs_vnops.c line 780)
(kgdb) list
775 {
776 register struct vnode *vp = ap->a_vp;
777
778 if (vp->v_type != VREG)
779 return (EPERM);
780 return (nfs_bioread(vp, ap->a_uio, ap->a_ioflag, ap->a_cred));
781 }
782
783 /*
784 * nfs readlink call
(kgdb) down
#4 0xf015bcba in nfs_bioread (vp=(struct vnode *) 0xf0ab9800, uio=(struct uio *) 0xefbfff28, ioflag=0, cred=(struct ucred *) 0xf0db7f00) (../../nfs/nfs_bio.c line 249)
(kgdb) list
244 got_buf = 1;
245 if ((bp->b_flags & (B_DONE | B_DELWRI)) == 0) {
246 bp->b_flags |= B_READ;
247 not_readin = 0;
248 vfs_busy_pages(bp, 0);
249 error = nfs_doio(bp, cred, p);
250 if (error) {
251 brelse(bp);
252 return (error);
253 }
(kgdb) down
#3 0xf015cf2b in nfs_doio (bp=(struct buf *) 0xf27043b8, cr=(struct ucred *) 0xf0db7f00, p=(struct proc *) 0xf0d4a900) (../../nfs/nfs_bio.c line 867)
(kgdb) list
862 }
863 bp->b_dirtyoff = bp->b_dirtyend = 0;
864 }
865 }
866 bp->b_resid = uiop->uio_resid;
867 biodone(bp);
868 return (error);
869 }
(kgdb) down
#2 0xf0127187 in biodone (bp=(struct buf *) 0xf27043b8) (../../kern/vfs_bio.c line 1134)
(kgdb) list
1129 m->offset, foff, resid, i);
1130 printf(" iosize: %d, lblkno: %d\n",
1131 bp->b_vp->v_mount->mnt_stat.f_iosize, bp->b_lblkno);
1132 printf(" valid: 0x%x, dirty: 0x%x, mapped: %d\n",
1133 m->valid, m->dirty, m->bmapped);
1134 panic("biodone: page busy < 0\n");
1135 }
1136 --m->busy;
1137 if( (m->busy == 0) && (m->flags & PG_WANTED))
1138 wakeup((caddr_t) m);
(kgdb) list 1122
1117 if (!bogusflag && resid > 0) {
1118 vm_page_set_valid(m, foff & (PAGE_SIZE-1), resid);
1119 vm_page_set_clean(m, foff & (PAGE_SIZE-1), resid);
1120 }
1121
1122 /*
1123 * when debugging new filesystems or buffer I/O methods, this
1124 * is the most common error that pops up. if you see this, you
1125 * have not set the page busy flag correctly!!!
1126 */
(kgdb) list
1127 if (m->busy == 0) {
1128 printf("biodone: page busy < 0, off: %d, foff: %d, resid: %d, index: %d\n",
1129 m->offset, foff, resid, i);
1130 printf(" iosize: %d, lblkno: %d\n",
1131 bp->b_vp->v_mount->mnt_stat.f_iosize, bp->b_lblkno);
1132 printf(" valid: 0x%x, dirty: 0x%x, mapped: %d\n",
1133 m->valid, m->dirty, m->bmapped);
1134 panic("biodone: page busy < 0\n");
1135 }
1136 --m->busy;
(kgdb) list
1137 if( (m->busy == 0) && (m->flags & PG_WANTED))
1138 wakeup((caddr_t) m);
1139 --obj->paging_in_progress;
1140 foff += resid;
1141 iosize -= resid;
1142 }
1143 if (obj && obj->paging_in_progress == 0 &&
1144 (obj->flags & OBJ_PIPWNT)) {
1145 obj->flags &= ~OBJ_PIPWNT;
1146 wakeup((caddr_t) obj);
(kgdb) list
1147 }
1148 }
1149 /*
1150 * For asynchronous completions, release the buffer now. The brelse
1151 * checks for B_WANTED and will do the wakeup there if necessary - so
1152 * no need to do a wakeup here in the async case.
1153 */
1154
1155 if (bp->b_flags & B_ASYNC) {
1156 brelse(bp);
(kgdb)
>How-To-Repeat:
Hard to say. The system tries to run as an nntp server but
there are often other users in the system as well. With -current it
seems to panic about twice a day, sometimes corrupting a couple of
files or a directory. I'll try to send more dumps and update kernel
every couple of days or so.
>Fix:
Dunno,
--
Heikki Suonsivu, T{ysikuu 10 C 83/02210 Espoo/FINLAND,
hsu@cs.hut.fi home +358-0-8031121 work -4513377 fax -4555276 riippu SN
>Audit-Trail:
>Unformatted:
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199504150750.AAA03090>
