Bug 100872 - [GLK/CFL] [FW] GuC FW is loaded at boot-up but not shown in dmesg
Summary: [GLK/CFL] [FW] GuC FW is loaded at boot-up but not shown in dmesg
Status: CLOSED NOTABUG
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: DRI git
Hardware: x86-64 (AMD64) Linux (All)
: high critical
Assignee: anusha
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard: ReadyForDev
Keywords:
Depends on:
Blocks:
 
Reported: 2017-04-28 20:06 UTC by Luis Botello
Modified: 2018-03-29 07:06 UTC (History)
2 users (show)

See Also:
i915 platform: CFL, GLK
i915 features: firmware/guc


Attachments
dmesg (116.75 KB, text/plain)
2017-04-28 20:06 UTC, Luis Botello
no flags Details
i915_guc_load_status (768 bytes, text/plain)
2017-04-28 20:08 UTC, Luis Botello
no flags Details

Description Luis Botello 2017-04-28 20:06:08 UTC
Created attachment 131132 [details]
dmesg

==Bug detailed description==
--------------------------------------------------
According to "/sys/kernel/debug/dri/0/i915_guc_load_status" GuC gets loaded at boot-up, but dmesg never shows "load SUCCESS" message.

==Steps to reproduce==
--------------------------------------------------
1-Install latest drm-tip kernel
2-Install GuC
3-Reboot

==Actual results==
--------------------------------------------------
GuC gets loaded but "load SUCCESS" message is not shown in dmesg.

==Expected results==
--------------------------------------------------
GuC gets loaded and "load SUCCESS" message should be shown in dmesg.

==Hardware configuration==
--------------------------------------------------
platform                   : Geminilake
cpu family id              : 6
cpu information            : Genuine Intel(R) CPU @ 1.10GHz
gpu card                   : Intel Corporation Device 3184 (rev 01) (prog-if 00 [VGA controller])

==Software configuration==
--------------------------------------------------
kernel version              : 4.11.0-rc7-drm-tip-1b75708-20-04+
architecture                : x86_64
os version                  : Ubuntu 16.10
bios revision               : 43.30
modesetting                 : modesetting_drv.so
xorg-xserver                : 1.18.4
libdrm                      : 2.4.80
cairo                       : 1.15.5
xserver                     : X.Org X Server 1.19.99.1
dmc version               : 1.4
guc version found         : 10.56

==kernel configuration==
--------------------------------------------------
commit 1b757084743a73fa672e92b4e5cf00a291667dfc
Author: Jani Nikula <jani.nikula@intel.com>
Date:   Wed Apr 19 15:50:51 2017 +0300

    drm-tip: 2017y-04m-19d-12h-50m-15s UTC integration manifest

==kernel parameters==
--------------------------------------------------
quiet splash i915.alpha_support=1 drm.debug=0xe i915.enable_guc_submission=2 i915.enable_guc_loading=2

==Attachments==
--------------------------------------------------
dmesg
i915_guc_load_status
Comment 1 Luis Botello 2017-04-28 20:08:43 UTC
Created attachment 131133 [details]
i915_guc_load_status
Comment 2 cprigent 2017-05-02 15:12:39 UTC
This is a kind of bug/feature request.
We need this log printed for test purposes (make sure firmware is loaded and check init time).
Comment 3 Chris Wilson 2017-05-02 15:20:09 UTC
dmesg is not a user interface, but a collection of user visible strings with all the rigmarole associated with that. /sys/kernel/debug/dri/0/i915_guc_load_status (or a friend) is the debug interface that CI should be using, and if that is insufficient we need to report it similarly through one of the debugfs/sysfs/ioctl interfaces.

Not dmesg.
Comment 4 cprigent 2017-05-02 16:11:35 UTC
This is not about the CI, this is tested manually as part of firmware validation activities.
For previous GuCs we used following logs:
[drm:intel_guc_setup] GuC fw status: fetch SUCCESS, load PENDING
[drm:intel_guc_setup] GuC fw status: fetch SUCCESS, load SUCCESS

