[Bug 29140] [rs690] Freeze at Xorg startup when using KMS and multiple screens

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugs.freedesktop.org/show_bug.cgi?id=29140

--- Comment #9 from steckdenis@xxxxxxxx 2010-08-12 09:57:45 PDT ---
Hello,

I think I found the problem, but I am unfortunately unable to fix it (I don't
know the radeon module enough).

A change between the 2.6.34 and 2.6.35 kernels added a bunch of functions in
drivers/gpu/drm/radeon/radeon_pm.c. The function that causes troubles to me is
radeon_pm_set_clocks(struct radeon_device *rdev); .

This function begins by locking three mutexes, including rdev->cp.mutex.

My card is a r300, so the code goes through the "else" branch of the if. This
branch contains a call to radeon_fence_emit.

Now in radeon_fence.c . I don't know how, but this function happens to call
radeon_fence_wait. The problem is that radeon_fence_wait calls
r300_gpu_is_lockup, by branching in "if
(unlikely(!radeon_fence_signaled(fence))) {".

In r300.c : r300_gpu_is_lockup, called by radeon_fence_wait, calls
radeon_ring_lock, because it wants to write in the ring.

In radeon_ring.c : radeon_ring_lock begins by calling
"mutex_lock(&rdev->cp.mutex);", the exact same mutex as the one already locked
by radeon_pm_set_clocks. That seems to be the problem.

Cheers.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel


[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux