Summary: | Problems initializing Radeon driver: lockup during IB test | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | DRI | Reporter: | Lucas Kannebley Tavares <lucaskt> | ||||||||||
Component: | DRM/Radeon | Assignee: | Default DRI bug account <dri-devel> | ||||||||||
Status: | RESOLVED FIXED | QA Contact: | |||||||||||
Severity: | normal | ||||||||||||
Priority: | medium | CC: | brking, florian, lucaskt, will_schmidt | ||||||||||
Version: | unspecified | ||||||||||||
Hardware: | PowerPC | ||||||||||||
OS: | Linux (All) | ||||||||||||
See Also: | https://bugs.freedesktop.org/show_bug.cgi?id=59982 | ||||||||||||
Whiteboard: | |||||||||||||
i915 platform: | i915 features: | ||||||||||||
Attachments: |
|
Created attachment 73398 [details]
Backtrace upon reboot
I can't remove the module the modprobe (some resource got stuck) but there's a backtrace printout if I attempt to reboot the machine.
Is this still an issue with Dave's latest drm pull request: http://cgit.freedesktop.org/~airlied/linux/log/?h=drm-fixes Created attachment 73440 [details] [review] Enable more DMA byte swapping bits on big endian hosts Does this patch help? Created attachment 73455 [details] [review] use sw swap for dma rings If the hw swapper patch doesn't work, you can try this patch. in attachment 73440 [details] [review], I don't think we want to enable fence swapping: +#ifdef __BIG_ENDIAN + dma_cntl |= FENCE_SWAP_ENABLE; +#endif since we already swap the fence in radeon_fence_read(). Ignore my patch and comments. After thinking about this more they won't work. See is Michel's patch fixes it for your. (In reply to comment #5) > I don't think we want to enable fence swapping [...] since we already swap the > fence in radeon_fence_read(). Ah, right. Lucas, so it's probably better if you try without FENCE_SWAP_ENABLE first. Hi Michael, the patch you provided did indeed get rid of all errors, but now modprobe enters an infinite loop on the test that previously failed [ 62.294510] [drm] ring test on 0 succeeded in 0 usecs [ 62.294578] [drm] ring test on 3 succeeded in 1 usecs [ 62.294901] [drm:evergreen_irq_set], evergreen_irq_set: sw int gfx [ 62.294943] [drm] ib test on ring 0 succeeded in 0 usecs [ 62.294989] [drm:evergreen_irq_set], r600_irq_set: sw int dma [ 62.721958] [drm:evergreen_irq_set], r600_irq_set: sw int dma [ 62.731965] [drm:evergreen_irq_set], r600_irq_set: sw int dma [ 62.741979] [drm:evergreen_irq_set], r600_irq_set: sw int dma ... [ 434.061917] [drm:evergreen_irq_set], r600_irq_set: sw int dma Just saw your last comment and so I'm off to change remove FENCE_SWAP_ENABLE. Thanks Ok, so the patch with FENCE_SWAP_ENABLE removed worked perfectly! Thanks (In reply to comment #9) > Ok, so the patch with FENCE_SWAP_ENABLE removed worked perfectly! Great, thanks for testing! However, bugs should only be resolved once the fix has landed in mainline. A patch referencing this bug report has been merged in Linux v3.8-rc6: commit b3dfcb207e550dffb8680cab7afaf6b4fb6eae33 Author: Michel Dänzer <michel.daenzer@amd.com> Date: Thu Jan 24 19:02:01 2013 +0100 drm/radeon: Enable DMA_IB_SWAP_ENABLE on big endian hosts. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.
Created attachment 73396 [details] modprobe radeon with drm.debug=1 Hi all, I've been trying to get a evergreen adapter to work with the Radeon driver on a ppc64 machine. And while attempting that, I'm running into what seems to be a infinite loop while running the IB test on ring 3. I'm using a 3.8.0-rc4 kernel from today. Follows an excerpt from the logs, the entire modprobe log can be found attached. [ 171.975487] [drm:evergreen_blit_init], evergreen blit allocated bo 00000600 vs 00000400 ps 00000500 [ 171.975631] radeon 0001:01:00.0: WB enabled [ 171.975636] radeon 0001:01:00.0: fence driver on ring 0 use gpu addr 0x0000000020000c00 and cpu addr 0xc0000001d32b0c00 [ 171.975642] radeon 0001:01:00.0: fence driver on ring 3 use gpu addr 0x0000000020000c0c and cpu addr 0xc0000001d32b0c0c [ 171.992732] [drm] ring test on 0 succeeded in 0 usecs [ 171.992799] [drm] ring test on 3 succeeded in 1 usecs [ 171.993112] [drm:evergreen_irq_set], evergreen_irq_set: sw int gfx [ 171.993154] [drm] ib test on ring 0 succeeded in 0 usecs [ 171.993197] [drm:evergreen_irq_set], r600_irq_set: sw int dma [ 172.419617] [drm:evergreen_irq_set], r600_irq_set: sw int dma .... [ 182.399612] [drm:evergreen_irq_set], r600_irq_set: sw int dma [ 182.409618] [drm:evergreen_irq_set], r600_irq_set: sw int dma [ 182.419604] radeon 0001:01:00.0: GPU lockup CP stall for more than 10000msec [ 182.419615] radeon 0001:01:00.0: GPU lockup (waiting for 0x0000000000000001 last fence id 0x0000000000000000) [ 182.419626] [drm:r600_dma_ib_test] *ERROR* radeon: fence wait failed (-35). [ 182.419634] [drm:radeon_ib_ring_tests] *ERROR* radeon: failed testing IB on ring 3 (-35). Do you guys have any idea what could be wrong, or what should be looked into? Thanks