Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 5 Apr 2007 14:34:13 -0700
From:      "Jack Vogel" <jfvogel@gmail.com>
To:        freebsd-stable@freebsd.org, freebsd-net <freebsd-net@freebsd.org>,  freebsd-current <freebsd-current@freebsd.org>
Subject:   Stack panic with em driver unload
Message-ID:  <2a41acea0704051434p2b8c5902x868d0a5d6510aa01@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
Our test group uses a script that does 100 iterations of
a module load, then bring up all interfaces, and then
unload driver.

Depending on the system in anything from just a few
iterations to 20 or more, the system will panic.

Its doing an em_detach() which calls ether_ifdetach()
which goes to if_detach, in_delmulti_ifp, in_delmulti_locked,
and finally if_delmulti().

The panic is always happening on a cmpxchgq instruction
so I assume its the LOCK macro, whats odd is that its
not always the same reason, sometimes one register is
0 so its a page fault trap, but on other iterations its a
general protection fault because the register is some
big invalid number :)

I am hardpressed to see this as a driver problem, but
I'm willing to be proven wrong, does someone who
knows the stack code better than me have any insights
or ideas?

It also appears system dependent, I have a couple
machines I've tried to reproduce in on and have been
unable. I also am told it happens on both amd64 and
i386, but it seems easier to reproduce on the former.

Lastly, from evidence so far I think this doesnt happen
on CURRENT, but the test group hasnt checked that
only I have and I dont have as much hardware :)

Cheers,

Jack



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2a41acea0704051434p2b8c5902x868d0a5d6510aa01>