PREEMPTION vs ndisulator
jhb at freebsd.org
Fri Dec 16 13:38:11 PST 2005
On Friday 16 December 2005 03:52 pm, Andrew Gallatin wrote:
> John Baldwin writes:
> > On Friday 16 December 2005 11:34 am, Andrew Gallatin wrote:
> > > I'm trying to use an ndis driver on an amd64 machine running
> > > FreeBSD/amd64 -current from yesterday. If I enable PREEMPTION, the
> > > machine hangs when loading the driver (kldload never returns):
> > >
> > > ndis0: <Myricom Myri-10G Ethernet Adapter> mem
> > > 0xfc000000-0xfcffffff,0xfdf00000-0xfdffffff irq 18 at device 0.0 on
> > > pci5 ndis0: NDIS API version: 5.1
> > > <hang>
> > >
> > > Witness detects no problems, and if I disable PREEMPTION, the driver
> > > seems to work fine. Is PREEMPTION not safe to be used with the
> > > ndisulator, or is there a problem with the ndis driver itself?
> > >
> > > I've included some very brief debugging info below..
> > Looks like an ithread has preempted your driver's start routine. If you
> > let it run some more and then break into ddb is the same thread (pid 11)
> > still running? Also, which process is pid 11?
> Naturally, I no longer have that kernel :(
> I just built a new, PREEMPTION enabled kernel. Booting in
> single user, I see a hang in the irq thread. It seems to
> always be in this thread.
> I think the difference is that I don't have the if_sk driver loaded,
> which shares that irq.
> Can you remind me how to get irq counts from ddb? It
> would be intersting to see if the irq hander was called
> repeatedly, or if it was just stuck in the handler.
John Baldwin <jhb at FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve" = http://www.FreeBSD.org
More information about the freebsd-current