Re: ✗ Fi.CI.BAT: failure for series starting with [1/2] drm/i915/guc: Don't enable GuC when vGPU is active

Michal Wajdeczko
2018-01-16T10:17:43Z

On Tue, 16 Jan 2018 10:53:47 +0100, Joonas Lahtinen
<joonas.lahtinen@linux.intel.com> wrote:

> On Mon, 2018-01-15 at 13:10 +0200, Tomi Sarvela wrote:
>> On 15/01/18 12:28, Zhenyu Wang wrote:
>> > On 2018.01.15 12:07:28 +0200, Joonas Lahtinen wrote:
>> > > On Fri, 2018-01-12 at 14:08 +0800, Du, Changbin wrote:
>> > > > On Fri, Jan 12, 2018 at 11:32:30AM +0530, Sagar Arun Kamble wrote:
>> > > > > Is skl-gvtdvm not having vGPU active?
>> > > > >
>> > > > > It has flag X86_FEATURE_HYPERVISOR set however it might be set
>> on host too
>> > > > > so relying intel_vgpu_active().
>> > > > >
>> > > >
>> > > > Do you mean flag X86_FEATURE_HYPERVISOR is set on host, too? This
>> is weird since this
>> > > > flag indicates the OS is running on a hypervisor.
>> > >
>> > > + CI folks and Zhenyu
>> > >
>> > > Somehow, magically, the virtual machine seems to starts skipping all
>> > > tests when GuC is disabled?
>> > >
>> > > Has somebody actually validated that the tests results are valid for
>> > > the virtual machine? Or is this a one-off CI quirk?
>> >
>> > Are these tests really run in VM with GVT-g enabled on host?
>>
>> These tests are ran on VM running on GVT-d (as name implies), not GVT-g.
>
> I don't still understand how explicitly disabling GuC could make all
> the tests skip on a machine that didn't use GuC to begin with. There
> must be something wrong in the initialization code.
>
> That intel_vgpu_active() check by my logic should not trigger in GVT-d
> (because we don't have virtual GPU, we have the real deal, just without
> stolen etc.), so I'm bit baffled.

True. This intel_vgpu_active() check added by Sagar is not active in these
scenarios so we keep turn on GuC on that platform (as default from auto)

- param(int, enable_guc, 0) \
+ param(int, enable_guc, -1) \

[drm:intel_uc_sanitize_options [i915]] enable_guc=3 (submission:yes
huc:yes)

but since i915_memcpy_from_wc() check still fails due to running under
hypervisor (introduced by "drm/i915: Do not enable movntdqa optimization
in hypervisor guest"), initialization of the GuC log fails

WARN_ON(!i915_memcpy_from_wc(((void *)0), ((void *)0), 0))
WARNING: CPU: 0 PID: 228 at drivers/gpu/drm/i915/intel_guc_log.c:527
intel_guc_log_create

and that is treated as driver load error (as we no longer support silent
fallback from GuC to execlist, if GuC was selected using auto(-1) or
explicit
load(1) modparam option.

On the other mail thread there was proposal to make GuC log optional in
case of running under hypervisor and disable it, but in my opinion it is
not a solution but just short term fix, as we want to keep GuC log enabled
since it works as is with other hypervisors.

Michal

>
> Regards, Joonas
>
>>
>> Tomi
>>
>> > > PS. I'd do the check as early return condition at the top, like vGPU
>> > > feature disabling elsewhere. It's not much point calculating the
>> > > details (calling into functions like intel_uc_fw_is_selected) and
>> then
>> > > throwing results out afterwards :)
>> > >
>> >
>> > yeah, better, and we do plan to support vGuC from ICL for vGPU.
>> >
>> > > >
>> > > > >
>> > > > > On 1/11/2018 10:27 PM, Patchwork wrote:
>> > > > > > == Series Details ==
>> > > > > >
>> > > > > > Series: series starting with [1/2] drm/i915/guc: Don't enable
>> GuC when vGPU is active
>> > > > > > URL : https://patchwork.freedesktop.org/series/36343/
>> > > > > > State : failure
>> > > > > >
>> > > > > > == Summary ==
>> > > > > >
>> > > > > > Series 36343v1 series starting with [1/2] drm/i915/guc: Don't
>> enable GuC when vGPU is active
>> > > > > >
>> https://patchwork.freedesktop.org/api/1.0/series/36343/revisions/1/mbox/
>> > > > > >
>> > > > > > Test core_auth:
>> > > > > > Subgroup basic-auth:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Test core_prop_blob:
>> > > > > > Subgroup basic:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Test debugfs_test:
>> > > > > > Subgroup read_all_entries:
>> > > > > > dmesg-warn -> DMESG-FAIL (fi-elk-e7500)
>> fdo#103989
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Test drv_getparams_basic:
>> > > > > > Subgroup basic-eu-total:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Subgroup basic-subslice-total:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Test drv_hangman:
>> > > > > > Subgroup error-state-basic:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Test gem_basic:
>> > > > > > Subgroup bad-close:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Subgroup create-close:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Subgroup create-fd-close:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Test gem_busy:
>> > > > > > Subgroup basic-busy-default:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Subgroup basic-hang-default:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> fdo#104108 +2
>> > > > > > Test gem_close_race:
>> > > > > > Subgroup basic-process:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Subgroup basic-threads:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Test gem_cpu_reloc:
>> > > > > > Subgroup basic:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Test gem_cs_tlb:
>> > > > > > Subgroup basic-default:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Test gem_ctx_create:
>> > > > > > Subgroup basic:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Subgroup basic-files:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Test gem_ctx_exec:
>> > > > > > Subgroup basic:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Test gem_ctx_param:
>> > > > > > Subgroup basic:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Subgroup basic-default:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Test gem_ctx_switch:
>> > > > > > Subgroup basic-default:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Subgroup basic-default-heavy:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Test gem_exec_basic:
>> > > > > > Subgroup basic-blt:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Subgroup basic-bsd:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Subgroup basic-bsd1:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Subgroup basic-bsd2:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Subgroup basic-default:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Subgroup basic-render:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Subgroup basic-vebox:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Subgroup gtt-blt:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Subgroup gtt-bsd:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Subgroup gtt-bsd1:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Subgroup gtt-bsd2:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Subgroup gtt-default:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Subgroup gtt-render:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Subgroup gtt-vebox:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Subgroup readonly-blt:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Subgroup readonly-bsd:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Subgroup readonly-bsd1:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Subgroup readonly-bsd2:
>> > > > > > pass -> SKIP (fi-skl-gvtdvm)
>> > > > > > Subgroup readonly-default:
>> > > > > > WARNING: Long output truncated
>> > > > > >
>> > > > > > da4321c7c088d01ad62b18d37dcfe5ef8d0b855d drm-tip:
>> 2018y-01m-11d-14h-59m-37s UTC integration manifest
>> > > > > > a0e8e84432b0 HAX: drm/i915/uc: Enable GuC/HuC for CI
>> > > > > > 973357da236a drm/i915/guc: Don't enable GuC when vGPU is
>> active
>> > > > > >
>> > > > > > == Logs ==
>> > > > > >
>> > > > > > For more details see:
>> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7651/issues.html
>> > > >
>> > > >
>> > >
>> > > --
>> > > Joonas Lahtinen
>> > > Open Source Technology Center
>> > > Intel Corporation
>>
>>
>> Tomi