2 LORs on my NFS server.

Tilman Linneweh tilman at arved.de
Fri Aug 15 07:16:59 PDT 2003


Hi list,

My CURRENT is already a bit old:

# uname -a
FreeBSD polly.arved.de 5.1-CURRENT FreeBSD 5.1-CURRENT #1: Sun Jul 20
01:00:14 CEST 2003    
tilman at sauna.arved.de:/usr/obj/usr/src/CURRENT/sys/POLLY  i386

But at least the first problem looks like it hasn't been fixed yet:

This happend while the machine was NFS-serving around 3 clients with
normal udp NFS and a  fourth. client tried to mount something via
mount_nfs -T -a 2

vmcore.1:

Debugger(c0382315) at Debugger+0x45
witness_lock(c04599ec,8,c03b13ee,26d,0) at witness_lock+0x54e
_mtx_lock_flags(c04599ec,0,c03b13ee,26d) at _mtx_lock_flags+0x7d
tcp_usr_rcvd(c1b7d600,80) at tcp_usr_rcvd+0x1b
soreceive(c1b7d600,c8724b1c,c8724b28,c8724b20,0) at soreceive+0x789
nfsrv_rcv(c1b7d600,c20f2e00,4) at nfsrv_rcv+0x72
sowakeup(c1b7d600,c1b7d64c) at sowakeup+0x75
tcp_input(c0bc1600,14) at tcp_input+0x11df
ip_input(c0bc1600) at ip_input+0x7a0
swi_net(0) at swi_net+0xe7
ithread_loop(c0b8a080,c8724d48,c0b8cbe0,c02134a0,0) at
ithread_loop+0x126
fork_exit(c02134a0,c0b8a080,c8724d48) at fork_exit+0xab
fork_trampoline() at fork_trampoline+0x1a
db> show locks
exclusive sleep mutex inp r = 0 (0xc1a7de0c) locked @
/usr/src/CURRENT/sys/netinet/tcp_input.c:650
exclusive sleep mutex netisr lock r = 0 (0xc0457140) locked @
/usr/src/CURRENT/sys/net/netisr.c:215
exclusive sleep mutex Giant r = 0 (0xc042eac0) locked @
/usr/src/CURRENT/sys/kern/kern_intr.c:533


(kgdb) bt
#0  doadump () at /usr/src/CURRENT/sys/kern/kern_shutdown.c:240
#1  0xc014e7f8 in db_fncall (dummy1=0, dummy2=0, dummy3=-1069114912,
    dummy4=0xc87248d8 "ôHrÈȹ!ÀèHrÈ\001\215\"ÀôHrÈø\003")
    at /usr/src/CURRENT/sys/ddb/db_command.c:547
#2  0xc014e5f0 in db_command (last_cmdp=0xc0419460, cmd_table=0x0,
    aux_cmd_tablep=0xc03c9410, aux_cmd_tablep_end=0xc03c9414)
    at /usr/src/CURRENT/sys/ddb/db_command.c:346
#3  0xc014e6cb in db_command_loop ()
    at /usr/src/CURRENT/sys/ddb/db_command.c:471
#4  0xc0150f8a in db_trap (type=3, code=0)
    at /usr/src/CURRENT/sys/ddb/db_trap.c:73
#5  0xc0351ef5 in kdb_trap (type=3, code=0, regs=0xc8724a04)
    at /usr/src/CURRENT/sys/i386/i386/db_interface.c:172
#6  0xc03612da in trap (frame=
      {tf_fs = 24, tf_es = 16, tf_ds = 16, tf_edi = -1069194936, tf_esi
= -1069180436, tf_ebp = -932033976, tf_isp = -932034000, tf_ebx = 0,
tf_edx = 0, tf_ecx = 1, tf_eax = 25, tf_trapno = 3, tf_err = 0, tf_eip =
-1070259835, tf_cs = 8, tf_eflags = 662, tf_esp = -1069194932, tf_ss =
-932033928})
    at /usr/src/CURRENT/sys/i386/i386/trap.c:595
#7  0xc0353558 in calltrap () at {standard input}:102
#8  0xc0242c4e in witness_lock (lock=0xc04599ec, flags=8,
    file=0xc03b13ee "/usr/src/CURRENT/sys/netinet/tcp_usrreq.c",
line=621)
    at /usr/src/CURRENT/sys/kern/subr_witness.c:838
