Date: Wed, 27 Oct 2004 21:16:45 -0700 (PDT) From: Frank Mayhar <frank@exit.com> To: mobile@freebsd.org Cc: current@freebsd.org Subject: NDISulator crashness. Message-ID: <200410280416.i9S4GjKZ044574@realtime.exit.com>
next in thread | raw e-mail | index | archive | help
I've been using the NDISulator to run my Dell-branded Broadcom wireless card (BCM4309) as that's the only way I can do so. Unfortunately I've been running into a lot of watchdog timeouts and pretty regular crashes. I've been intending to find the time to build a DIAGNOSTIC kernel, set up with a firewire link and gdb and see just what's going on. Well, tonight I did so. The upshot is that NDIS has troubles. I've already entered a PR for the first LOR I encountered; I ran into another as well, between the VM user map mutex and the ntoskrnl dispatch lock but I didn't trace it, just noted it and kept going, because I was really looking for the page fault I had seen at one point. Well, I think I found it. At least I found _one_ page fault; I don't know if it's the only one. This one, at any rate, is in ntoskrnl_wakeup(), called by ntoskrnl_timercall() (which is the same routine with the first LOR). The reason for the page fault is that while the argument is a valid pointer, the region it points to has been zeroed. It should have the right information for a ktimer but on the call to ntoskrnl_wakeup() it has been entirely cleared. I looked but saw nothing obvious that might explain this. At this point I'm too tired to continue but hopefully I can pick it back up later in the week. I just wanted to let people know about my findings so that those more familiar with the code might be nudged into taking a look at it. (Bill? You out there?) It's very clear to me, by the way, that NDIS hasn't ever been run with all the WITNESS and DIAGNOSTIC stuff turned on, since with the diag kernel it hit the first LOR as soon as it turned on the interface and the second pretty quickly thereafter. I would encourage anyone else who might be poking around in that code to turn on all the WITNESS stuff, INVARIANTS _and_ DIAGNOSTIC; I had been running with the first two but tonight was the first time I used the third and it definitely uncovered problems. Anyway, I'm tired and beginning to ramble. I hope this helps someone and, if not, well, I'll get back to it in a day or three. Oh, and NDIS is usable with these bugs, it's just annoying to have the laptop panic every day or two. I expect that from Windows operating systems, not from FreeBSD. -- Frank Mayhar frank@exit.com http://www.exit.com/ Exit Consulting http://www.gpsclock.com/ http://www.exit.com/blog/frank/
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200410280416.i9S4GjKZ044574>