~ubuntu-kernel-test/ubuntu/+source/linux/+git/mirror-drm-intel:drm-intel-gt-next

Last commit made on 2023-11-20
Get this branch:
git clone -b drm-intel-gt-next https://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mirror-drm-intel
Members of Ubuntu Kernel Test can upload to this branch. Log in for directions.

Branch merges

Branch information

Recent commits

5e4e06e... by Andrzej Hajda <email address hidden>

drm/i915: Track gt pm wakerefs

Track every intel_gt_pm_get() until its corresponding release in
intel_gt_pm_put() by returning a cookie to the caller for acquire that
must be passed by on released. When there is an imbalance, we can see who
either tried to free a stale wakeref, or who forgot to free theirs.

v2: track recently added calls in gen8_ggtt_bind_get_ce and
    destroyed_worker_func

Signed-off-by: Andrzej Hajda <email address hidden>
Reviewed-by: Andi Shyti <email address hidden>
Link: https://patchwork.freedesktop<email address hidden>

b49e894... by Andrzej Hajda <email address hidden>

drm/i915: Replace custom intel runtime_pm tracker with ref_tracker library

Beside reusing existing code, the main advantage of ref_tracker is
tracking per instance of wakeref. It allows also to catch double
put.
On the other side we lose information about the first acquire and
the last release, but the advantages outweigh it.

Signed-off-by: Andrzej Hajda <email address hidden>
Reviewed-by: Andi Shyti <email address hidden>
Link: https://patchwork.freedesktop<email address hidden>

dfed6b5... by Tvrtko Ursulin <email address hidden>

drm/i915/gsc: Mark internal GSC engine with reserved uabi class

The GSC CS is not exposed to the user, so we skipped assigning a uabi
class number for it. However, the trace logs use the uabi class and
instance to identify the engine, so leaving uabi class unset makes the
GSC CS show up as the RCS in those logs.

Given that the engine is not exposed to the user, we can't add a new
case in the uabi enum, so we insted internally define a kernel
internal class as -1.

At the same time remove special handling for the name and complete
the uabi_classes array so internal class is automatically correctly
assigned.

Engine will show as 65535:0 other0 in the logs/traces which should
be unique enough.

v2:
 * Fix uabi class u8 vs u16 type confusion.

Signed-off-by: Tvrtko Ursulin <email address hidden>
Fixes: 194babe26bdc ("drm/i915/mtl: don't expose GSC command streamer to the user")
Cc: Daniele Ceraolo Spurio <email address hidden>
Cc: Alan Previn <email address hidden>
Cc: Matt Roper <email address hidden>
Reviewed-by: Daniele Ceraolo Spurio <email address hidden>
Link: https://patchwork.freedesktop<email address hidden>

e31b380... by Tvrtko Ursulin <email address hidden>

drm/i915: Add __rcu annotation to cursor when iterating client objects

__rcu annotation is needed to avoid the sparse warnings such as:

  .../i915_drm_client.c:92:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
  .../i915_drm_client.c:92:9: sparse: struct list_head [noderef] __rcu *
  .../i915_drm_client.c:92:9: sparse: struct list_head *

Signed-off-by: Tvrtko Ursulin <email address hidden>
Fixes: 968853033d8a ("drm/i915: Implement fdinfo memory stats printing")
Reported-by: kernel test robot <email address hidden>
Closes: https://<email address hidden>/
Cc: Andi Shyti <email address hidden>
Cc: Aravind Iddamsetty <email address hidden>
Reviewed-by: Jani Nikula <email address hidden>
Reviewed-by: Andi Shyti <email address hidden>
Link: https://patchwork.freedesktop<email address hidden>

44eea8d... by Tvrtko Ursulin <email address hidden>

drm/i915: Remove return type from i915_drm_client_remove_object

There is no need to return anything in the version which was merged and
also the implementation of the !CONFIG_PROC_FS wasn't returning anything,
causing a build failure there.

Signed-off-by: Tvrtko Ursulin <email address hidden>
Fixes: e4ae85e364fc ("drm/i915: Add ability for tracking buffer objects per client")
Cc: Aravind Iddamsetty <email address hidden>
Reported-by: kernel test robot <email address hidden>
Closes: https://<email address hidden>/
Reviewed-by: Jani Nikula <email address hidden>
Reviewed-by: Andi Shyti <email address hidden>
Link: https://patchwork.freedesktop<email address hidden>

