Created attachment 140184 [details] Linux 4.16.12 messages On a Asus F2A85-M PRO with Linux 4.16.12 from Debian Sid/unstable, according to *initcall_debug*, the module *radeon* takes over two seconds to load. I blacklisted the module *radeon*, started the system, and loaded it *manually*. ``` $ more /proc/version Linux version 4.16.0-0.bpo.2-amd64 (debian-kernel@lists.debian.org) (gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1)) #1 SMP Debian 4.16 .12-1~bpo9+1 (2018-06-03) $ sudo dmidecode -t bios # dmidecode 3.0 Getting SMBIOS data from sysfs. SMBIOS 2.7 present. Handle 0x0000, DMI type 0, 24 bytes BIOS Information Vendor: American Megatrends Inc. Version: 6601 Release Date: 11/25/2014 Address: 0xF0000 Runtime Size: 64 kB ROM Size: 8192 kB Characteristics: PCI is supported BIOS is upgradeable BIOS shadowing is allowed Boot from CD is supported Selectable boot is supported BIOS ROM is socketed EDD is supported 5.25"/1.2 MB floppy services are supported (int 13h) 3.5"/720 kB floppy services are supported (int 13h) 3.5"/2.88 MB floppy services are supported (int 13h) Print screen service is supported (int 5h) 8042 keyboard services are supported (int 9h) Serial services are supported (int 14h) Printer services are supported (int 17h) ACPI is supported USB legacy is supported BIOS boot specification is supported Targeted content distribution is supported UEFI is supported BIOS Revision: 4.6 Handle 0x0049, DMI type 13, 22 bytes BIOS Language Information Language Description Format: Long Installable Languages: 8 en|US|iso8859-1 fr|FR|iso8859-1 es|ES|iso8859-1 de|DE|iso8859-1 ru|RU|iso8859-5 ja|JP|unicode zh|TW|unicode zh|CN|unicode Currently Installed Language: en|US|iso8859-1 $ sudo modprobe radeon $ sudo dmesg […] [ 102.886209] calling radeon_init+0x0/0xb0 [radeon] @ 12952 [ 102.886211] [drm] radeon kernel modesetting enabled. [ 102.887680] [drm] initializing kernel modesetting (ARUBA 0x1002:0x9996 0x1043:0x8526 0x00). [ 102.887766] ATOM BIOS: 113 [ 102.887853] radeon 0000:00:01.0: VRAM: 768M 0x0000000000000000 - 0x000000002FFFFFFF (768M used) [ 102.887856] radeon 0000:00:01.0: GTT: 1024M 0x0000000030000000 - 0x000000006FFFFFFF [ 102.887859] [drm] Detected VRAM RAM=768M, BAR=256M [ 102.887860] [drm] RAM width 64bits DDR [ 102.888845] [TTM] Zone kernel: Available graphics memory: 1640126 kiB [ 102.888847] [TTM] Initializing pool allocator [ 102.888850] [TTM] Initializing DMA pool allocator [ 102.888872] [drm] radeon: 768M of VRAM memory ready [ 102.888873] [drm] radeon: 1024M of GTT memory ready. [ 102.888881] [drm] Loading ARUBA Microcode [ 102.889382] radeon 0000:00:01.0: firmware: direct-loading firmware radeon/ARUBA_pfp.bin [ 102.889682] radeon 0000:00:01.0: firmware: direct-loading firmware radeon/ARUBA_me.bin [ 102.889855] radeon 0000:00:01.0: firmware: direct-loading firmware radeon/ARUBA_rlc.bin [ 102.889860] [drm] Internal thermal controller without fan control [ 102.890007] [drm] radeon: dpm initialized [ 102.891095] radeon 0000:00:01.0: firmware: direct-loading firmware radeon/TAHITI_uvd.bin [ 102.891524] radeon 0000:00:01.0: firmware: direct-loading firmware radeon/TAHITI_vce.bin [ 102.892233] [drm] Found VCE firmware/feedback version 50.0.1 / 17! [ 102.892252] [drm] GART: num cpu pages 262144, num gpu pages 262144 [ 102.901483] [drm] PCIE GART of 1024M enabled (table at 0x00000000001D6000). [ 102.901634] radeon 0000:00:01.0: WB enabled [ 102.901637] radeon 0000:00:01.0: fence driver on ring 0 use gpu addr 0x0000000030000c00 and cpu addr 0x000000004ecba740 [ 102.902013] radeon 0000:00:01.0: fence driver on ring 5 use gpu addr 0x0000000000075a18 and cpu addr 0x000000001e5cb786 [ 102.922033] radeon 0000:00:01.0: fence driver on ring 6 use gpu addr 0x0000000030000c18 and cpu addr 0x0000000041004126 [ 102.922035] radeon 0000:00:01.0: fence driver on ring 7 use gpu addr 0x0000000030000c1c and cpu addr 0x00000000790037d4 [ 102.922036] radeon 0000:00:01.0: fence driver on ring 1 use gpu addr 0x0000000030000c04 and cpu addr 0x000000001498f18b [ 102.922037] radeon 0000:00:01.0: fence driver on ring 2 use gpu addr 0x0000000030000c08 and cpu addr 0x0000000078dabdd0 [ 102.922038] radeon 0000:00:01.0: fence driver on ring 3 use gpu addr 0x0000000030000c0c and cpu addr 0x000000002fbb9e93 [ 102.922039] radeon 0000:00:01.0: fence driver on ring 4 use gpu addr 0x0000000030000c10 and cpu addr 0x000000008761b2bb [ 102.922050] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). [ 102.922051] [drm] Driver supports precise vblank timestamp query. [ 102.922052] radeon 0000:00:01.0: radeon: MSI limited to 32-bit [ 102.922097] radeon 0000:00:01.0: radeon: using MSI. [ 102.922118] [drm] radeon: irq initialized. [ 102.940486] [drm] ring test on 0 succeeded in 2 usecs [ 102.940496] [drm] ring test on 3 succeeded in 3 usecs [ 102.940503] [drm] ring test on 4 succeeded in 3 usecs [ 102.986224] [drm] ring test on 5 succeeded in 2 usecs [ 103.006092] [drm] UVD initialized successfully. [ 103.115293] [drm] ring test on 6 succeeded in 18 usecs [ 103.115302] [drm] ring test on 7 succeeded in 3 usecs [ 103.115302] [drm] VCE initialized successfully. [ 103.115467] [drm] ib test on ring 0 succeeded in 0 usecs [ 103.115522] [drm] ib test on ring 3 succeeded in 0 usecs [ 103.115575] [drm] ib test on ring 4 succeeded in 0 usecs [ 103.648614] [drm] ib test on ring 5 succeeded [ 104.192640] [drm] ib test on ring 6 succeeded [ 104.704646] [drm] ib test on ring 7 succeeded [ 104.705559] [drm] Radeon Display Connectors [ 104.705561] [drm] Connector 0: [ 104.705562] [drm] DP-1 [ 104.705564] [drm] HPD1 [ 104.705567] [drm] DDC: 0x6530 0x6530 0x6534 0x6534 0x6538 0x6538 0x653c 0x653c [ 104.705567] [drm] Encoders: [ 104.705569] [drm] DFP1: INTERNAL_UNIPHY2 [ 104.705570] [drm] Connector 1: [ 104.705571] [drm] VGA-1 [ 104.705572] [drm] HPD2 [ 104.705574] [drm] DDC: 0x6540 0x6540 0x6544 0x6544 0x6548 0x6548 0x654c 0x654c [ 104.705575] [drm] Encoders: [ 104.705576] [drm] CRT1: INTERNAL_UNIPHY2 [ 104.705576] [drm] CRT1: NUTMEG [ 104.705577] [drm] Connector 2: [ 104.705578] [drm] DVI-D-1 [ 104.705579] [drm] HPD3 [ 104.705581] [drm] DDC: 0x6550 0x6550 0x6554 0x6554 0x6558 0x6558 0x655c 0x655c [ 104.705582] [drm] Encoders: [ 104.705583] [drm] DFP2: INTERNAL_UNIPHY [ 104.982448] [drm] fb mappable at 0xC03DA000 [ 104.982450] [drm] vram apper at 0xC0000000 [ 104.982450] [drm] size 5242880 [ 104.982450] [drm] fb depth is 24 [ 104.982451] [drm] pitch is 5120 [ 104.982850] fbcon: radeondrmfb (fb0) is primary device [ 105.062208] Console: switching to colour frame buffer device 160x64 [ 105.064201] radeon 0000:00:01.0: fb0: radeondrmfb frame buffer device [ 105.076659] [drm] Initialized radeon 2.50.0 20080528 for 0000:00:01.0 on minor 0 [ 105.076855] initcall radeon_init+0x0/0xb0 [radeon] returned 0 after 2139213 usecs […] $ sudo lspci -vvxxx -s 0:01.0 00:01.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Richland [Radeon HD 8470D] (prog-if 00 [VGA controller]) Subsystem: ASUSTeK Computer Inc. Richland [Radeon HD 8470D] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0, Cache Line Size: 64 bytes Interrupt: pin A routed to IRQ 44 Region 0: Memory at c0000000 (32-bit, prefetchable) [size=256M] Region 1: I/O ports at f000 [size=256] Region 2: Memory at feb00000 (32-bit, non-prefetchable) [size=256K] [virtual] Expansion ROM at 000c0000 [disabled] [size=128K] Capabilities: [50] Power Management version 3 Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [58] Express (v2) Root Complex Integrated Endpoint, MSI 00 DevCap: MaxPayload 128 bytes, PhantFunc 0 ExtTag+ RBE+ DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+ MaxPayload 128 bytes, MaxReadReq 128 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend- DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled Capabilities: [a0] MSI: Enable+ Count=1/1 Maskable- 64bit+ Address: 00000000fee00000 Data: 0000 Capabilities: [100 v1] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?> Kernel driver in use: radeon Kernel modules: radeon 00: 02 10 96 99 07 04 10 00 00 00 00 03 10 00 80 00 10: 08 00 00 c0 01 f0 00 00 00 00 b0 fe 00 00 00 00 20: 00 00 00 00 00 00 00 00 00 00 00 00 43 10 26 85 30: 00 00 00 00 50 00 00 00 00 00 00 00 0a 01 00 00 40: 00 00 00 00 00 00 00 00 00 00 00 00 43 10 26 85 50: 01 58 03 06 00 00 00 00 10 a0 92 00 a0 8f 00 00 60: 10 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a0: 05 00 81 00 00 00 e0 fe 00 00 00 00 00 00 00 00 b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ``` 1.6 seconds are spent in ib tests, and the rest 500 ms are also much too long.
Just to put this into perspective, that without loading the radeon module, the OS, that means Linux kernel + user space, takes around two to three seconds to start (substracting the LUKS passphrase dialog).
Is that a firmware or hardware problem?
That is expected behavior. Because of stability issues we don't enable power management during startup initially which makes the hardware run at it's default clock (usually between 17 and 100MHz) during startup.
Is there a switch to override that behavior?
(In reply to Paul Menzel from comment #4) > Is there a switch to override that behavior? Long story short, no there isn't. You could try to disable certain blocks with radeon.uvd=0 and radeon.vce=0 to speed up boot a bit if you don't need that functionality. But that's basically all you can do without implementing a different approach to power management.
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.