Bug 106639

Summary: System display has noise when amdgpu module is being loaded
Product: DRI Reporter: jian-hong
Component: DRM/AMDgpuAssignee: Default DRI bug account <dri-devel>
Status: RESOLVED MOVED QA Contact:
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Noise on the display
none
The full dmesg
none
Here is the video of the noise, watch the bottom of the screen
none
dmesg of trying commit b8f3439fa5358ac84d29fa2f4afa115500dec74c
none
Asus X570ZD dmesg with debug params
none
possible fix none

Description jian-hong 2018-05-24 07:41:16 UTC
Created attachment 139732 [details]
Noise on the display

This is found on the laptop equipped with AMD A4-9120 RADEON R3, 4 COMPUTE CORES 2C+2G.  It is seen between BIOS log and Display manager.

To make sure the timing, I have tried with Linux kernel 4.17-rc6.  And boot with parameters "systemd.unit=multi-user.target modprobe.blacklist=amdpgu" which makes system boot into command line mode and blacklist the amdgpu module.  The noise does not appear during the processes.

However, when I load amdgpu module manually with "sudo modprobe amdgpu", the noise appears on the screen and then system goes back to normal console.  This also happens in Linux kernel 4.16.

Here is the part of dmesg when amdgpu module is being loaded:

[  106.885251] [drm] amdgpu kernel modesetting enabled.
[  106.886731] checking generic (e0000000 420000) vs hw (e0000000 10000000)
[  106.886733] fb: switching to amdgpudrmfb from EFI VGA
[  106.888154] Console: switching to colour dummy device 80x25
[  106.888710] [drm] initializing kernel modesetting (STONEY 0x1002:0x98E4 0x1025:0x1192 0xE2).
[  106.888747] [drm] register mmio base: 0xF0C00000
[  106.888750] [drm] register mmio size: 262144
[  106.888773] [drm] add ip block number 0 <vi_common>
[  106.888776] [drm] add ip block number 1 <gmc_v8_0>
[  106.888780] [drm] add ip block number 2 <cz_ih>
[  106.888783] [drm] add ip block number 3 <powerplay>
[  106.888787] [drm] add ip block number 4 <dm>
[  106.888790] [drm] add ip block number 5 <gfx_v8_0>
[  106.888793] [drm] add ip block number 6 <sdma_v3_0>
[  106.888796] [drm] add ip block number 7 <uvd_v6_0>
[  106.888799] [drm] add ip block number 8 <vce_v3_0>
[  106.888802] [drm] add ip block number 9 <acp_ip>
[  106.888818] [drm] UVD is enabled in physical mode
[  106.888822] [drm] VCE enabled in VM mode
[  106.888864] ATOM BIOS: SWBRT19987.001
[  106.888922] [drm] vm size is 64 GB, 2 levels, block size is 10-bit, fragment size is 9-bit
[  106.888935] amdgpu 0000:00:01.0: VRAM: 384M 0x000000F400000000 - 0x000000F417FFFFFF (384M used)
[  106.888940] amdgpu 0000:00:01.0: GTT: 1024M 0x0000000000000000 - 0x000000003FFFFFFF
[  106.888951] [drm] Detected VRAM RAM=384M, BAR=384M
[  106.888955] [drm] RAM width 64bits UNKNOWN
[  106.889041] [TTM] Zone  kernel: Available graphics memory: 2870386 kiB
[  106.889045] [TTM] Zone   dma32: Available graphics memory: 2097152 kiB
[  106.889049] [TTM] Initializing pool allocator
[  106.889058] [TTM] Initializing DMA pool allocator
[  106.889136] [drm] amdgpu: 384M of VRAM memory ready
[  106.889141] [drm] amdgpu: 3072M of GTT memory ready.
[  106.889160] [drm] GART: num cpu pages 262144, num gpu pages 262144
[  106.890219] [drm] PCIE GART of 1024M enabled (table at 0x000000F400040000).
[  106.921115] [drm] Found UVD firmware Version: 1.38 Family ID: 15
[  106.921151] [drm] UVD ENC is disabled
[  106.928184] [drm] Found VCE firmware Version: 52.0 Binary ID: 3
[  106.955239] [drm] DM_PPLIB: values for Engine clock
[  106.955250] [drm] DM_PPLIB:	 20000
[  106.955253] [drm] DM_PPLIB:	 30000
[  106.955255] [drm] DM_PPLIB:	 40000
[  106.955257] [drm] DM_PPLIB:	 46452
[  106.955259] [drm] DM_PPLIB:	 51429
[  106.955261] [drm] DM_PPLIB:	 57600
[  106.955263] [drm] DM_PPLIB:	 62609
[  106.955265] [drm] DM_PPLIB:	 65455
[  106.955267] [drm] DM_PPLIB: Validation clocks:
[  106.955270] [drm] DM_PPLIB:    engine_max_clock: 65455
[  106.955272] [drm] DM_PPLIB:    memory_max_clock: 80000
[  106.955274] [drm] DM_PPLIB:    level           : 0
[  106.955277] [drm] DM_PPLIB: values for Display clock
[  106.955280] [drm] DM_PPLIB:	 30000
[  106.955282] [drm] DM_PPLIB:	 40000
[  106.955284] [drm] DM_PPLIB:	 49656
[  106.955285] [drm] DM_PPLIB:	 62609
[  106.955287] [drm] DM_PPLIB:	 68572
[  106.955289] [drm] DM_PPLIB:	 75790
[  106.955291] [drm] DM_PPLIB:	 80000
[  106.955293] [drm] DM_PPLIB:	 84706
[  106.955295] [drm] DM_PPLIB: Validation clocks:
[  106.955297] [drm] DM_PPLIB:    engine_max_clock: 65455
[  106.955299] [drm] DM_PPLIB:    memory_max_clock: 80000
[  106.955302] [drm] DM_PPLIB:    level           : 0
[  106.955304] [drm] DM_PPLIB: values for Memory clock
[  106.955306] [drm] DM_PPLIB:	 66700
[  106.955308] [drm] DM_PPLIB:	 80000
[  106.955310] [drm] DM_PPLIB: Validation clocks:
[  106.955312] [drm] DM_PPLIB:    engine_max_clock: 65455
[  106.955314] [drm] DM_PPLIB:    memory_max_clock: 80000
[  106.955317] [drm] DM_PPLIB:    level           : 0
[  107.270853] [drm:hwss_wait_for_blank_complete [amdgpu]] *ERROR* DC: failed to blank crtc!
[  107.270893] [drm] Display Core initialized with v3.1.38!
[  107.292567] [drm] SADs count is: -2, don't need to read it
[  107.293576] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[  107.293588] [drm] Driver supports precise vblank timestamp query.
[  108.322298] [drm] UVD initialized successfully.
[  108.423218] [drm] VCE initialized successfully.
[  108.930784] [drm] fb mappable at 0x1874A7000
[  108.930794] [drm] vram apper at 0x187000000
[  108.930797] [drm] size 4325376
[  108.930800] [drm] fb depth is 24
[  108.930802] [drm]    pitch is 5632
[  108.930932] fbcon: amdgpudrmfb (fb0) is primary device
[  109.052742] Console: switching to colour frame buffer device 170x48
[  109.071709] amdgpu 0000:00:01.0: fb0: amdgpudrmfb frame buffer device
[  109.076266] [drm] Initialized amdgpu 3.25.0 20150101 for 0000:00:01.0 on minor 0
[  109.076718] modprobe (2992) used greatest stack depth: 11048 bytes left
Comment 1 jian-hong 2018-05-24 07:42:54 UTC
Created attachment 139733 [details]
The full dmesg
Comment 3 jian-hong 2018-05-28 06:50:15 UTC
Created attachment 139808 [details]
Here is the video of the noise, watch the bottom of the screen