#9  0xc021b7dd in _mtx_lock_flags (m=0xc04599ec, opts=0,
---Type <return> to continue, or q <return> to quit---
    file=0xc03b13ee "/usr/src/CURRENT/sys/netinet/tcp_usrreq.c",
line=621)
    at /usr/src/CURRENT/sys/kern/kern_mutex.c:334
#10 0xc02a9b1b in tcp_usr_rcvd (so=0x0, flags=128)
    at /usr/src/CURRENT/sys/netinet/tcp_usrreq.c:621
#11 0xc0257829 in soreceive (so=0xc1b7d600, psa=0xc8724b1c,
uio=0xc8724b28,
    mp0=0xc8724b20, controlp=0x0, flagsp=0xc8724b24)
    at /usr/src/CURRENT/sys/kern/uipc_socket.c:1087
#12 0xc1a9ff92 in nfsrv_rcv (so=0xc1b7d600, arg=0xc20f2e00, waitflag=4)
    at /usr/src/CURRENT/sys/nfsserver/nfs_srvsock.c:445
#13 0xc0258e35 in sowakeup (so=0xc1b7d600, sb=0xc1b7d64c)
    at /usr/src/CURRENT/sys/kern/uipc_socket2.c:320
#14 0xc02a1abf in tcp_input (m=0xc0bc1600, off0=20)
    at /usr/src/CURRENT/sys/netinet/tcp_input.c:1108
#15 0xc029c6c0 in ip_input (m=0xc0bc1600)
    at /usr/src/CURRENT/sys/netinet/ip_input.c:943
#16 0xc0284507 in swi_net (dummy=0x0) at
/usr/src/CURRENT/sys/net/netisr.c:236
#17 0xc02135c6 in ithread_loop (arg=0xc0b8a080)
    at /usr/src/CURRENT/sys/kern/kern_intr.c:534
#18 0xc021294b in fork_exit (callout=0xc02134a0 <ithread_loop>,
    arg=0xc0b8a080, frame=0xc8724d48)
    at /usr/src/CURRENT/sys/kern/kern_fork.c:794
(kgdb) fr 12
#12 0xc1a9ff92 in nfsrv_rcv (so=0xc1b7d600, arg=0xc20f2e00, waitflag=4)
    at /usr/src/CURRENT/sys/nfsserver/nfs_srvsock.c:445
445                     error = so->so_proto->pr_usrreqs->pru_soreceive
(kgdb) list
440                     /*
441                      * Do soreceive().
442                      */
443                     auio.uio_resid = 1000000000;
444                     flags = MSG_DONTWAIT;
445                     error = so->so_proto->pr_usrreqs->pru_soreceive
446                             (so, &nam, &auio, &mp, NULL, &flags);
447                     if (error || mp == NULL) {
448                             if (error == EWOULDBLOCK)
449                                     slp->ns_flag |= SLP_NEEDQ;
(kgdb) fr 11
#11 0xc0257829 in soreceive (so=0xc1b7d600, psa=0xc8724b1c,
uio=0xc8724b28,
    mp0=0xc8724b20, controlp=0x0, flagsp=0xc8724b24)
    at /usr/src/CURRENT/sys/kern/uipc_socket.c:1087
warning: Source file is more recent than executable.

1087                            (*pr->pr_usrreqs->pru_rcvd)(so, flags);
(kgdb) list
1082            }
1083            if ((flags & MSG_PEEK) == 0) {
1084                    if (m == 0)
1085                            so->so_rcv.sb_mb = nextrecord;
1086                    if (pr->pr_flags & PR_WANTRCVD && so->so_pcb)
1087                            (*pr->pr_usrreqs->pru_rcvd)(so, flags);
1088            }
1089            if (orig_resid == uio->uio_resid && orig_resid &&
1090                (flags & MSG_EOR) == 0 && (so->so_state &
SS_CANTRCVMORE) == 0) {
1091                    sbunlock(&so->so_rcv);

(kgdb) fr 10
#10 0xc02a9b1b in tcp_usr_rcvd (so=0x0, flags=128)
    at /usr/src/CURRENT/sys/netinet/tcp_usrreq.c:621
621             COMMON_START();
(kgdb) list
616             int error = 0;
617             struct inpcb *inp;
618             struct tcpcb *tp;
619             const int inirw = INI_READ;
620
621             COMMON_START();
622             tcp_output(tp);
623             COMMON_END(PRU_RCVD);
624     }
625
(kgdb) fr 9
#9  0xc021b7dd in _mtx_lock_flags (m=0xc04599ec, opts=0,
    file=0xc03b13ee "/usr/src/CURRENT/sys/netinet/tcp_usrreq.c",
