Fatal trap 12: page fault while in kernelmode(subr_turnstile.c)
w/ trace
Robin Breathe
robin at isometry.net
Mon Dec 8 16:07:16 PST 2003
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 at isometry.net +441865741800
More information about the freebsd-current
mailing list