Summary: | [amdgpu SI] "drm/amd/amdgpu: Add GRBM lock to various SI functions" breaks amdgpu support for SI | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | DRI | Reporter: | Arek Ruśniak <arek.rusi> | ||||||||
Component: | DRM/AMDgpu | Assignee: | Default DRI bug account <dri-devel> | ||||||||
Status: | RESOLVED FIXED | QA Contact: | |||||||||
Severity: | normal | ||||||||||
Priority: | medium | CC: | lakostis, tom.stdenis | ||||||||
Version: | unspecified | ||||||||||
Hardware: | Other | ||||||||||
OS: | All | ||||||||||
Whiteboard: | |||||||||||
i915 platform: | i915 features: | ||||||||||
Attachments: |
|
Created attachment 126205 [details]
commit: deca1d1 reverted
sorry for lack of description It's Alex's drm-next-4.9-wip branch. First bad commit: commit deca1d1f16eebfa0d070eed50a221e01cf716ee0 author Tom St Denis <tom.stdenis@amd.com> drm/amd/amdgpu: Add GRBM lock to various SI functions Add missing lock around SE/SH/INSTANCE selections. (In reply to Arek Ruśniak from comment #0) > Created attachment 126204 [details] > dmesg for first bad commit > > With this commit displays off during loading amdgpu, sysrq don't work, boot > is stopped. > When i reverted it, amdgpu works as always. > > dmesg is silent Same behavior but on PREEMPT kernel even without mentioned patch. Just to clarify that it could be more general problem than locking in this particular place. Could you share config and patchset for your preempt kernel. If I will have some time I could build it. I'm just curious. I know nothing about what preempt is. I think I should rather call my kernel - "generic" but "uname -a" gives me: Linux darkfruit 4.8.0-rc1-20160904 #10 SMP PREEMPT Tue Sep 6 23:01:48 CEST 2016 x86_64 GNU/Linux So I'm confused about it Tom, any ideas? The problem is a double lock. The grbm_idx_mutex lock is taken in gfx_v6_0_get_cu_info() which then calls gfx_v6_0_get_cu_active_bitmap() which also takes the lock. The fix is to remove the lock and the select from the parent function. I'll attach a patch momentarily. The problem is a double lock. The grbm_idx_mutex lock is taken in gfx_v6_0_get_cu_info() which then calls gfx_v6_0_get_cu_active_bitmap() which also takes the lock. The fix is to remove the lock and the select from the parent function. I'll attach a patch momentarily. Created attachment 126274 [details] [review] Patch to remove double lock This removes the double lock. It's actually patch #9 in my yet to be RB'ed series of SI cleanups ... Thx, works good for me. |
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 126204 [details] dmesg for first bad commit With this commit displays off during loading amdgpu, sysrq don't work, boot is stopped. When i reverted it, amdgpu works as always. dmesg is silent