Messages in this thread | | | From | Thomas Gleixner <> | Subject | Re: [PATCH 1/2] kthread: Move prio/affinite change into the newly created thread | Date | Sat, 21 Nov 2020 11:55:48 +0100 |
| |
On Tue, Nov 17 2020 at 13:45, Peter Zijlstra wrote: > On Tue, Nov 10, 2020 at 12:38:47PM +0100, Sebastian Andrzej Siewior wrote: > > Moo... yes this is certainly the easiest solution, because nouveau is a > horrible rats nest. But when I spoke to Greg KH about this, he suggested > nouveau ought to be fixed. > > Ben, I got terminally lost when trying to untangle nouvea init, is there > any chance this can be fixed to not hold that nvkm_device::mutex thing > while doing request_irq() ?
OTOH, creating a dependency chain vs. cpuset_rwsem and whatever lock is held by the caller via request_irq() or kthread_create() is not necessarily restricted to the nivea driver. struct device::mutex (not the nkvm_device::mutex) is always held when a driver is probed.
The cpuset_rwsem -> mmap_lock dependency is a given, so we're one step away from a circular dependency vs. mmap_lock.
That was my reasoning to move the stuff out into the thread context.
Thanks,
tglx
| |