line=621)
    at /usr/src/CURRENT/sys/kern/kern_mutex.c:334
warning: Source file is more recent than executable.

334             WITNESS_LOCK(&m->mtx_object, opts | LOP_EXCLUSIVE, file,
line);
(kgdb) list
329                 ("mtx_lock() of spin mutex %s @ %s:%d",
m->mtx_object.lo_name,
330                 file, line));
331             _get_sleep_lock(m, curthread, opts, file, line);
332             LOCK_LOG_LOCK("LOCK", &m->mtx_object, opts,
m->mtx_recurse, file,
333                 line);
334             WITNESS_LOCK(&m->mtx_object, opts | LOP_EXCLUSIVE, file,
line);
335     #ifdef MUTEX_PROFILING
336             /* don't reset the timer when/if recursing */
337             if (m->mtx_acqtime == 0) {
338                     m->mtx_filename = file;
(kgdb) fr 8
#8  0xc0242c4e in witness_lock (lock=0xc04599ec, flags=8,
    file=0xc03b13ee "/usr/src/CURRENT/sys/netinet/tcp_usrreq.c",
line=621)
    at /usr/src/CURRENT/sys/kern/subr_witness.c:838
warning: Source file is more recent than executable.

838                             Debugger(__func__);
(kgdb) list
833     #ifdef DDB
834             if (go_into_ddb) {
835                     if (witness_trace)
836                             backtrace();
837                     if (witness_ddb)
838                             Debugger(__func__);
839             }
840     #endif
841             w->w_file = file;
842             w->w_line = line;


========================================================================
After I rebooted, I looked for the right kernel.debug file and did an ls
-la on an NFS mounted /usr/obj and got this one:

There has been a lot of action in this area since Jul 20, so this may be
already fixed. But IANAKernel hacker.

vmcore.2:

rw-r-st 0xc1a5e4a0 vm object (vm object) @
/usr/src/CURRENT/sys/vm/vm_object.c:
1516
 2nd 0xc082f110 system map (system map) @
/usr/src/CURRENT/sys/vm/vm_kern.c:325
Stack backtrace:
backtrace(1,0,ffffffff,c0433a38,c04339c0) at backtrace+0x12
witness_lock(c082f110,8,c03be8e8,145,c082f0b0) at witness_lock+0x53b
_mtx_lock_flags(c082f110,0,c03be8e8,145) at _mtx_lock_flags+0x7d
_vm_map_lock(c082f0b0,c03be8e8,145) at _vm_map_lock+0x21
kmem_malloc(c082f0b0,1000,101,cce07ad0,c03307c1) at kmem_malloc+0x32
page_alloc(c083a1c0,1000,cce07ac3,101,c03a8f34) at page_alloc+0x1a
slab_zalloc(c083a1c0,101,c083a210,c083a1c0,c083a1d4) at slab_zalloc+0xe1
uma_zone_slab(c083a1c0,101,c083a1d4,0,c03c0263,678) at
uma_zone_slab+0xb7
uma_zalloc_internal(c083a1c0,0,101,0,0) at uma_zalloc_internal+0x39
uma_zfree_arg(c1962d20,cce1033c,0) at uma_zfree_arg+0x21c
swp_pager_meta_free(c1a5e4a0,6,0,1,0,c1a5e4a0,1,c03be116,25f) at
swp_pager_metafree+0x15d
swap_pager_freespace(c1a5e4a0,6,0,1) at swap_pager_freespace+0x33
vm_object_backing_scan(c1d591bc,4) at vm_object_backing_scan+0x298
vm_object_collapse(c1d591bc,c1d76e10,c1b75a00,cce07c30,c032588f) at
vm_object_cllapse+0xb7
vm_object_deallocate(c1b7f1bc) at vm_object_deallocate+0x1fb
vm_map_entry_delete(c1b75a00,c1d76e10,c,0,c) at vm_map_entry_delete+0x2f
vm_map_delete(c1b75a00,0,bfc00000,c1b75a00,c1969700) at
vm_map_delete+0x2f7
vm_map_remove(c1b75a00,0,bfc00000) at vm_map_remove+0x42
exit1(c1966be0,0,c042eac0,0,c03a3e26) at exit1+0x4eb
sys_exit(c1966be0,cce07d14,1,2,292) at sys_exit+0x27
syscall(2f,2f,2f,0,8052040) at syscall+0x1f1
Xint0x80_syscall() at Xint0x80_syscall+0x1d
--- syscall (1), eip = 0x280c9fbb, esp = 0xbfbffcec, ebp = 0xbfbffd08
---
Debugger("witness_lock")
Stopped at      Debugger+0x45:  xchgl   %ebx,in_Debugger.0