Thanks for the suggestion from Michel.

I tried the git://people.freedesktop.org/~agd5f/linux branch drm-next-4.18 whose last commit is b8f3439fa5358ac84d29fa2f4afa115500dec74c containing the commit ebdef28ebbcf767d9fa687acb1d02d97d834c628.

It is better than before, but still has noise during loading amdgpu module.
The attachment is the video of the noise, watch the bottom of the screen.
Comment 4 jian-hong 2018-05-28 06:53:46 UTC
Created attachment 139809 [details]
dmesg of trying commit b8f3439fa5358ac84d29fa2f4afa115500dec74c

Here is the full dmesg of trying the git://people.freedesktop.org/~agd5f/linux branch drm-next-4.18 whose last commit is 8f3439fa5358ac84d29fa2f4afa115500dec74c
Comment 5 jian-hong 2018-05-30 03:52:03 UTC
Hi Michel,

The patch which you mentioned works better than before.
Will it be back ported to Linux kernel 4.16 or 4.17?

Thanks
Comment 6 Daniel Drake 2018-08-28 05:34:02 UTC
This issue can be reproduced on Linux 4.18.5 on Asus X570VD (AMD Ryzen 7 with Radeon Vega Mobile Gfx) which includes the above patch.

It can also be reproduced on the latest 4.15 kernel in Ubuntu 18.04.

In both cases the glitch is quite jarring, lots of white flashing up in the middle of the screen.

During ubuntu boot:
https://youtu.be/cOYumE38Xac

During manual modprobe:
https://youtu.be/I1a6C4mF6pA

I installed AMDGPU-PRO 18.20 All-Open version and the problem remains.

Please let me know how we can assist with next steps.
Comment 7 Daniel Drake 2018-08-28 05:35:05 UTC
Sorry for the typo above - the product is Asus X570ZD
Comment 8 Daniel Drake 2018-08-28 05:46:42 UTC
Created attachment 141304 [details]
Asus X570ZD dmesg with debug params
Comment 9 Alex Deucher 2018-08-28 15:05:54 UTC
Created attachment 141309 [details] [review]
possible fix

This patch should help but please check if you can pass several S3 cycles with it.
Comment 10 Daniel Drake 2018-08-30 09:11:37 UTC
Thanks - that looks great! I don't see any glitch now.

There is still a flash during boot, presumably when it hands off from efifb to amdgpu it's doing a modeset. But it's ultra quick and it doesn't feel like a glitch, so I don't think it's worth viewing that as a defect.

I did 10 suspend/resume cycles and didn't see any failures there.
Comment 11 Daniel Drake 2018-09-03 10:17:49 UTC
Also confirmed working after applying these commits from amd-staging-drm-next

Applying: drm/amdgpu/gmc9: rework stolen vga memory handling
Applying: drm/amdgpu/gmc9: don't keep stolen memory on Raven
Applying: drm/amdgpu/gmc9: don't keep stolen memory on vega12
Applying: drm/amdgpu/gmc9: don't keep stolen memory on vega20
Comment 12 Martin Peres 2019-11-19 08:39:41 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/drm/amd/issues/397.

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.