[Bug 90741] Radeon: System pauses on TAHITI

bugzilla-daemon at bugzilla.kernel.org bugzilla-daemon at bugzilla.kernel.org
Mon Mar 2 02:19:41 PST 2015


https://bugzilla.kernel.org/show_bug.cgi?id=90741

--- Comment #50 from Maarten Lankhorst <bugs at mblankhorst.nl> ---
Ok never mind that approach then..

in radeon_fence.c, add a
WARN_ON((int)atomic_read(&rdev->irq.ring_int[fence->ring]) <= 0); after the
sw_irq_get, it should never fire.

in si.c you have a few lines like this:

    if (atomic_read(&rdev->irq.ring_int[RADEON_RING_TYPE_GFX_INDEX])) {
        DRM_DEBUG("si_irq_set: sw int gfx\n");
        cp_int_cntl |= TIME_STAMP_INT_ENABLE;
    }
    if (atomic_read(&rdev->irq.ring_int[CAYMAN_RING_TYPE_CP1_INDEX])) {
        DRM_DEBUG("si_irq_set: sw int cp1\n");
        cp_int_cntl1 |= TIME_STAMP_INT_ENABLE;
    }
    if (atomic_read(&rdev->irq.ring_int[CAYMAN_RING_TYPE_CP2_INDEX])) {
        DRM_DEBUG("si_irq_set: sw int cp2\n");
        cp_int_cntl2 |= TIME_STAMP_INT_ENABLE;
    }

Can you first change all of the conditions to atomic_read(..) || 1 so it always
sets the irqs? That should fix the hangs at some cpu overhead..

If that works and you no longer get hangs, can you remove the || 1 for
RADEON_RING_TYPE_GFX_INDEX, see if the hangs are still gone?

-- 
You are receiving this mail because:
You are watching the assignee of the bug.


More information about the dri-devel mailing list