gdb -k /usr/obj/usr/src/CURRENT/sys/POLLY/kernel.debug vmcore.2
GNU gdb 5.2.1 (FreeBSD)
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you
are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for
details.
This GDB was configured as "i386-undermydesk-freebsd"...
panic messages:
---
---
Reading symbols from
/usr/obj/usr/src/CURRENT/sys/POLLY/modules/usr/src/CURRENT/sys/modules/acpi/acpi.ko.debug...done.
Loaded symbols for
/usr/obj/usr/src/CURRENT/sys/POLLY/modules/usr/src/CURRENT/sys/modules/acpi/acpi.ko.debug
Reading symbols from
/usr/obj/usr/src/CURRENT/sys/POLLY/modules/usr/src/CURRENT/sys/modules/if_vlan/if_vlan.ko.debug...done.
Loaded symbols for
/usr/obj/usr/src/CURRENT/sys/POLLY/modules/usr/src/CURRENT/sys/modules/if_vlan/if_vlan.ko.debug
Reading symbols from
/usr/obj/usr/src/CURRENT/sys/POLLY/modules/usr/src/CURRENT/sys/modules/nfsserver/nfsserver.ko.debug...done.
Loaded symbols for
/usr/obj/usr/src/CURRENT/sys/POLLY/modules/usr/src/CURRENT/sys/modules/nfsserver/nfsserver.ko.debug
Reading symbols from /boot/kernel/daemon_saver.ko...done.
Loaded symbols for /boot/kernel/daemon_saver.ko
Reading symbols from
/usr/obj/usr/src/CURRENT/sys/POLLY/modules/usr/src/CURRENT/sys/modules/linux/linux.ko.debug...done.
Loaded symbols for
/usr/obj/usr/src/CURRENT/sys/POLLY/modules/usr/src/CURRENT/sys/modules/linux/linux.ko.debug
#0  doadump () at /usr/src/CURRENT/sys/kern/kern_shutdown.c:240
240             dumping++;
(kgdb) bt
#0  doadump () at /usr/src/CURRENT/sys/kern/kern_shutdown.c:240
#1  0xc014e7f8 in db_fncall (dummy1=0, dummy2=0, dummy3=-1069114912,
    dummy4=0xcce0787c "\230xàÌȹ!À\214xàÌ\001\215\"À\230xàÌø\003")
    at /usr/src/CURRENT/sys/ddb/db_command.c:547
#2  0xc014e5f0 in db_command (last_cmdp=0xc0419460, cmd_table=0x0,
    aux_cmd_tablep=0xc03c9410, aux_cmd_tablep_end=0xc03c9414)
    at /usr/src/CURRENT/sys/ddb/db_command.c:346
#3  0xc014e6cb in db_command_loop ()
    at /usr/src/CURRENT/sys/ddb/db_command.c:471
#4  0xc0150f8a in db_trap (type=3, code=0)
    at /usr/src/CURRENT/sys/ddb/db_trap.c:73
#5  0xc0351ef5 in kdb_trap (type=3, code=0, regs=0xcce079a8)
    at /usr/src/CURRENT/sys/i386/i386/db_interface.c:172
#6  0xc03612da in trap (frame=
      {tf_fs = 24, tf_es = 16, tf_ds = 16, tf_edi = -1069194880, tf_esi
= -1065160432, tf_ebp = -857703956, tf_isp = -857703980, tf_ebx = 0,
tf_edx = 0, tf_ecx = 1, tf_eax = 25, tf_trapno = 3, tf_err = 0, tf_eip =
-1070259835, tf_cs = 8, tf_eflags = 646, tf_esp = -1069194844, tf_ss =
-857703908})
    at /usr/src/CURRENT/sys/i386/i386/trap.c:595
#7  0xc0353558 in calltrap () at {standard input}:102
#8  0xc0242c4e in witness_lock (lock=0xc082f110, flags=8,
    file=0xc03be8e8 "/usr/src/CURRENT/sys/vm/vm_kern.c", line=325)
    at /usr/src/CURRENT/sys/kern/subr_witness.c:838
