New issue
Advanced search Search tips

Issue 819786 link

Starred by 3 users

Issue metadata

Status: Untriaged
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

chromeos-4.14: FBC check failure on Haswell systems

Project Member Reported by groeck@chromium.org, Mar 7 2018

Issue description

In chromeos-4.14, FBC is disabled on Haswell systems; see upstream commit c7f7e2feffb0 ("drm/i915/fbc: Disable on HSW by default for now").
This causes the graphics_Idle test to fail when testing Haswell systems with chromeos-4.14.

 
Guenter, I don't think FBC is enabled anywhere now. See for instance https://partnerissuetracker.corp.google.com/issues/35587161 for some background info. Is this test failing only on Haswell? I wouldn't exclude a test problem.

Convenience link: https://chromium.googlesource.com/chromiumos/third_party/autotest/+log/master/client/site_tests/graphics_Idle
AFAICS the test is enabled for Haswell, Ivybridge, and Sandybridge devices. See CL:882201 which I use as workaround.


Thanks, so I understand that without https://chromium-review.googlesource.com/c/chromiumos/third_party/autotest/+/882201/2/client/site_tests/graphics_Idle/graphics_Idle.py the test fails on Haswell with the "Did not see FBC enabled" error found there?

Other convenience link: https://www.chromium.org/chromium-os/developer-information-for-chrome-os-devices

#3: Correct.
Labels: -Pri-3 Pri-1
bumping priority since I'm seeing paladin failures due to this:

https://logs.chromium.org/logs/chromeos/buildbucket/cr-buildbucket.appspot.com/8931213394697130592/+/steps/HWTest__bvt-inline_/0/stdout
Triggered task: wolf-paladin/R72-11211.0.0-rc1-bvt-inline

graphics_Idle                           [ FAILED ]
  graphics_Idle                             FAIL: Failed: Did not see FBC enabled.

https://stainless.corp.google.com/browse/chromeos-autotest-results/253728576-chromeos-test/

Looking at graphics_Idle.DEBUG :
10/30 13:51:08.162 INFO |     graphics_Idle:0302| Running verify_graphics_fbc
10/30 13:51:28.186 ERROR|     graphics_Idle:0073| Error: Did not see FBC enabled. 
10/30 13:51:28.194 INFO |     graphics_Idle:0077| Content of /sys/kernel/debug/dri/0/i915_fbc
FBC disabled: no outputs
...
10/30 13:51:59.756 DEBUG|              test:0381| Test failed due to Failed: Did not see FBC enabled. . Exception log follows the after_iteration_hooks.


This test is normally passing on wolf - so not sure what happened this time:
https://stainless.corp.google.com/search?exclude_cts=true&exclude_non_release=true&test=%5Egraphics%5C_&model=%5Ewolf%24&view=matrix&col=build&row=test&first_date=2018-10-24&last_date=2018-10-30
> Content of /sys/kernel/debug/dri/0/i915_fbc
> FBC disabled: no outputs

Can you share the branch and exact kernel SHA1 this test was run with? git grep doesn't seem to find this no_fbc_reason.

"no outputs" sounds worse than just an FBC problem: could you also look at and/or share some more logs? The links seem Google-only.

chromeos-3.8, debugfs output

$ git grep "no outputs" drivers/gpu/
drivers/gpu/drm/i915/i915_debugfs.c:            len += snprintf(buf + len, sizeof(buf) - len, "no outputs");
drivers/gpu/drm/i915/i915_drv.h:        FBC_NO_OUTPUT, /* no outputs enabled to compress */
groeck@groeck0:~/src/linux-chrome$ git describe
v3.8.11-9811-g2eec1482429d

Set, not surprisingly, if there is no output. drivers/gpu/drm/i915/intel_pm.c, around line 480.

"no output" could mean power management turned the screen off (so obviously no FB compression happening). Is there a way you could check that?

I heard of a worse *possibility* sorry: in the past not all reasons to disable FBC logged themselves into /sys/kernel/debug/dri/0/i915_fbc
In other words you could have a sequence like this:
- screen is turned off
- "no outputs" is logged into /sys/kernel/debug/dri/0/i915_fbc
- screen is turned back on
- some other unrelated reason to disable FBC happens but doesn't log itself in /sys/kernel/debug/dri/0/i915_fbc

Still worth checking whether the screen is on.
Some git log -S archeology just in case:

v4.6-rc1~12^2~28^2~77  drm/i915/fbc: extract intel_fbc_can_activate()

-               set_no_fbc_reason(dev_priv, "no output");
+               set_no_fbc_reason(dev_priv, "CRTC not active");


v4.5-rc1~74^2~37^2~153  drm/i915: change no_fbc_reason from enum to string

-               set_no_fbc_reason(dev_priv, FBC_NO_OUTPUT);
+               set_no_fbc_reason(dev_priv, "no output");


v4.3-rc1~20^2~40^2~276  drm/i915: unify no_fbc_reason message printing

-               case FBC_NO_OUTPUT:
-                       seq_puts(m, "no outputs");
+       case FBC_NO_OUTPUT:
+               return "no output";

Sign in to add a comment