[PATCH] drm/xe: Set LRC addresses before guc load
Lucas De Marchi
lucas.demarchi at intel.com
Thu Apr 10 16:01:41 UTC 2025
On Wed, Apr 09, 2025 at 10:36:10PM -0700, Matthew Brost wrote:
>On Wed, Apr 09, 2025 at 09:59:34PM -0700, Lucas De Marchi wrote:
>> The metadata saved in the ADS is read by GuC when it's initialized.
>> Saving the addresses to the LRCs when they are populated is too late as
>> GuC will keep using the old ones.
>>
>> This was causing GuC to use the RCS LRC for any engine class. It's not a
>> big problem on a Linux-only scenario since the they are used by GuC only
>> on media engines when the watchdog is triggered. However, in a
>> virtualization scenario with Windows as the VF, it causes the wrong LRCs
>> to be loaded as the watchdog is used for all engines.
>>
>> Fix it by letting guc_golden_lrc_init() initialize the metadata, like
>> other *_init() functions, and later guc_golden_lrc_populate() to copy
>> the LRCs to the right places. The former is called before the second GuC
>> load, while the latter is called after LRCs have been recorded.
>>
>> Cc: Chee Yin Wong <chee.yin.wong at intel.com>
>> Cc: John Harrison <john.c.harrison at intel.com>
>> Cc: Matt Roper <matthew.d.roper at intel.com>
>> Cc: Matthew Brost <matthew.brost at intel.com>
>
>Fixes tag? Anyways patch LGTM.
>
>Reviewed-by: Matthew Brost <matthew.brost at intel.com>
Fixes: dd08ebf6c352 ("drm/xe: Introduce a new DRM driver for Intel GPUs")
Cc: <stable at vger.kernel.org> # v6.11+
Before 6.11 shouldn't be relevant since we didn't have any supported
platform, let alone SR-IOV working where this reproduces.
thanks
Lucas De Marchi
More information about the Intel-xe
mailing list