#9  0xc021b7dd in _mtx_lock_flags (m=0xc082f110, opts=0,
---Type <return> to continue, or q <return> to quit---
    file=0xc03be8e8 "/usr/src/CURRENT/sys/vm/vm_kern.c", line=325)
    at /usr/src/CURRENT/sys/kern/kern_mutex.c:334
#10 0xc03236e1 in _vm_map_lock (map=0xc082f0b0,
    file=0xc03be8e8 "/usr/src/CURRENT/sys/vm/vm_kern.c", line=325)
    at /usr/src/CURRENT/sys/vm/vm_map.c:351
#11 0xc0322c52 in kmem_malloc (map=0xc082f0b0, size=4096, flags=257)
    at /usr/src/CURRENT/sys/vm/vm_kern.c:325
#12 0xc03309ba in page_alloc (zone=0xc083a1c0, bytes=4096, pflag=0x0,
wait=257)
    at /usr/src/CURRENT/sys/vm/uma_core.c:806
#13 0xc03307c1 in slab_zalloc (zone=0xc083a1c0, wait=257)
    at /usr/src/CURRENT/sys/vm/uma_core.c:715
#14 0xc0331597 in uma_zone_slab (zone=0xc083a1c0, flags=257)
    at /usr/src/CURRENT/sys/vm/uma_core.c:1503
#15 0xc03317d9 in uma_zalloc_internal (zone=0xc083a1c0, udata=0x0,
flags=257)
    at /usr/src/CURRENT/sys/vm/uma_core.c:1658
#16 0xc0331a7c in uma_zfree_arg (zone=0xc1962d20, item=0xcce1033c,
udata=0x0)
    at /usr/src/CURRENT/sys/vm/uma_core.c:1800
#17 0xc031e4dd in swp_pager_meta_free (object=0xc1a5e4a0, index=6,
count=1)
    at /usr/src/CURRENT/sys/vm/uma.h:257
#18 0xc031cb13 in swap_pager_freespace (object=0xc1a5e4a0,
    start=14762931313757388806, size=1)
    at /usr/src/CURRENT/sys/vm/swap_pager.c:608
#19 0xc032ab18 in vm_object_backing_scan (object=0xc1d591bc, op=4)
    at /usr/src/CURRENT/sys/vm/vm_object.c:1404
---Type <return> to continue, or q <return> to quit---
#20 0xc0329bf7 in vm_object_collapse (object=0xc1d591bc)
    at /usr/src/CURRENT/sys/vm/vm_object.c:1552
#21 0xc0328adb in vm_object_deallocate (object=0xc1d591bc)
    at /usr/src/CURRENT/sys/vm/vm_object.c:502
#22 0xc032588f in vm_map_entry_delete (map=0xc1b75a00, entry=0xc1d76e10)
    at /usr/src/CURRENT/sys/vm/vm_map.c:2078
#23 0xc0325b97 in vm_map_delete (map=0xc1b75a00, start=3250057660,
    end=3217031168) at /usr/src/CURRENT/sys/vm/vm_map.c:2208
#24 0xc0325c02 in vm_map_remove (map=0xc1b75a00, start=0,
end=3217031168)
    at /usr/src/CURRENT/sys/vm/vm_map.c:2230
#25 0xc02106ab in exit1 (td=0xc1966be0, rv=0)
    at /usr/src/CURRENT/sys/vm/vm_map.h:191
#26 0xc02101a7 in sys_exit () at
/usr/src/CURRENT/sys/kern/kern_exit.c:102
#27 0xc0361a71 in syscall (frame=
      {tf_fs = 47, tf_es = 47, tf_ds = 47, tf_edi = 0, tf_esi =
134553664, tf_ebp = -1077936888, tf_isp = -857703052, tf_ebx =
134602944, tf_edx = -1, tf_ecx = 10, tf_eax = 1, tf_trapno = 12, tf_err
= 2, tf_eip = 671915963, tf_cs = 31, tf_eflags = 658, tf_esp =
-1077936916, tf_ss = 47})
    at /usr/src/CURRENT/sys/i386/i386/trap.c:1023
#28 0xc03535ad in Xint0x80_syscall () at {standard input}:144
(kgdb) fr 12
#12 0xc03309ba in page_alloc (zone=0xc083a1c0, bytes=4096, pflag=0x0,
wait=257)
    at /usr/src/CURRENT/sys/vm/uma_core.c:806
warning: Source file is more recent than executable.