3c7a5eb... by Radhakrishna Sripada <email address hidden>

drm/i915/mtl: Update Wa_22018931422

Commit 78cc55e0b64c ("drm/i915/mcr: Hold GT forcewake during steering
operations") introduced the workaround which was in early stages. With a
valid lineage number update Workaround for future tracking.

Cc: Matt Roper <email address hidden>
Signed-off-by: Radhakrishna Sripada <email address hidden>
Reviewed-by: Matt Roper <email address hidden>
Signed-off-by: Matt Roper <email address hidden>
Link: https://patchwork.freedesktop<email address hidden>

89a410b... by Matt Roper <email address hidden>

drm/i915/dg2: Wa_18028616096 now applies to all DG2

The workaround database was just updated to extend this workaround to
DG2-G11 (whereas previously it applied only to G10 and G12).

Signed-off-by: Matt Roper <email address hidden>
Reviewed-by: Gustavo Sousa <email address hidden>
Link: https://patchwork.freedesktop<email address hidden>

d3715a6... by Daniele Ceraolo Spurio <email address hidden>

drm/i915/huc: Stop printing about unsupported HuC on MTL

On MTL, the HuC is only supported on the media GT, so our validation
check on the module parameter detects an inconsistency on the root GT
(the modparams asks to enable HuC, but the support is not there) and
prints the following info message:

[drm] GT0: Incompatible option enable_guc=3 - HuC is not supported!

This can be confusing to the user and make them think that something is
wrong when it isn't, so we need to silence it.
Given that any platform that supports HuC also supports GuC, if a user
tries to enable HuC on a platform that really doesn't support it they'll
already see a message about GuC not being supported, so instead of just
silencing the HuC message on newer platforms we can just get rid of it
entirely.

Signed-off-by: Daniele Ceraolo Spurio <email address hidden>
Cc: John Harrison <email address hidden>
Reviewed-by: John Harrison <email address hidden>
Link: https://patchwork.freedesktop<email address hidden>

e899505... by Andrzej Hajda <email address hidden>

drm/i915: do not clean GT table on error path

The only task of intel_gt_release_all is to zero gt table. Calling
it on error path prevents intel_gt_driver_late_release_all (called from
i915_driver_late_release) to cleanup GTs, causing leakage.
After i915_driver_late_release GT array is not used anymore so
it does not need cleaning at all.

Sample leak report:

BUG i915_request (...): Objects remaining in i915_request on __kmem_cache_shutdown()
...
Object 0xffff888113420040 @offset=64
Allocated in __i915_request_create+0x75/0x610 [i915] age=18339 cpu=1 pid=1454
 kmem_cache_alloc+0x25b/0x270
 __i915_request_create+0x75/0x610 [i915]
 i915_request_create+0x109/0x290 [i915]
 __engines_record_defaults+0xca/0x440 [i915]
 intel_gt_init+0x275/0x430 [i915]
 i915_gem_init+0x135/0x2c0 [i915]
 i915_driver_probe+0x8d1/0xdc0 [i915]

v2: removed whole intel_gt_release_all

Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/8489
Fixes: bec68cc9ea42 ("drm/i915: Prepare for multiple GTs")
Signed-off-by: Andrzej Hajda <email address hidden>
Reviewed-by: Tvrtko Ursulin <email address hidden>
Reviewed-by: Nirmoy Das <email address hidden>
Reviewed-by: Andi Shyti <email address hidden>
Link: https://patchwork.freedesktop.org/patch<email address hidden>

57bdac8... by Andrzej Hajda <email address hidden>

drm/i915/gt: add missing new-line to GT_TRACE

Trace requires new-line at the end of message (in opposition to printk),
otherwise trace dump becomes messy.

Signed-off-by: Andrzej Hajda <email address hidden>
Acked-by: Janusz Krzysztofik <email address hidden>
Reviewed-by: Nirmoy Das <email address hidden>
Reviewed-by: Andi Shyti <email address hidden>
Link: https://patchwork<email address hidden>