Maarten Maathuis
2010-May-26 21:24 UTC
[Nouveau] Why do we disable local IRQ around nouveau_fence_update?
For NV04 i can understand, since it's irq driven fences, so let's split the question. NV10+: can we reduce it to just spin_lock? NV04: can't we rely on a normal spin lock and add it as well in nv04_graph_mthd_set_ref? Maarten. -- Life spent, a precious moment, in the wink of an eye we live and we die.
Pekka Paalanen
2010-May-27 14:55 UTC
[Nouveau] Why do we disable local IRQ around nouveau_fence_update?
On Wed, 26 May 2010 23:24:57 +0200 Maarten Maathuis <madman2003 at gmail.com> wrote:> For NV04 i can understand, since it's irq driven fences, so let's > split the question. > > NV10+: can we reduce it to just spin_lock?I don't know the answer, but I know the theory: if there is any path, that can take the spinlock from an interrupt service path, then you must use the irq-safe version everywhere.> NV04: can't we rely on a normal spin lock and add it as well in > nv04_graph_mthd_set_ref?So if NV04 fences are driven by irqs, and the ISR needs to take the lock, then no, you cannot revert to irq-unsafe spinlocks. I'm not sure how it relates to ISR bottom halves, though. Note, that also irq-unsafe spinlocks disable preemption, which might be enough to disturb audio. my 2c -- Pekka Paalanen http://www.iki.fi/pq/
Reasonably Related Threads
- [PATCH 2/2] drm/nv04: Implement missing nv04 PGRAPH methods in software.
- [PATCH 1/2] drm/nouveau: Use 0x5f instead of 0x9f as imageblit on original NV10.
- [PATCH] drm/nouveau: reduce usage of fence spinlock to when absolutely necessary
- [PATCH] nouveau: avoid running out of relocs (attempt 4)
- [PATCH] nouveau: avoid running out of relocs (attempt 5)