806             p = (void *) kmem_malloc(kmem_map, bytes, wait);
(kgdb) list
801     page_alloc(uma_zone_t zone, int bytes, u_int8_t *pflag, int
wait)
802     {
803             void *p;        /* Returned page */
804
805             *pflag = UMA_SLAB_KMEM;
806             p = (void *) kmem_malloc(kmem_map, bytes, wait);
807
808             return (p);
809     }
810
(kgdb) fr 13
#13 0xc03307c1 in slab_zalloc (zone=0xc083a1c0, wait=257)
    at /usr/src/CURRENT/sys/vm/uma_core.c:715
715                             mem = zone->uz_allocf(zone,
(kgdb) list
710                             mtx_lock(&Giant);
711                             mem = zone->uz_allocf(zone,
712                                 zone->uz_ppera * UMA_SLAB_SIZE,
&flags, wait);
713                             mtx_unlock(&Giant);
714                     } else {
715                             mem = zone->uz_allocf(zone,
716                                 zone->uz_ppera * UMA_SLAB_SIZE,
&flags, wait);
717                     }
718                     if (mem == NULL) {
719                             ZONE_LOCK(zone);
(kgdb) fr 12
#12 0xc03309ba in page_alloc (zone=0xc083a1c0, bytes=4096, pflag=0x0,
wait=257)
    at /usr/src/CURRENT/sys/vm/uma_core.c:806
warning: Source file is more recent than executable.

806             p = (void *) kmem_malloc(kmem_map, bytes, wait);
(kgdb) list
801     page_alloc(uma_zone_t zone, int bytes, u_int8_t *pflag, int
wait)
802     {
803             void *p;        /* Returned page */
804
805             *pflag = UMA_SLAB_KMEM;
806             p = (void *) kmem_malloc(kmem_map, bytes, wait);
807
808             return (p);
809     }
810

(kgdb) fr 11
#11 0xc0322c52 in kmem_malloc (map=0xc082f0b0, size=4096, flags=257
    at /usr/src/CURRENT/sys/vm/vm_kern.c:325
warning: Source file is more recent than executable.

325             vm_map_lock(map);
(kgdb) list
320             /*
321              * Locate sufficient space in the map.  This will
g                   inal
322              * virtual address for the new memory, and thus
wil                   e
323              * offset within the kernel map.
324              */
325             vm_map_lock(map);
326             if (vm_map_findspace(map, vm_map_min(map), size, &a
327                     vm_map_unlock(map);
328                     if (map != kmem_map) {
329                             static int last_report; /* when
we                    icks) */
#10 0xc03236e1 in _vm_map_lock (map=0xc082f0b0,
    file=0xc03be8e8 "/usr/src/CURRENT/sys/vm/vm_kern.c", line=325)
    at /usr/src/CURRENT/sys/vm/vm_map.c:351
warning: Source file is more recent than executable.

351                     _mtx_lock_flags(&map->system_mtx, 0, file,
line);
(kgdb) list
346     _vm_map_lock(vm_map_t map, const char *file, int line)
347     {
348             int error;
349
350             if (map->system_map)
351                     _mtx_lock_flags(&map->system_mtx, 0, file,
line);
352             else {
353                     error = lockmgr(&map->lock, LK_EXCLUSIVE, NULL,
curthread);
354                     KASSERT(error == 0, ("%s: failed to get lock",
__func__));
355             }
(kgdb) fr 9
#9  0xc021b7dd in _mtx_lock_flags (m=0xc082f110, opts=0,
    file=0xc03be8e8 "/usr/src/CURRENT/sys/vm/vm_kern.c", line=325)
    at /usr/src/CURRENT/sys/kern/kern_mutex.c:334
warning: Source file is more recent than executable.

334             WITNESS_LOCK(&m->mtx_object, opts | LOP_EXCLUSIVE, file,
line);
(kgdb) list
329                 ("mtx_lock() of spin mutex %s @ %s:%d",
m->mtx_object.lo_name,
330                 file, line));
331             _get_sleep_lock(m, curthread, opts, file, line);
332             LOCK_LOG_LOCK("LOCK", &m->mtx_object, opts,
m->mtx_recurse, file,
333                 line);
334             WITNESS_LOCK(&m->mtx_object, opts | LOP_EXCLUSIVE, file,
line);
335     #ifdef MUTEX_PROFILING
336             /* don't reset the timer when/if recursing */
337             if (m->mtx_acqtime == 0) {
338                     m->mtx_filename = file;




More information about the freebsd-current mailing list