kprokazov at svr.kiev.ua
Tue Nov 22 09:06:13 GMT 2005
John, thanks for the answer. I'll test today bus_setup_intr() without
INTR_FAST flag, but how I remember, this cause to system heavy load for
interrupt processing ;( in my case.
My handler uses spin mutexes to block inter-interrupting & sleep mutexes
to block some structures now. I have tried to use swi/taskqueue, but result
is a "sync" degradation level.
Can you help with sources briefing in my driver case?
Thnx in advance.
Center Of Excellence, S_V_R Ltd., Kyiv HQs, Ukraine
Official business-partner & DevConnect member of Avaya Inc.
Regional development & support center of Digium Inc.
Tel. +38 044 594 1781, ext. 1038
Fax. +38 044 234 0455
----- Original Message -----
From: "John Baldwin" <jhb at freebsd.org>
To: <freebsd-hackers at freebsd.org>
Cc: "Konstantin Prokazoff" <kprokazov at svr.kiev.ua>
Sent: Monday, November 21, 2005 5:38 PM
Subject: Re: poll()/select()
> On Monday 21 November 2005 08:14 am, Konstantin Prokazoff wrote:
> > Thanks for comment,
> > I think, after kernel inspection, problem (maybe) in preemption.
> > syscall to poll or select holds sellock, and if another thread (process)
> > tries to syscall or we have taken interrupt (where handler use
> > selrecord/selwakeup too), kernel will deadlock.
> > I have this situation cause to INTR_FAST interrupt handler in device
> > driver for Digium's PCI board, which provides 4 T1/E1 interfaces.
> > 100% repetitive.
> > Another way to avoid such deadlock - provide different
> > for select/poll mechanism.
> You can't call selwakeup() from an INTR_FAST handler. Try removing
> and see if it fixes your issue. If you want to use INTR_FAST, then
> that you can only use spin mutexes in your handler, and that any more
> complicated work like selwakeup() that uses regular mutexes will have to
> deferred either by using a swi handler or dispatching a task to the Fast
> 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-hackers