Re: malloc(M_WAITOK) of"Mbuf",forcing M_NOWAIT ......

From: Dan Nelson <dnelson_at_allantgroup.com>
Date: Tue, 1 Jun 2004 15:29:16 -0500
In the last episode (Jun 01), Niki Denev said:
> I get lots of these messages on my console with a recent -CURRENT, is
> this something known?

It's sort-of known, but I don't think anyone's had a good look at it
yet.  Here's a full gdb trace of a similar one:

malloc(M_WAITOK) of "Mbuf", forcing M_NOWAIT with the following non-sleepable locks held:
exclusive sleep mutex inp (udpinp) r = 0 (0xc26b3f54) locked _at_ netinet/udp_usrreq.c:402
Stack backtrace:
witness_warn(5,0,c077c12c,c0765859,1) at witness_warn+0x135
uma_zalloc_arg(c1023b00,d9d65ae0,2,fa,0) at uma_zalloc_arg+0x44
nfs_realign(d9d65b20,28,c0775161,206,0) at nfs_realign+0x114
nfsrv_rcv(c27ec4c4,c278c400,1,c26b3ec4,c26b7000) at nfsrv_rcv+0x168
sowakeup(c27ec4c4,c27ec514,c26b7000,c26b7000,0) at sowakeup+0xac
udp_append(c26b3ec4,c26ca016,c26b7000,1c,108) at udp_append+0xcf
udp_input(c26b7000,14,c076ff4c,8,0) at udp_input+0x4a4
ip_input(c26b7000,0,c076ff4c,95,18) at ip_input+0x6f9
netisr_processqueue(c0810ab8,8,c076ff55,fd,c2285040) at netisr_processqueue+0x8e
swi_net(0,0,c07649bd,255,1) at swi_net+0xf8
ithread_loop(c225ce80,d9d65d48,c07647dd,328,0) at ithread_loop+0x240
fork_exit(c05709f0,c225ce80,d9d65d48) at fork_exit+0xa3
fork_trampoline() at fork_trampoline+0x8
--- trap 0x1, eip = 0, esp = 0xd9d65d7c, ebp = 0 ---



./gettrace 42
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: from debugger
panic messages:
---
panic: from debugger
at line 453 in file ../../../ddb/db_command.c
cpuid = 1;
Stack backtrace:
boot() called on cpu#1
Uptime: 36m0s
Dumping 1023 MB
Compressing
 16>3 32>6 48>9 64>12 80>15 96>18 112>21 128>24 144>27 160>30 176>33 192>36 208>39 224>42 240>46 256>49 272>52 288>55 304>58 320>61 336>65 352>68 368>71 384>74 400>78 416>81 432>84 448>87 464>91 480>94 496>98 512>104 528>107 544>110 560>111 576>113 592>116 608>117 624>117 640>117 656>118 672>119 688>120 704>120 720>123 736>127 752>130 768>132 784>136 800>140 816>143 832>146 848>148 864>151 880>153 896>155 912>157 928>159 944>161 960>164 976>167 992>171 1008>174
Compressed to 183 MB
Dumpsize = 192815104
Dump starting at 612522496
 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 256 272 288 304 320 336 352 368 384 400 416 432 448 464 480 496 512 528 544 560 576 592 608 624 640 656 672 688 704 720 736 752 768 784 800 816 832 848 864 880 896 912 928 944 960 976 992 1008
---
#0  doadump () at ../../../kern/kern_shutdown.c:237
237             dumpsys(&dumper);
#0  doadump () at ../../../kern/kern_shutdown.c:237
#1  0xc05856d8 in boot (howto=260) at ../../../kern/kern_shutdown.c:370
#2  0xc0585dbf in __panic (file=0xc074c764 "../../../ddb/db_command.c",
    line=453, fmt=0xc074c756 "from debugger")
    at ../../../kern/kern_shutdown.c:548
#3  0xc0477d84 in db_panic () at ../../../ddb/db_command.c:453
#4  0xc0477b9e in db_command (last_cmdp=0xc07da4e0, cmd_table=0x0,
    aux_cmd_tablep=0xffffffff, aux_cmd_tablep_end=0xffffffff)
    at ../../../ddb/db_command.c:348
#5  0xc0477dfd in db_command_loop () at ../../../ddb/db_command.c:475
#6  0xc047ade6 in db_trap (type=3, code=0) at ../../../ddb/db_trap.c:73
#7  0xc06f7836 in kdb_trap (type=3, code=0, regs=0xd9d65a1c)
    at ../../../i386/i386/db_interface.c:159
#8  0xc070f5df in trap (frame=
      {tf_fs = -1066008552, tf_es = -1067843568, tf_ds = -640286704, tf_edi = 4, tf_esi = -1, tf_ebp = -640263576, tf_isp = -640263608, tf_ebx = 0, tf_edx = 0, tf_ecx = 0, tf_eax = 25, tf_trapno = 3, tf_err = 0, tf_eip = -1066435671, tf_cs = 8, tf_eflags = 642, tf_esp = -1065880763, tf_ss = -1066162406})
    at ../../../i386/i386/trap.c:579
#9  0xc06fb52a in calltrap () at {standard input}:95
#10 0xc05ae893 in witness_warn (flags=5, lock=0x0,
    fmt=0xc077c12c "malloc(M_WAITOK) of \"%s\", forcing M_NOWAIT")
    at ../../../kern/subr_witness.c:1152
#11 0xc06c41a4 in uma_zalloc_arg (zone=0xc1023b00, udata=0xd9d65ae0, flags=2)
    at ../../../vm/uma_core.c:1606
#12 0xc06648e4 in nfs_realign (pm=0xd9d65b20, hsiz=40)
    at ../../../sys/mbuf.h:334
#13 0xc0664de8 in nfsrv_rcv (so=0xc2e8ba7c, arg=0x0, waitflag=1)
    at ../../../nfsserver/nfs_srvsock.c:519
#14 0xc05ca06c in sowakeup (so=0xc2e8ba7c, sb=0xc2e8bacc)
    at ../../../kern/uipc_socket2.c:316
#15 0xc0631e1f in udp_append (last=0xc2e8bacc, ip=0x0, n=0xc2e8ba7c, off=0)
    at ../../../netinet/udp_usrreq.c:506
#16 0xc0631ae4 in udp_input (m=0xc2d83a00, off=20)
    at ../../../netinet/udp_usrreq.c:404
#17 0xc061c5b9 in ip_input (m=0xc2d83a00) at ../../../netinet/ip_input.c:939
#18 0xc05fd5ee in netisr_processqueue (ni=0xc2d83a00)
    at ../../../net/netisr.c:152
#19 0xc05fd9a8 in swi_net (dummy=0x0) at ../../../net/netisr.c:257
#20 0xc0570c30 in ithread_loop (arg=0xc225ce80)
    at ../../../kern/kern_intr.c:574
#21 0xc056fab3 in fork_exit (callout=0xc05709f0 <ithread_loop>, arg=0x0,
    frame=0x0) at ../../../kern/kern_fork.c:816
(root_at_dan) /var/crash>#


-- 
	Dan Nelson
	dnelson_at_allantgroup.com
Received on Tue Jun 01 2004 - 11:29:21 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:55 UTC