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>