[Nouveau] nouveau interrupts firewire ISO streaming

Adrian Knoth adi at drcomp.erfurt.thur.de
Thu Feb 4 02:58:39 PST 2010

On Tue, Feb 02, 2010 at 02:35:04PM +0100, Maarten Maathuis wrote:


> > When the X pointer changes from arrow to the vertical text selection
> > bar, firewire streaming is interrupted. Same with scrolling in firefox
> > or hovering over a link, thus changing the pointer to "hand".
> >
> > Looks like nouveau is disabling interrupts now and then, which leads to
> > stalled firewire ISO streaming. I don't know what nouveau's actually
> > doing, I'm just guessing. ;)
> I don't think interrupts are disabled for uploading a cursor, more
> likely is that your firewire driver depends on the big kernel lock.

No, the firewire subsystem doesn't use BKL:

adi at hex:/usr/src/linux-2.6.33-rc6/drivers/firewire$ grep lock_kernel *
adi at hex:/usr/src/linux-2.6.33-rc6/drivers/firewire$ echo $?

But I don't know what happens to a BKL-free subsystem when another
subsystem calls lock_kernel.

> At the moment we still hold that. 

I only found lock_kernel() in drm_drv.c and drm_fops.c, so I guess it's
drm_ioctl, given that BKL is the culprit.

I just removed the BKL around the func call, surprisingly, my system
still worked with some minor image corruption, but it's exactly the same
issue wrt firewire. So it might not be the BKL.

What about DMA or PFIFO interrupts? I only read "interrupt" here, I
don't know if they are local to the GPU or also reach other parts of the
system. And uploading a cursor couldn't cause long DMA transfers, at
least I guess.


mail: adi at thur.de  	http://adi.thur.de	PGP/GPG: key via keyserver

More information about the Nouveau mailing list