Re: Fatal trap 12: page fault while in kernelmode(subr_turnstile.c) w/ trace

From: Robin Breathe <robin_at_isometry.net>
Date: Tue, 09 Dec 2003 00:07:01 +0000
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
Received on Mon Dec 08 2003 - 15:07:16 UTC

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