Hi Dave & Sima, A rather late first drm-intel-gt-next PR towards v6.8. As most significant change we have addition of the DRM fdinfo memory stats functionality. Then DG2 and MTL workaround additions and fixes and a few for older platforms as well. PMU WARN_ON splat cleanup. The rest is mostly code cleanups and fixes for odd corner cases. Best Regards, Joonas *** drm-intel-gt-next-2023-12-08: UAPI Changes: - drm/i915: Implement fdinfo memory stats printing Use the newly added drm_print_memory_stats helper to show memory utilisation of our objects in drm/driver specific fdinfo output. To collect the stats we walk the per memory regions object lists and accumulate object size into the respective drm_memory_stats categories. Cross-subsystem Changes: - Backmerge of drm-next (to bring drm-intel-next for PXP changes) Driver Changes: - Wa_18028616096 now applies to all DG2 (Matt R) - Drop Wa_22014600077 on all DG2 (Matt R) - Add new ATS-M device ID (Haridhar) - More Meteorlake (MTL) workarounds (Matt R, Dnyaneshwar, Jonathan, Gustavo, Radhakrishna) - PMU WARN_ON cleanup on driver unbind (Umesh) - Limit GGTT WC flushing workaround to pre BXT/ICL platforms - Complement implementation for Wa_16018031267 / Wa_16018063123 (Andrzej, Jonathan, Nirmoy, Chris) - Properly print internal GSC engine in trace logs (Tvrtko) - Track gt pm wakerefs (Andrzej) - Fix null deref bugs on perf code when perf is disabled (Harshit, Tvrtko) - Fix __i915_request_create memory leak on driver unbind (Andrzej) - Remove spurious unsupported HuC message on MTL (Daniele) - Read a shadowed mmio register for ggtt flush (Vinay) - Add missing new-line to GT_TRACE (Andrzej) - Add drm_dbgs for critical PXP events (Alan) - Skip pxp init if gt is wedged (Zhanjun) - Replace custom intel runtime_pm tracker with ref_tracker library (Andrzej) - Compiler warning/static checker/coding style cleanups (Arnd, Nirmoy, Soumya, Gilbert, Dorcas, Kunwu, Sam, Tvrtko) - Code structure and helper cleanups (Jani, Tvrtko, Andi) - Selftest improvements (John, Tvrtko, Andrzej) The following changes since commit 11ae5eb516b656e8a0e4efbea90ea24c152a346d: Merge tag 'topic/vmemdup-user-array-2023-10-24-1' of git://anongit.freedesktop.org/drm/drm into drm-next (2023-10-24 11:13:29 +1000) are available in the Git repository at: git://anongit.freedesktop.org/drm/drm-intel tags/drm-intel-gt-next-2023-12-08 for you to fetch changes up to be5bcc4be9d9d3ae294072441a66fe39b74e5bba: drm/i915/guc: Create the guc_to_i915() wrapper (2023-12-08 12:31:01 +0100) ---------------------------------------------------------------- UAPI Changes: - drm/i915: Implement fdinfo memory stats printing Use the newly added drm_print_memory_stats helper to show memory utilisation of our objects in drm/driver specific fdinfo output. To collect the stats we walk the per memory regions object lists and accumulate object size into the respective drm_memory_stats categories. Cross-subsystem Changes: - Backmerge of drm-next (to bring drm-intel-next for PXP changes) Driver Changes: - Wa_18028616096 now applies to all DG2 (Matt R) - Drop Wa_22014600077 on all DG2 (Matt R) - Add new ATS-M device ID (Haridhar) - More Meteorlake (MTL) workarounds (Matt R, Dnyaneshwar, Jonathan, Gustavo, Radhakrishna) - PMU WARN_ON cleanup on driver unbind (Umesh) - Limit GGTT WC flushing workaround to pre BXT/ICL platforms - Complement implementation for Wa_16018031267 / Wa_16018063123 (Andrzej, Jonathan, Nirmoy, Chris) - Properly print internal GSC engine in trace logs (Tvrtko) - Track gt pm wakerefs (Andrzej) - Fix null deref bugs on perf code when perf is disabled (Harshit, Tvrtko) - Fix __i915_request_create memory leak on driver unbind (Andrzej) - Remove spurious unsupported HuC message on MTL (Daniele) - Read a shadowed mmio register for ggtt flush (Vinay) - Add missing new-line to GT_TRACE (Andrzej) - Add drm_dbgs for critical PXP events (Alan) - Skip pxp init if gt is wedged (Zhanjun) - Replace custom intel runtime_pm tracker with ref_tracker library (Andrzej) - Compiler warning/static checker/coding style cleanups (Arnd, Nirmoy, Soumya, Gilbert, Dorcas, Kunwu, Sam, Tvrtko) - Code structure and helper cleanups (Jani, Tvrtko, Andi) - Selftest improvements (John, Tvrtko, Andrzej) ---------------------------------------------------------------- Alan Previn (1): drm/i915/pxp: Add drm_dbgs for critical PXP events. Andi Shyti (1): drm/i915/guc: Create the guc_to_i915() wrapper Andrzej Hajda (8): drm/i915: Reserve some kernel space per vm drm/i915: Add WABB blit for Wa_16018031267 / Wa_16018063123 drm/i915/gt: add selftest to exercise WABB drm/i915/gt: add missing new-line to GT_TRACE drm/i915: do not clean GT table on error path drm/i915: Replace custom intel runtime_pm tracker with ref_tracker library drm/i915: Track gt pm wakerefs drm/i915/selftests: wait for active idle event in i915_active_unlock_wait Arnd Bergmann (1): drm/i915/mtl: avoid stringop-overflow warning Daniele Ceraolo Spurio (1): drm/i915/huc: Stop printing about unsupported HuC on MTL Dnyaneshwar Bhadane (2): drm/i915/mtl: Add Wa_22016670082 drm/i915/mtl: Add Wa_14019821291 Dorcas AnonoLitunya (1): drm/i915/gt: Remove prohibited space after opening parenthesis Gilbert Adikankwu (1): drm/i915/gt: Remove unncessary {} from if-else Gustavo Sousa (1): drm/i915/xelpmp: Add Wa_16021867713 Haridhar Kalvala (1): drm/i915: ATS-M device ID update Harshit Mogalapalli (1): i915/perf: Fix NULL deref bugs with drm_dbg() calls Jani Nikula (6): drm/i915/pmu: add pmu_to_i915() helper drm/i915/pmu: add event_to_pmu() helper drm/i915/pmu: rearrange hrtimer pointer chasing drm/i915: make some error capture functions static drm/i915: move gpu error debugfs to i915_gpu_error.c drm/i915: move gpu error sysfs to i915_gpu_error.c John Harrison (2): drm/i915/guc: Fix for potential false positives in GuC hang selftest drm/i915/guc: Add a selftest for FAST_REQUEST errors Jonathan Cavitt (2): drm/i915: Set copy engine arbitration for Wa_16018031267 / Wa_16018063123 drm/i915/gt: Temporarily disable CPU caching into DMA for MTL Kunwu Chan (1): drm/i915: Fix potential spectre vulnerability Matt Roper (3): drm/i915/mcr: Hold GT forcewake during steering operations drm/i915/dg2: Wa_18028616096 now applies to all DG2 drm/i915/dg2: Drop Wa_22014600077 Nirmoy Das (2): drm/i915/gt: Use proper priority enum instead of 0 drm/i915: Flush WC GGTT only on required platforms Radhakrishna Sripada (1): drm/i915/mtl: Update Wa_22018931422 Sam James (1): drm: i915: Adapt to -Walloc-size Soumya Negi (1): drm/i915/gt: Remove {} from if-else Tvrtko Ursulin (12): Merge drm/drm-next into drm-intel-gt-next drm/i915: Add ability for tracking buffer objects per client drm/i915: Record which client owns a VM drm/i915: Track page table backing store usage drm/i915: Account ring buffer and context state storage drm/i915: Add stable memory region names drm/i915: Implement fdinfo memory stats printing drm/i915: Remove return type from i915_drm_client_remove_object drm/i915: Add __rcu annotation to cursor when iterating client objects drm/i915/gsc: Mark internal GSC engine with reserved uabi class drm/i915/selftests: Fix engine reset count storage for multi-tile drm/i915: Use internal class when counting engine resets Umesh Nerlige Ramappa (1): drm/i915/pmu: Check if pmu is closed before stopping event Vinay Belgaumkar (1): drm/i915: Read a shadowed mmio register for ggtt flush Zhanjun Dong (1): drm/i915: Skip pxp init if gt is wedged drivers/gpu/drm/i915/Kconfig.debug | 18 ++ drivers/gpu/drm/i915/display/intel_display_power.c | 2 +- drivers/gpu/drm/i915/gem/i915_gem_context.c | 12 +- drivers/gpu/drm/i915/gem/i915_gem_context_types.h | 3 + drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 16 +- drivers/gpu/drm/i915/gem/i915_gem_object.c | 13 +- drivers/gpu/drm/i915/gem/i915_gem_object_types.h | 12 ++ drivers/gpu/drm/i915/gem/i915_gem_stolen.c | 21 ++ .../drm/i915/gem/selftests/i915_gem_coherency.c | 10 +- drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c | 14 +- drivers/gpu/drm/i915/gem/selftests/mock_context.c | 4 +- drivers/gpu/drm/i915/gt/gen8_ppgtt.c | 43 ++++ drivers/gpu/drm/i915/gt/intel_breadcrumbs.c | 13 +- drivers/gpu/drm/i915/gt/intel_breadcrumbs_types.h | 3 +- drivers/gpu/drm/i915/gt/intel_context.c | 14 ++ drivers/gpu/drm/i915/gt/intel_context.h | 4 +- drivers/gpu/drm/i915/gt/intel_context_types.h | 2 + drivers/gpu/drm/i915/gt/intel_engine_cs.c | 2 +- drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c | 2 +- drivers/gpu/drm/i915/gt/intel_engine_pm.c | 7 +- drivers/gpu/drm/i915/gt/intel_engine_regs.h | 8 + drivers/gpu/drm/i915/gt/intel_engine_types.h | 2 + drivers/gpu/drm/i915/gt/intel_engine_user.c | 39 ++-- .../gpu/drm/i915/gt/intel_execlists_submission.c | 2 +- drivers/gpu/drm/i915/gt/intel_ggtt.c | 58 ++++-- drivers/gpu/drm/i915/gt/intel_gt.c | 13 +- drivers/gpu/drm/i915/gt/intel_gt.h | 9 + drivers/gpu/drm/i915/gt/intel_gt_mcr.c | 23 ++- drivers/gpu/drm/i915/gt/intel_gt_pm.c | 14 +- drivers/gpu/drm/i915/gt/intel_gt_pm.h | 38 +++- drivers/gpu/drm/i915/gt/intel_gt_pm_debugfs.c | 4 +- drivers/gpu/drm/i915/gt/intel_gt_regs.h | 3 + drivers/gpu/drm/i915/gt/intel_gtt.c | 26 +++ drivers/gpu/drm/i915/gt/intel_gtt.h | 5 + drivers/gpu/drm/i915/gt/intel_lrc.c | 100 +++++++++- drivers/gpu/drm/i915/gt/intel_rc6.c | 16 +- drivers/gpu/drm/i915/gt/intel_reset.c | 2 +- drivers/gpu/drm/i915/gt/intel_sseu.c | 7 +- drivers/gpu/drm/i915/gt/intel_workarounds.c | 38 ++-- drivers/gpu/drm/i915/gt/selftest_engine_cs.c | 20 +- .../gpu/drm/i915/gt/selftest_engine_heartbeat.c | 2 +- drivers/gpu/drm/i915/gt/selftest_gt_pm.c | 5 +- drivers/gpu/drm/i915/gt/selftest_lrc.c | 65 ++++-- drivers/gpu/drm/i915/gt/selftest_reset.c | 10 +- drivers/gpu/drm/i915/gt/selftest_rps.c | 17 +- drivers/gpu/drm/i915/gt/selftest_slpc.c | 5 +- drivers/gpu/drm/i915/gt/uc/intel_gsc_proxy.c | 2 + drivers/gpu/drm/i915/gt/uc/intel_guc.c | 2 +- drivers/gpu/drm/i915/gt/uc/intel_guc.h | 4 + drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c | 2 +- drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c | 11 +- drivers/gpu/drm/i915/gt/uc/intel_guc_log.c | 10 +- drivers/gpu/drm/i915/gt/uc/intel_guc_rc.c | 2 +- drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c | 2 +- drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c | 23 ++- drivers/gpu/drm/i915/gt/uc/intel_uc.c | 5 - drivers/gpu/drm/i915/gt/uc/selftest_guc.c | 115 +++++++++++ .../gpu/drm/i915/gt/uc/selftest_guc_hangcheck.c | 2 +- drivers/gpu/drm/i915/i915_debugfs.c | 108 +--------- drivers/gpu/drm/i915/i915_driver.c | 10 +- drivers/gpu/drm/i915/i915_drm_client.c | 108 ++++++++++ drivers/gpu/drm/i915/i915_drm_client.h | 42 ++++ drivers/gpu/drm/i915/i915_gpu_error.c | 194 +++++++++++++++++- drivers/gpu/drm/i915/i915_gpu_error.h | 44 ++-- drivers/gpu/drm/i915/i915_perf.c | 15 +- drivers/gpu/drm/i915/i915_pmu.c | 86 ++++---- drivers/gpu/drm/i915/i915_sysfs.c | 79 +------- drivers/gpu/drm/i915/intel_memory_region.c | 19 ++ drivers/gpu/drm/i915/intel_memory_region.h | 1 + drivers/gpu/drm/i915/intel_runtime_pm.c | 221 ++------------------- drivers/gpu/drm/i915/intel_runtime_pm.h | 11 +- drivers/gpu/drm/i915/intel_wakeref.c | 35 +++- drivers/gpu/drm/i915/intel_wakeref.h | 73 ++++++- drivers/gpu/drm/i915/pxp/intel_pxp.c | 18 +- drivers/gpu/drm/i915/pxp/intel_pxp_irq.c | 5 +- drivers/gpu/drm/i915/pxp/intel_pxp_session.c | 6 +- drivers/gpu/drm/i915/pxp/intel_pxp_types.h | 1 + drivers/gpu/drm/i915/selftests/igt_live_test.c | 9 +- drivers/gpu/drm/i915/selftests/igt_live_test.h | 3 +- include/drm/i915_pciids.h | 3 +- 80 files changed, 1322 insertions(+), 695 deletions(-)