Date: Tue, 09 Dec 2003 00:07:01 +0000 From: Robin Breathe <robin@isometry.net> To: Julian Elischer <julian@elischer.org> Cc: current@freebsd.org Subject: Re: Fatal trap 12: page fault while in kernelmode(subr_turnstile.c) w/ trace Message-ID: <3FD51225.1010004@isometry.net> In-Reply-To: <Pine.BSF.4.21.0312081540280.44692-100000@InterJet.elischer.org> References: <Pine.BSF.4.21.0312081540280.44692-100000@InterJet.elischer.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Julian Elischer wrote: >>ng_eiface_rmnode(c4d42200,0,0,c4d42200,c4d42200) at ng_eiface_rmnode+0x61 >>ng_rmnode(c4d42200,0,0,0,0) at ng_rmnode+0xc7 >>ng_generic_msg(c4d42200,c4a04200,0,0,0) at ng_generic_msg+0x11f >>ng_apply_item(c4d42200,c4a04200,c06d115c,7d6,c4a04200) at >>ng_apply_item+0x365 >>ng_snd_item(c4a04200,0,c47a0820,0,0) at ng_snd_item+0x7cb >>ngc_send(c4ab91e0,0,c1d12e00,c47a07a0,0) at ngc_send+0x146 >>sosend(c4ab91e0,c47a07a0,dcaccc4c,c1d12e00,0) at sosend+0x44d >>kern_sendit(c48a48c0,3,dcacccc4,0,0) at kern_sendit+0x17c >>sendit(c48a48c0,3,dcacccc4,0,804f034) at sendit+0x16e >>sendto(c48a48c0,dcaccd14,c06e14fe,3ee,6) at sendto+0x5b >>syscall(2f,2f,2f,bfbfe9c8,bfbfe9c2) at syscall+0x2c0 > > Ok so This caught my attention.. Excellent ;) > you are removing an eiface node? Yup, the code I'm using to reliably reproduce the panic is: # cat panic #!/bin/sh -x cat <<'EOF' >/tmp/ngctl.cmd list mkpeer . eiface hook ether name .:hook vif0 rmhook . hook list show vif0: EOF ngctl -f /tmp/ngctl.cmd # check the mac is current zero ifconfig ngeth0 ifconfig ngeth0 link '00:bd:03:11:25:01' # check it got set properly ifconfig ngeth0 ngctl show vif0: sleep 1 ngctl shutdown vif0: #EOF This is just whittled down from an rc.d script I wrote to manage creation of an ng_bridge(4) attached to an external "real" interface, with arbitrarily many ng_eiface(4) nodes attached. Essentially trying to emulate Solaris logical interfaces (not aliasing). I want to be able to remove logical interfaces as well as add them. In light of the "Turnstile assertion failure" show stopper (for which I've failed to find any public backtraces) and turnstile's prominence in the panics, I wondered if it might be responsible/involved/something. > I can believe that the interface code may not be very well tested in > this.. > there have been some changes in the last couple of years regarding > interface attaching and detatching and I have not kept up with it.. I can certainly believe this too. I initially thought the problem was entirely ng_eiface, but I don't know. As I mentioned earlier in the thread, there's no panic under 4.9-R or 5.1-R, so whatever change is responsible likely came in the last few months (I first noticed this panic about 2-3 weeks ago, though I hadn't been looking for it). Ideally ng_eiface would support cloning with ifconfig(8), and the netgraph nodes would have default names (probably identical to the interface name). If anyone can give me a reading list or some other helpful shove in the right direction, I'm perfectly happy to go off and do the gruntwork, at present I'm simply not sure where to begin. - Robin -- Robin Breathe robin@isometry.net +441865741800
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3FD51225.1010004>