Now log is different and the second part disappeared:
[    3.229292] [drm:intel_guc_init_hw [i915]] GuC fw status: fetch SUCCESS, load PENDING
Comment 5 anusha 2017-05-02 16:20:14 UTC
@cprigent Yes. The messages that dmesg now prints has changed as a part of guc cleanup. But like Chris has pointed out, /sys/kernel/debug/dri/0/i915_guc_load_status  has to be used to test the load status.
Comment 6 cprigent 2017-05-02 16:56:34 UTC
(In reply to anusha from comment #5)
> @cprigent Yes. The messages that dmesg now prints has changed as a part of
> guc cleanup. But like Chris has pointed out,
> /sys/kernel/debug/dri/0/i915_guc_load_status  has to be used to test the
> load status.

OK. And what about init time?
Comment 7 anusha 2017-06-14 18:29:56 UTC
@cprigent @Luis 

We do get a GuC loaded message in the dmesg:

[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.12.0-rc4+ root=UUID=87333792-62cd-4ac4-b173-15bbe2a07b60 ro splash drm.debug=0xe i915.enable_guc_loading=2 vt.handoff=7
[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.12.0-rc4+ root=UUID=87333792-62cd-4ac4-b173-15bbe2a07b60 ro splash drm.debug=0xe i915.enable_guc_loading=2 i915.disable_firmware=0 vt.handoff=7
[    7.138883] Setting dangerous option enable_guc_loading - tainting kernel
[    7.149275] [drm:intel_device_info_dump [i915]] i915 device info: has_guc: yes
[    7.149299] [drm:intel_device_info_dump [i915]] i915 device info: has_guc_ct: no
[    7.187160] [drm:fetch_uc_fw [i915]] fetch uC fw from i915/skl_guc_ver6_1.bin succeeded, fw ffff98569e320960
[    7.191331] [drm:intel_guc_init_hw [i915]] GuC fw status: path i915/skl_guc_ver6_1.bin, fetch SUCCESS, load NONE
[    7.191354] [drm:intel_guc_init_hw [i915]] GuC fw status: fetch SUCCESS, load PENDING
[    7.201502] [drm:guc_ucode_xfer_dma [i915]] DMA status 0x10, GuC status 0x8002f0ec
[    7.201531] [drm:guc_ucode_xfer_dma [i915]] returning 0
[    7.201533] [drm] GuC loaded (firmware i915/skl_guc_ver6_1.bin [version 6.1])
Comment 8 Luis Botello 2017-07-24 20:48:52 UTC
Adding dmesg output for SKL:
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.13.0-rc1-drm-tip-ww30-commit-2a4f730+ root=UUID=2a8388ef-fcb0-4ae0-964a-bd124748729c ro quiet drm.debug=0x1e auto panic=1 i915.enable_guc_loading=2 nmi_watchdog=panic i915.enable_guc_submission=2 resume=/dev/sda3 fastboot
[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.13.0-rc1-drm-tip-ww30-commit-2a4f730+ root=UUID=2a8388ef-fcb0-4ae0-964a-bd124748729c ro quiet drm.debug=0x1e auto panic=1 i915.enable_guc_loading=2 nmi_watchdog=panic i915.enable_guc_submission=2 resume=/dev/sda3 fastboot
[    2.939947] Setting dangerous option enable_guc_loading - tainting kernel
[    2.939954] Setting dangerous option enable_guc_submission - tainting kernel
[    2.947901] [drm:intel_device_info_dump [i915]] i915 device info: has_guc: yes
[    2.947939] [drm:intel_device_info_dump [i915]] i915 device info: has_guc_ct: no
[    3.256701] [drm:fetch_uc_fw [i915]] fetch uC fw from i915/skl_guc_ver6_1.bin succeeded, fw ffff880456639428
[    3.265590] [drm:intel_guc_init_hw [i915]] GuC fw status: path i915/skl_guc_ver6_1.bin, fetch SUCCESS, load NONE
[    3.265623] [drm:intel_guc_init_hw [i915]] GuC fw status: fetch SUCCESS, load PENDING
[    3.276391] [drm:guc_ucode_xfer_dma [i915]] DMA status 0x10, GuC status 0x8002f0ec
[    3.276427] [drm:guc_ucode_xfer_dma [i915]] returning 0
[    3.276429] [drm] GuC submission enabled (firmware i915/skl_guc_ver6_1.bin [version 6.1])
[    3.287182] [drm:i915_guc_submission_enable [i915]] reserved cacheline 0x0, next 0x40, linesize 64
[    3.287219] [drm:i915_guc_submission_enable [i915]] Host engines 0x1f => GuC engines used 0x1f
[    3.289429] [drm:i915_guc_submission_enable [i915]] new priority 2 client ffff8804566cbbd8 for engine(s) 0x1f: stage_id 0
[    3.289465] [drm:i915_guc_submission_enable [i915]] doorbell id 0, cacheline offset 0x0




And this is from GLK:
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.13.0-rc2-drm-tip-ww30-commit-30d8319+ root=UUID=8645d92b-a748-451d-9e82-b826714a48c3 ro quiet splash drm.debug=0xe i915.alpha_support=1 i915.enable_guc_submission=2 i915.enable_guc_loading=2 vt.handoff=7
[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.13.0-rc2-drm-tip-ww30-commit-30d8319+ root=UUID=8645d92b-a748-451d-9e82-b826714a48c3 ro quiet splash drm.debug=0xe i915.alpha_support=1 i915.enable_guc_submission=2 i915.enable_guc_loading=2 vt.handoff=7
[    5.005223] Setting dangerous option enable_guc_submission - tainting kernel
[    5.005228] Setting dangerous option enable_guc_loading - tainting kernel
[    5.012529] [drm:intel_device_info_dump [i915]] i915 device info: has_guc: yes
[    5.012588] [drm:intel_device_info_dump [i915]] i915 device info: has_guc_ct: no
[    5.048740] [drm:fetch_uc_fw [i915]] fetch uC fw from i915/glk_guc_ver10_56.bin succeeded, fw ffff880175146178
[    5.070248] [drm:intel_guc_init_hw [i915]] GuC fw status: path i915/glk_guc_ver10_56.bin, fetch SUCCESS, load NONE
[    5.070308] [drm:intel_guc_init_hw [i915]] GuC fw status: fetch SUCCESS, load PENDING
[    5.076409] [drm:guc_ucode_xfer_dma [i915]] DMA status 0x10, GuC status 0x8002f0ec
[    5.076477] [drm:guc_ucode_xfer_dma [i915]] returning 0
[    5.076481] [drm] GuC submission enabled (firmware i915/glk_guc_ver10_56.bin [version 10.56])
[    5.082405] [drm:i915_guc_submission_enable [i915]] reserved cacheline 0x0, next 0x40, linesize 64
[    5.082501] [drm:i915_guc_submission_enable [i915]] Host engines 0x17 => GuC engines used 0xf
[    5.084097] [drm:i915_guc_submission_enable [i915]] new priority 2 client ffff8801757637b8 for engine(s) 0x17: stage_id 0
[    5.084161] [drm:i915_guc_submission_enable [i915]] doorbell id 0, cacheline offset 0x0


So, these log lines are the ones we need to use for loading calculation?
[    5.070248] [drm:intel_guc_init_hw [i915]] GuC fw status: path i915/glk_guc_ver10_56.bin, fetch SUCCESS, load NONE
[    5.076481] [drm] GuC submission enabled (firmware i915/glk_guc_ver10_56.bin [version 10.56])
5.076481 - 5.070248 = 6.233 miliseconds
Is this assumption correct?
Comment 9 Elizabeth 2017-08-31 17:05:12 UTC
Hello Anusha, 

Comparing Luis dmesg:
[    3.276429] [drm] GuC submission enabled (firmware i915/skl_guc_ver6_1.bin [version 6.1])

With yours:
[    7.201533] [drm] GuC loaded (firmware i915/skl_guc_ver6_1.bin [version 6.1])

Seems to be a slightly difference. Is the message "GuC submission enabled" meaning the same as "GuC loaded", or is quite the opposite?

Thanks.
Comment 10 anusha 2017-08-31 17:22:24 UTC

(In reply to Elizabeth from comment #9)
> Hello Anusha, 
> 
> Comparing Luis dmesg:
> [    3.276429] [drm] GuC submission enabled (firmware
> i915/skl_guc_ver6_1.bin [version 6.1])
> 
> With yours:
> [    7.201533] [drm] GuC loaded (firmware i915/skl_guc_ver6_1.bin [version
> 6.1])
> 
> Seems to be a slightly difference. Is the message "GuC submission enabled"
> meaning the same as "GuC loaded", or is quite the opposite?
> 
> Thanks.

Hi Elizabeth, its not quite the same. There are two parameters, that are related but not the same. GuC submission can be enabled only if guc is loaded. So getting "Submission enabled" is a confirmation that guc is loaded. But "GuC loaded" message comes at the time GuC is loaded to microkernel, regardless of submission being enabled or not.
Comment 11 anusha 2017-10-04 15:36:47 UTC
Patches are being reviewed and are in public ML.
https://patchwork.freedesktop.org/patch/180481/ 

There is going to be minor changes if any, the logic remains the same. I have tested this series on a SKL and the load times are shown as expected and well within range. 

The patches can be applied and checked if needed.
Comment 12 Jari Tahvanainen 2017-10-04 15:49:06 UTC
Thanks Anusha. And from the https://patchwork.freedesktop.org/series/31363/ you can see CI results - no negative impact over there.
Comment 13 Jari Tahvanainen 2018-02-06 11:48:43 UTC
I see that data in dmesg for SKL and APL at least ... it should not be different on CFL or GLK - right?
Comment 14 Luis Botello 2018-02-06 18:16:25 UTC
This is not a loading bug, but a bug describing that loading time is not shown is dmesg in some platforms such as GLK.
Comment 15 Rodrigo Vivi 2018-02-07 01:10:18 UTC
GuC support has been removed upstream due to the lack of public firmware for this platforms.

So the bug here is probably the debugfs lying.
Comment 16 anusha 2018-02-07 05:43:20 UTC
Luis, is this tested with the latest kernel on a GLK?
Comment 17 Jani Saarinen 2018-03-29 07:06:55 UTC
no response, closing.


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.