Re: [PULL] drm-xe-next

Daniel Vetter
2024-02-26T09:58:23Z

On Sun, Feb 25, 2024 at 09:21:00PM -0600, Lucas De Marchi wrote:
> Hi Dave and Sima,
>
> Here's the PR for drm-xe-next for Linux v6.9. It's a big list of
> changes, but it contains several fixes for things noticed throughout the
> v6.8 cycle after being merged upstream, added to the linux-next, etc.
> Approximately 30% are fixes already sent or on its way to v6.8.
>
> First, the bad part: this still shows some issues of not being properly
> integrated with our tooling, with this one being the worst:
> https://lore.kernel.org/all/20240221173645.225a979d@canb.auug.org.au/.
> Some of the committers didn't add their s-o-b while applying patches. I
> checked that all the affected patches do contain the s-o-b by the author
> and come from the same company (Intel).
>
> Also due to the same reason, some commits are missing a Link trailer to
> the mailing list discussion. Often these patches were applied with bare
> git-am or b4.
>
> All of this should be fixed by now: dim is used for applying and pushing
> patches, which has additional checks so that doesn't happen again. Still
> pending confirmation from Daniel Stone if the git server hooks are ready
> in gitlab so we properly forbid pushes without dim, like we do with the
> git.fd.o infra.
>
> Finally, we enabled again building for 32b, but on Friday we received
> bug reports that it still fails with clang. There are some fixes being
> reviewed and we should have them ready next week.
>
> Summary of the changes are below.
>
> drm-xe-next-2024-02-25:
> drm/xe feature pull for v6.9:
>
> UAPI Changes:
>
> - New query to the GuC firmware submission version. (José Roberto de Souza)
> - Remove unused persistent exec_queues (Thomas Hellström)
> - Add vram frequency sysfs attributes (Sujaritha Sundaresan, Rodrigo Vivi)
> - Add the flag XE_VM_BIND_FLAG_DUMPABLE to notify devcoredump that mapping
> should be dumped (Maarten Lankhorst)
>
> Cross-drivers Changes:
>
> - Make sure intel_wakeref_t is treated as opaque type on i915-display
> and fix its type on xe
>
> Driver Changes:
>
> - Drop pre-production workarounds (Matt Roper)
> - Drop kunit tests for unsuported platforms: PVC and pre-production DG2 (Lucas De Marchi)
> - Start pumbling SR-IOV support with memory based interrupts
> for VF (Michal Wajdeczko)
> - Allow to map BO in GGTT with PAT index corresponding to
> XE_CACHE_UC to work with memory based interrupts (Michal Wajdeczko)
> - Improve logging with GT-oriented drm_printers (Michal Wajdeczko)
> - Add GuC Doorbells Manager as prep work SR-IOV during
> VF provisioning ((Michal Wajdeczko)
> - Refactor fake device handling in kunit integration ((Michal Wajdeczko)
> - Implement additional workarounds for xe2 and MTL (Tejas Upadhyay,
> Lucas De Marchi, Shekhar Chauhan, Karthik Poosa)
> - Program a few registers according to perfomance guide spec for Xe2 (Shekhar Chauhan)
> - Add error handling for non-blocking communication with GuC (Daniele Ceraolo Spurio)
> - Fix remaining 32b build issues and enable it back (Lucas De Marchi)
> - Fix build with CONFIG_DEBUG_FS=n (Jani Nikula)
> - Fix warnings from GuC ABI headers (Matthew Brost)
> - Introduce Relay Communication for SR-IOV for VF <-> GuC <-> PF (Michal Wajdeczko)
> - Add mocs reset kunit (Ruthuvikas Ravikumar)
> - Fix spellings (Colin Ian King)
> - Disable mid-thread preemption when not properly supported by hardware (Nirmoy Das)
> - Release mmap mappings on rpm suspend (Badal Nilawar)
> - Fix BUG_ON on xe_exec by moving fence reservation to the validate stage (Matthew Auld)
> - Fix xe_exec by reserving extra fence slot for CPU bind (Matthew Brost)
> - Fix xe_exec with full long running exec queue, now returning
> -EWOULDBLOCK to userspace (Matthew Brost)
> - Fix CT irq handler when CT is disabled (Matthew Brost)
> - Fix VM_BIND_OP_UNMAP_ALL without any bound vmas (Thomas Hellström)
> - Fix missing __iomem annotations (Thomas Hellström)
> - Fix exec queue priority handling with GuC (Brian Welty)
> - Fix setting SLPC flag to GuC when it's not supported (Vinay Belgaumkar)
> - Fix C6 disabling without SLPC (Matt Roper)
> - Drop -Wstringop-overflow to fix build with GCC11 (Paul E. McKenney)
> - Circumvent bogus -Wstringop-overflow in one case (Arnd Bergmann)
> - Refactor exec_queue user extensions handling and fix USM attributes
> being applied too late (Brian Welty)
> - Use circ_buf head/tail convention (Matthew Brost)
> - Fail build if circ_buf-related defines are modified with incompatible values
> (Matthew Brost)
> - Fix several error paths (Dan Carpenter)
> - Fix CCS copy for small VRAM copy chunks (Thomas Hellström)
> - Rework driver initialization order and paths to account for driver running
> in VF mode (Michal Wajdeczko)
> - Initialize GuC earlier during probe to handle driver in VF mode (Michał Winiarski)
> - Fix migration use of MI_STORE_DATA_IMM to write PTEs (Matt Roper)
> - Fix bounds checking in __xe_bo_placement_for_flags (Brian Welty)
> - Drop display dependency on CONFIG_EXPERT (Jani Nikula)
> - Do not hand-roll kstrdup when creating snapshot (Michal Wajdeczko)
> - Stop creating one kunit module per kunit suite (Lucas De Marchi)
> - Reduce scope and constify variables (Thomas Hellström, Jani Nikula, Michal Wajdeczko)
> - Improve and document xe_guc_ct_send_recv() (Michal Wajdeczko)
> - Add proxy communication between CSME and GSC uC (Daniele Ceraolo Spurio)
> - Fix size calculation when writing pgtable (Fei Yang)
> - Make sure cfb is page size aligned in stolen memory (Vinod Govindapillai)
> - Stop printing guc log to dmesg when waiting for GuC fails (Rodrigo Vivi)
> - Use XE_CACHE_WB instead of XE_CACHE_NONE for cpu coherency on migration
> (Himal Prasad Ghimiray)
> - Fix error path in xe_vm_create (Moti Haimovski)
> - Fix warnings in doc generation (Thomas Hellström, Badal Nilawar)
> - Improve devcoredump content for mesa debugging (José Roberto de Souza)
> - Fix crash in trace_dma_fence_init() (José Roberto de Souza)
> - Improve CT state change handling (Matthew Brost)
> - Toggle USM support for Xe2 (Lucas De Marchi)
> - Reduces code duplication to emit PIPE_CONTROL (José Roberto de Souza)
> - Canonicalize addresses where needed for Xe2 and add to devcoredump
> (José Roberto de Souza)
> - Only allow 1 ufence per exec / bind IOCTL (Matthew Brost)
> - Move all display code to display/ (Jani Nikula)
> - Fix sparse warnings by correctly using annotations (Thomas Hellström)
> - Warn on job timeouts instead of using asserts (Matt Roper)
> - Prefix macros to avoid clashes with sparc (Matthew Brost)
> - Fix -Walloc-size by subclassing instead of allocating size smaller than struct (Thomas Hellström)
> - Add status check during gsc header readout (Suraj Kandpal)
> - Fix infinite loop in vm_bind_ioctl_ops_unwind() (Matthew Brost)
> - Fix fence refcounting (Matthew Brost)
> - Fix picking incorrect userptr VMA (Matthew Brost)
> - Fix USM on integrated by mapping both mem.kernel_bb_pool and usm.bb_pool (Matthew Brost)
> - Fix double initialization of display power domains (Xiaoming Wang)
> - Check expected uC versions by major.minor.patch instead of just major.minor (John Harrison)
> - Bump minimum GuC version to 70.19.2 for all platforms under force-probe
> (John Harrison)
> - Add GuC firmware loading for Lunar Lake (John Harrison)
> - Use kzalloc() instead of hand-rolled alloc + memset (Nirmoy Das)
> - Fix max page size of VMA during a REMAP (Matthew Brost)
> - Don't ignore error when pinning pages in kthread (Matthew Auld)
> - Refactor xe hwmon (Karthik Poosa)
> - Add debug logs for D3cold (Riana Tauro)
> - Remove broken TEST_VM_ASYNC_OPS_ERROR (Matthew Brost)
> - Always allow to override firmware blob with module param and improve
> log when no firmware is found (Lucas De Marchi)
> - Fix shift-out-of-bounds due to xe_vm_prepare_vma() accepting zero fences (Thomas Hellström)
> - Fix shift-out-of-bounds by distinguishing xe_pt/xe_pt_dir subclass (Thomas Hellström)
> - Fail driver bind if platform supports MSIX, but fails to allocate all of them (Dani Liberman)
> - Fix intel_fbdev thinking memory is backed by shmem (Matthew Auld)
> - Prefer drm_dbg() over dev_dbg() (Jani Nikula)
> - Avoid function cast warnings with clang-16 (Arnd Bergmann)
> - Enhance xe_bo_move trace (Priyanka Dandamudi)
> - Fix xe_vma_set_pte_size() not setting the right gpuva.flags for 4K size (Matthew Brost)
> - Add XE_VMA_PTE_64K VMA flag (Matthew Brost)
> - Return 2MB page size for compact 64k PTEs (Matthew Brost)
> - Remove usage of the deprecated ida_simple_xx() API (Christophe JAILLET)
> - Fix modpost warning on xe_mocs live kunit module (Ashutosh Dixit)
> - Drop extra newline in from sysfs files (Ashutosh Dixit)
> - Implement VM snapshot support for BO's and userptr (Maarten Lankhorst)
> - Add debug logs when skipping rebinds (Matthew Brost)
> - Fix code generation when mixing build directories (Dafna Hirschfeld)
> - Prefer struct_size over open coded arithmetic (Erick Archer)
>
> The following changes since commit 9ac4beb7578a88baa4f7e6a59eeb5be79d7b011a:
>
> Merge tag 'drm-misc-next-2024-02-15' of git://anongit.freedesktop.org/drm/drm-misc into drm-next (2024-02-16 13:16:40 +1000)
>
> are available in the Git repository at:
>
> ssh://git@gitlab.freedesktop.org/drm/xe/kernel.git tags/drm-xe-next-2024-02-25

Merged to drm-next, thanks a lot!
-Sima

>
> for you to fetch changes up to a7a3d73686f5837916ebffda77afa4343754e7dc:
>
> drm/xe: Prefer struct_size over open coded arithmetic (2024-02-22 20:58:20 -0800)
>
> ----------------------------------------------------------------
> drm/xe feature pull for v6.9:
>
> UAPI Changes:
>
> - New query to the GuC firmware submission version. (José Roberto de Souza)
> - Remove unused persistent exec_queues (Thomas Hellström)
> - Add vram frequency sysfs attributes (Sujaritha Sundaresan, Rodrigo Vivi)
> - Add the flag XE_VM_BIND_FLAG_DUMPABLE to notify devcoredump that mapping
> should be dumped (Maarten Lankhorst)
>
> Cross-drivers Changes:
>
> - Make sure intel_wakeref_t is treated as opaque type on i915-display
> and fix its type on xe
>
> Driver Changes:
>
> - Drop pre-production workarounds (Matt Roper)
> - Drop kunit tests for unsuported platforms: PVC and pre-production DG2 (Lucas De Marchi)
> - Start pumbling SR-IOV support with memory based interrupts
> for VF (Michal Wajdeczko)
> - Allow to map BO in GGTT with PAT index corresponding to
> XE_CACHE_UC to work with memory based interrupts (Michal Wajdeczko)
> - Improve logging with GT-oriented drm_printers (Michal Wajdeczko)
> - Add GuC Doorbells Manager as prep work SR-IOV during
> VF provisioning ((Michal Wajdeczko)
> - Refactor fake device handling in kunit integration ((Michal Wajdeczko)
> - Implement additional workarounds for xe2 and MTL (Tejas Upadhyay,
> Lucas De Marchi, Shekhar Chauhan, Karthik Poosa)
> - Program a few registers according to perfomance guide spec for Xe2 (Shekhar Chauhan)
> - Add error handling for non-blocking communication with GuC (Daniele Ceraolo Spurio)
> - Fix remaining 32b build issues and enable it back (Lucas De Marchi)
> - Fix build with CONFIG_DEBUG_FS=n (Jani Nikula)
> - Fix warnings from GuC ABI headers (Matthew Brost)
> - Introduce Relay Communication for SR-IOV for VF <-> GuC <-> PF (Michal Wajdeczko)
> - Add mocs reset kunit (Ruthuvikas Ravikumar)
> - Fix spellings (Colin Ian King)
> - Disable mid-thread preemption when not properly supported by hardware (Nirmoy Das)
> - Release mmap mappings on rpm suspend (Badal Nilawar)
> - Fix BUG_ON on xe_exec by moving fence reservation to the validate stage (Matthew Auld)
> - Fix xe_exec by reserving extra fence slot for CPU bind (Matthew Brost)
> - Fix xe_exec with full long running exec queue, now returning
> -EWOULDBLOCK to userspace (Matthew Brost)
> - Fix CT irq handler when CT is disabled (Matthew Brost)
> - Fix VM_BIND_OP_UNMAP_ALL without any bound vmas (Thomas Hellström)
> - Fix missing __iomem annotations (Thomas Hellström)
> - Fix exec queue priority handling with GuC (Brian Welty)
> - Fix setting SLPC flag to GuC when it's not supported (Vinay Belgaumkar)
> - Fix C6 disabling without SLPC (Matt Roper)
> - Drop -Wstringop-overflow to fix build with GCC11 (Paul E. McKenney)
> - Circumvent bogus -Wstringop-overflow in one case (Arnd Bergmann)
> - Refactor exec_queue user extensions handling and fix USM attributes
> being applied too late (Brian Welty)
> - Use circ_buf head/tail convention (Matthew Brost)
> - Fail build if circ_buf-related defines are modified with incompatible values
> (Matthew Brost)
> - Fix several error paths (Dan Carpenter)
> - Fix CCS copy for small VRAM copy chunks (Thomas Hellström)
> - Rework driver initialization order and paths to account for driver running
> in VF mode (Michal Wajdeczko)
> - Initialize GuC earlier during probe to handle driver in VF mode (Michał Winiarski)
> - Fix migration use of MI_STORE_DATA_IMM to write PTEs (Matt Roper)
> - Fix bounds checking in __xe_bo_placement_for_flags (Brian Welty)
> - Drop display dependency on CONFIG_EXPERT (Jani Nikula)
> - Do not hand-roll kstrdup when creating snapshot (Michal Wajdeczko)
> - Stop creating one kunit module per kunit suite (Lucas De Marchi)
> - Reduce scope and constify variables (Thomas Hellström, Jani Nikula, Michal Wajdeczko)
> - Improve and document xe_guc_ct_send_recv() (Michal Wajdeczko)
> - Add proxy communication between CSME and GSC uC (Daniele Ceraolo Spurio)
> - Fix size calculation when writing pgtable (Fei Yang)
> - Make sure cfb is page size aligned in stolen memory (Vinod Govindapillai)
> - Stop printing guc log to dmesg when waiting for GuC fails (Rodrigo Vivi)
> - Use XE_CACHE_WB instead of XE_CACHE_NONE for cpu coherency on migration
> (Himal Prasad Ghimiray)
> - Fix error path in xe_vm_create (Moti Haimovski)
> - Fix warnings in doc generation (Thomas Hellström, Badal Nilawar)
> - Improve devcoredump content for mesa debugging (José Roberto de Souza)
> - Fix crash in trace_dma_fence_init() (José Roberto de Souza)
> - Improve CT state change handling (Matthew Brost)
> - Toggle USM support for Xe2 (Lucas De Marchi)
> - Reduces code duplication to emit PIPE_CONTROL (José Roberto de Souza)
> - Canonicalize addresses where needed for Xe2 and add to devcoredump
> (José Roberto de Souza)
> - Only allow 1 ufence per exec / bind IOCTL (Matthew Brost)
> - Move all display code to display/ (Jani Nikula)
> - Fix sparse warnings by correctly using annotations (Thomas Hellström)
> - Warn on job timeouts instead of using asserts (Matt Roper)
> - Prefix macros to avoid clashes with sparc (Matthew Brost)
> - Fix -Walloc-size by subclassing instead of allocating size smaller than struct (Thomas Hellström)
> - Add status check during gsc header readout (Suraj Kandpal)
> - Fix infinite loop in vm_bind_ioctl_ops_unwind() (Matthew Brost)
> - Fix fence refcounting (Matthew Brost)
> - Fix picking incorrect userptr VMA (Matthew Brost)
> - Fix USM on integrated by mapping both mem.kernel_bb_pool and usm.bb_pool (Matthew Brost)
> - Fix double initialization of display power domains (Xiaoming Wang)
> - Check expected uC versions by major.minor.patch instead of just major.minor (John Harrison)
> - Bump minimum GuC version to 70.19.2 for all platforms under force-probe
> (John Harrison)
> - Add GuC firmware loading for Lunar Lake (John Harrison)
> - Use kzalloc() instead of hand-rolled alloc + memset (Nirmoy Das)
> - Fix max page size of VMA during a REMAP (Matthew Brost)
> - Don't ignore error when pinning pages in kthread (Matthew Auld)
> - Refactor xe hwmon (Karthik Poosa)
> - Add debug logs for D3cold (Riana Tauro)
> - Remove broken TEST_VM_ASYNC_OPS_ERROR (Matthew Brost)
> - Always allow to override firmware blob with module param and improve
> log when no firmware is found (Lucas De Marchi)
> - Fix shift-out-of-bounds due to xe_vm_prepare_vma() accepting zero fences (Thomas Hellström)
> - Fix shift-out-of-bounds by distinguishing xe_pt/xe_pt_dir subclass (Thomas Hellström)
> - Fail driver bind if platform supports MSIX, but fails to allocate all of them (Dani Liberman)
> - Fix intel_fbdev thinking memory is backed by shmem (Matthew Auld)
> - Prefer drm_dbg() over dev_dbg() (Jani Nikula)
> - Avoid function cast warnings with clang-16 (Arnd Bergmann)
> - Enhance xe_bo_move trace (Priyanka Dandamudi)
> - Fix xe_vma_set_pte_size() not setting the right gpuva.flags for 4K size (Matthew Brost)
> - Add XE_VMA_PTE_64K VMA flag (Matthew Brost)
> - Return 2MB page size for compact 64k PTEs (Matthew Brost)
> - Remove usage of the deprecated ida_simple_xx() API (Christophe JAILLET)
> - Fix modpost warning on xe_mocs live kunit module (Ashutosh Dixit)
> - Drop extra newline in from sysfs files (Ashutosh Dixit)
> - Implement VM snapshot support for BO's and userptr (Maarten Lankhorst)
> - Add debug logs when skipping rebinds (Matthew Brost)
> - Fix code generation when mixing build directories (Dafna Hirschfeld)
> - Prefer struct_size over open coded arithmetic (Erick Archer)
>
> ----------------------------------------------------------------
> Arnd Bergmann (2):
> drm/xe: circumvent bogus stringop-overflow warning
> drm/xe: avoid function cast warnings
>
> Ashutosh Dixit (2):
> drm/xe/xe_gt_idle: Drop redundant newline in name
> drm/xe: Fix modpost warning on xe_mocs kunit module
>
> Badal Nilawar (3):
> drm/xe/dgfx: Release mmap mappings on rpm suspend
> drm/xe/xe_debugfs: Print skip_guc_pc in xe info
> drm/hwmon: Fix abi doc warnings
>
> Brian Welty (7):
> drm/xe: Fix guc_exec_queue_set_priority
> drm/xe: Fix modifying exec_queue priority in xe_migrate_init
> drm/xe: Refactor __xe_exec_queue_create()
> drm/xe: Add exec_queue.sched_props.job_timeout_ms
> drm/xe: Finish refactoring of exec_queue_create
> drm/xe: Remove set_job_timeout_ms() from exec_queue_ops
> drm/xe: Fix bounds checking in __xe_bo_placement_for_flags()
>
> Christophe JAILLET (1):
> drm/xe/guc: Remove usage of the deprecated ida_simple_xx() API
>
> Colin Ian King (1):
> drm/xe: Fix spelling mistake "gueue" -> "queue"
>
> Dafna Hirschfeld (1):
> drm/xe: Do not include current dir for generated/xe_wa_oob.h
>
> Dan Carpenter (3):
> drm/xe/device: clean up on error in probe()
> drm/xe/selftests: Fix an error pointer dereference bug
> drm/xe: unlock on error path in xe_vm_add_compute_exec_queue()
>
> Dani Liberman (1):
> drm/xe/irq: allocate all possible msix interrupts
>
> Daniele Ceraolo Spurio (3):
> drm/xe/guc: Use FAST_REQUEST for non-blocking H2G messages
> drm/xe/gsc: Initialize GSC proxy
> drm/xe/gsc: add support for GSC proxy interrupt
>
> Erick Archer (1):
> drm/xe: Prefer struct_size over open coded arithmetic
>
> Fei Yang (2):
> drm/xe: correct the calculation of remaining size
> drm/xe: correct the assertion for number of PTEs
>
> Himal Prasad Ghimiray (1):
> drm/xe/xe2: Use XE_CACHE_WB pat index
>
> Jani Nikula (11):
> drm/i915: don't make assumptions about intel_wakeref_t type
> drm/xe: display support should not depend on EXPERT
> drm/xe: make xe_ttm_funcs const
> drm/xe: make heci_gsc_irq_chip const
> drm/xe: make hwmon_info const
> drm/xe: make gpuvm_ops const
> drm/xe: constify engine class sysfs attributes
> drm/xe: don't build debugfs files when CONFIG_DEBUG_FS=n
> drm/xe: move xe_display.[ch] under display/
> drm/xe: drop display/ subdir from include directories
> drm/xe: use drm based debugging instead of dev
>
> John Harrison (3):
> drm/xe/uc: Include patch version in expectations
> drm/xe/guc: Update to GuC firmware 70.19.2
> drm/xe/guc: Add support for LNL firmware
>
> José Roberto de Souza (14):
> drm/xe/uapi: Remove DRM_XE_VM_BIND_FLAG_ASYNC comment left over
> drm/xe: Fix definition of intel_wakeref_t
> drm/xe: Use intel_wakeref_t in intel_runtime_pm functions
> drm/xe: Remove double new lines in devcoredump
> drm/xe: Change devcoredump functions parameters to xe_sched_job
> drm/xe: Nuke xe from xe_devcoredump
> drm/xe: Print more device information in devcoredump
> drm/xe: Print registers spread in 2 u32 as u64
> drm/xe: Remove additional spaces in devcoredump HW Engines section
> drm/xe: Fix crash in trace_dma_fence_init()
> drm/xe: Use function to emit PIPE_CONTROL
> drm/xe: Add functions to convert regular address to canonical address and back
> drm/xe: Add batch buffer addresses to devcoredump
> drm/xe: Add uAPI to query GuC firmware submission version
>
> Karthik Poosa (3):
> drm/xe/guc: Enable WA 14018913170
> drm/xe/guc: Reduce a print from warn to debug
> drm/xe/hwmon: Refactor xe hwmon
>
> Lucas De Marchi (18):
> drm/xe: Fix warning on impossible condition
> drm/xe: Disable 32bits build
> drm/xe/xe2: Add workaround 16020183090
> drm/xe/kunit: Drop xe_wa tests for pre-production DG2
> drm/xe: Group normal kunit tests in a single module
> drm/xe: Use _ULL for u64 division
> drm/xe/mmio: Cast to u64 when printing
> drm/xe/display: Avoid calling readq()
> drm/xe: Fix cast on trace variable
> drm/xe: Enable 32bits build
> Merge drm/drm-next into drm-xe-next
> drm/xe: Remove PVC from xe_wa kunit tests
> drm/xe/xe2: Enable has_usm
> drm/xe: Always allow to override firmware
> drm/xe: Avoid cryptic message when there's no GuC definition
> drm/xe: Enable 32bits build
> Merge drm/drm-next into drm-xe-next
> drm/xe: Use pointers in trace events
>
> Maarten Lankhorst (6):
> drm/xe/snapshot: Remove drm_err on guc alloc failures
> drm/xe: Clear all snapshot members after deleting coredump
> drm/xe: Add uapi for dumpable bos
> drm/xe: Annotate each dumpable vma as such
> drm/xe: Add vm snapshot mutex for easily taking a vm snapshot during devcoredump
> drm/xe: Implement VM snapshot support for BO's and userptr
>
> Matt Roper (5):
> drm/xe/dg2: Drop pre-production workarounds
> drm/xe/migrate: Cap PTEs written by MI_STORE_DATA_IMM to 510
> drm/xe: Stash GMD_ID value in xe_gt
> drm/xe: Grab mem_access when disabling C6 on skip_guc_pc platforms
> drm/xe: Convert job timeouts from assert to warning
>
> Matthew Auld (4):
> drm/xe/exec: move fence reservation
> drm/xe/exec: reserve fence slot for CPU bind
> drm/xe/vm: don't ignore error when in_kthread
> drm/xe/display: fix i915_gem_object_is_shmem() wrapper
>
> Matthew Brost (25):
> drm/xe: Fix UBSAN splat in add_preempt_fences()
> drm/xe: Fix exec IOCTL long running exec queue ring full condition
> drm/xe/guc: Only take actions in CT irq handler if CTs are enabled
> drm/xe: Add build on bug to assert page fault queue works
> drm/xe: Invert page fault queue head / tail
> drm/xe: Add build on bug to assert access counter queue works
> drm/xe: Invert access counter queue head / tail
> drm/xe/guc: Add more GuC CT states
> drm/xe: Move TLB invalidation reset before HW reset
> drm/xe/guc: Flush G2H handler when turning off CTs
> drm/xe: Only allow 1 ufence per exec / bind IOCTL
> drm/xe: Make all GuC ABI shift values unsigned
> drm/xe: Use LRC prefix rather than CTX prefix in lrc desc defines
> drm/xe: Fix loop in vm_bind_ioctl_ops_unwind
> drm/xe: Drop rebind argument from xe_pt_prepare_bind
> drm/xe: Take a reference in xe_exec_queue_last_fence_get()
> drm/xe: Pick correct userptr VMA to repin on REMAP op failure
> drm/xe: Map both mem.kernel_bb_pool and usm.bb_pool
> drm/xe: Assume large page size if VMA not yet bound
> drm/xe: Remove TEST_VM_ASYNC_OPS_ERROR
> drm/xe: Remove exec queue bind.fence_*
> drm/xe: Fix xe_vma_set_pte_size
> drm/xe: Add XE_VMA_PTE_64K VMA flag
> drm/xe: Return 2MB page size for compact 64k PTEs
> drm/xe: Add debug prints for skipping rebinds
>
> Michal Wajdeczko (49):
> drm/xe: Add command MI_LOAD_REGISTER_MEM
> drm/xe: Define registers used by memory based irq processing
> drm/xe: Update LRC context layout definitions
> drm/xe: Update definition of GT_INTR_DW
> drm/xe: Define IRQ offsets used by HW engines
> drm/xe: Add XE_BO_NEEDS_UC flag to force UC mode instead WB
> drm/xe/vf: Introduce Memory Based Interrupts Handler
> drm/xe/vf: Update LRC with memory based interrupts data
> drm/xe/vf: Setup memory based interrupts in GuC
> drm/xe/vf: Add VF specific interrupt handler
> drm/xe: Add GT oriented drm_printers
> drm/xe: Report TLB timeout using GT oriented functions
> drm/xe: Introduce GuC Doorbells Manager
> drm/xe/kunit: Set SR-IOV mode of the fake device
> drm/xe/kunit: Define helper functions to allocate fake xe device
> drm/xe/kunit: Restore test->priv when done with fake xe device
> drm/xe/kunit: Use xe kunit helper in RTP test
> drm/xe/kunit: Use xe kunit helper in WA test
> drm/xe/kunit: Enable CONFIG_LOCKDEP in tests
> drm/xe/kunit: Add GuC Doorbells Manager tests
> drm/xe: Allocate dedicated workqueue for SR-IOV workers
> drm/xe: Define Virtual Function Identifier
> drm/xe: Introduce GT-oriented SR-IOV logging macros
> drm/xe/guc: Add helpers for HXG messages
> drm/xe/guc: Update few GuC CTB ABI definitions
> drm/xe/guc: Add Relay Communication ABI definitions
> drm/xe/guc: Introduce Relay Communication for SR-IOV
> drm/xe/kunit: Allow to replace xe_guc_ct_send_recv() with stub
> drm/xe/kunit: Add GuC Relay kunit tests
> drm/xe/guc: Start handling GuC Relay event messages
> drm/xe: Fix compilation without CONFIG_KUNIT
> drm/xe: Split GuC communication initialization
> drm/xe/guc: Treat non-response message after BUSY as unexpected
> drm/xe/guc: Return CTB response length
> drm/xe/guc: Use HXG definitions on HXG messages
> drm/xe: Allow to exclude part of GGTT from allocations
> drm/xe: Fix potential deadlock in __fini_dbm
> drm/xe: Use kstrdup while creating snapshot
> drm/xe: Mark internal gmdid mappings as const
> drm/xe/guc: Return CTB HXG response DATA0 if no buffer provided
> drm/xe/guc: Add kernel-doc for xe_guc_ct_send_recv()
> drm/xe/vf: Assume fixed GSM size if VF
> drm/xe/vf: Don't try to capture engine data unavailable to VF
> drm/xe/vf: Don't program MOCS if VF
> drm/xe/vf: Don't initialize stolen memory manager if VF
> drm/xe/vf: Don't check if LMEM is initialized if VF
> drm/xe/vf: Don't enable hwmon if VF
> drm/xe/vf: Don't program PAT if VF
> drm/xe/vf: Don't support MCR registers if VF
>
> Michał Winiarski (4):
> drm/xe/guc: Allocate GuC data structures in system memory for initial load
> drm/xe/huc: Realloc HuC FW in vram for post-hwconfig
> drm/xe/guc: Move GuC power control init to "post-hwconfig"
> drm/xe: Initialize GuC earlier during probe
>
> Moti Haimovski (1):
> drm/xe/vm: bugfix in xe_vm_create_ioctl
>
> Nirmoy Das (2):
> drm/xe/xe2: synchronise CS_CHICKEN1 with WMTP support
> drm/xe/query: Use kzalloc for drm_xe_query_engines
>
> Paul E. McKenney (1):
> drm/xe: Fix build bug for GCC 11
>
> Priyanka Dandamudi (1):
> drm/xe/xe_bo_move: Enhance xe_bo_move trace
>
> Riana Tauro (1):
> drm/xe/pm: add debug logs for D3cold
>
> Rodrigo Vivi (1):
> drm/xe: Do not flood dmesg with guc log
>
> Ruthuvikas Ravikumar (1):
> drm/xe: Add mocs reset kunit
>
> Shekhar Chauhan (2):
> drm/xe/xe2_lpg: Add Wa_16018610683
> drm/xe/xe2_lpg: Introduce performance guide changes
>
> Sujaritha Sundaresan (2):
> drm/xe: Add vram frequency sysfs attributes
> drm/xe: Fix typo in vram frequency sysfs documentation
>
> Suraj Kandpal (1):
> drm/xe/gsc: Add status check during gsc header readout
>
> Tejas Upadhyay (1):
> drm/xe/xelpg: Extend Wa_14019877138 for Graphics 12.70/71
>
> Thomas Hellström (15):
> drm/xe/vm: Fix an error path
> drm/xe: Use __iomem for the regs pointer
> drm/xe: Annotate xe_mem_region::mapping with __iomem
> drm/xe: Annotate multiple mmio pointers with __iomem
> drm/xe: Annotate xe_ttm_stolen_mgr::mapping with __iomem
> drm/xe/migrate: Fix CCS copy for small VRAM copy chunks
> drm/xe/dmabuf: Make xe_dmabuf_ops static
> drm/xe: Use a NULL pointer instead of 0.
> drm/xe: Document nested struct members according to guidelines
> drm/xe: Annotate mcr_[un]lock()
> drm/xe: Don't use __user error pointers
> drm/xe/vm: Subclass userptr vmas
> drm/xe/vm: Avoid reserving zero fences
> drm/xe/pt: Allow for stricter type- and range checking
> drm/xe/uapi: Remove support for persistent exec_queues
>
> Vinay Belgaumkar (1):
> drm/xe: Check skip_guc_pc before setting SLPC flag
>
> Vinod Govindapillai (1):
> drm/xe: Modify the cfb size to be page size aligned for FBC
>
> Xiaoming Wang (1):
> drm/xe/display: Fix memleak in display initialization
>
> drivers/gpu/drm/xe/.kunitconfig | 5 +
> drivers/gpu/drm/xe/Kconfig | 2 +-
> drivers/gpu/drm/xe/Makefile | 40 +-
> drivers/gpu/drm/xe/abi/gsc_proxy_commands_abi.h | 44 +
> drivers/gpu/drm/xe/abi/guc_actions_sriov_abi.h | 174 ++++
> drivers/gpu/drm/xe/abi/guc_communication_ctb_abi.h | 3 +-
> drivers/gpu/drm/xe/abi/guc_messages_abi.h | 2 +
> drivers/gpu/drm/xe/abi/guc_relay_actions_abi.h | 79 ++
> .../gpu/drm/xe/abi/guc_relay_communication_abi.h | 118 +++
> .../xe/compat-i915-headers/gem/i915_gem_object.h | 2 +-
> drivers/gpu/drm/xe/compat-i915-headers/i915_drv.h | 10 +-
> .../drm/xe/compat-i915-headers/i915_gem_stolen.h | 3 +
> drivers/gpu/drm/xe/{ => display}/xe_display.c | 6 -
> drivers/gpu/drm/xe/{ => display}/xe_display.h | 0
> drivers/gpu/drm/xe/instructions/xe_mi_commands.h | 3 +
> drivers/gpu/drm/xe/regs/xe_engine_regs.h | 6 +
> drivers/gpu/drm/xe/regs/xe_gt_regs.h | 27 +-
> drivers/gpu/drm/xe/regs/xe_lrc_layout.h | 9 +
> drivers/gpu/drm/xe/regs/xe_pcode_regs.h | 21 +
> drivers/gpu/drm/xe/tests/Makefile | 7 +-
> drivers/gpu/drm/xe/tests/xe_guc_db_mgr_test.c | 201 +++++
> drivers/gpu/drm/xe/tests/xe_guc_relay_test.c | 522 ++++++++++++
> drivers/gpu/drm/xe/tests/xe_kunit_helpers.c | 90 ++
> drivers/gpu/drm/xe/tests/xe_kunit_helpers.h | 17 +
> drivers/gpu/drm/xe/tests/xe_mocs.c | 36 +
> drivers/gpu/drm/xe/tests/xe_mocs_test.c | 2 +
> drivers/gpu/drm/xe/tests/xe_mocs_test.h | 1 +
> drivers/gpu/drm/xe/tests/xe_pci.c | 3 +
> drivers/gpu/drm/xe/tests/xe_pci_test.c | 5 -
> drivers/gpu/drm/xe/tests/xe_pci_test.h | 2 +
> drivers/gpu/drm/xe/tests/xe_rtp_test.c | 10 +-
> drivers/gpu/drm/xe/tests/xe_test_mod.c | 10 +
> drivers/gpu/drm/xe/tests/xe_wa_test.c | 16 +-
> drivers/gpu/drm/xe/xe_bo.c | 101 ++-
> drivers/gpu/drm/xe/xe_bo.h | 7 +-
> drivers/gpu/drm/xe/xe_bo_types.h | 3 +
> drivers/gpu/drm/xe/xe_debugfs.c | 1 +
> drivers/gpu/drm/xe/xe_devcoredump.c | 55 +-
> drivers/gpu/drm/xe/xe_devcoredump.h | 6 +-
> drivers/gpu/drm/xe/xe_devcoredump_types.h | 13 +-
> drivers/gpu/drm/xe/xe_device.c | 114 ++-
> drivers/gpu/drm/xe/xe_device.h | 14 +-
> drivers/gpu/drm/xe/xe_device_types.h | 174 ++--
> drivers/gpu/drm/xe/xe_drm_client.c | 12 +-
> drivers/gpu/drm/xe/xe_exec.c | 42 +-
> drivers/gpu/drm/xe/xe_exec_queue.c | 168 ++--
> drivers/gpu/drm/xe/xe_exec_queue.h | 3 +-
> drivers/gpu/drm/xe/xe_exec_queue_types.h | 59 +-
> drivers/gpu/drm/xe/xe_execlist.c | 10 -
> drivers/gpu/drm/xe/xe_ggtt.c | 81 +-
> drivers/gpu/drm/xe/xe_ggtt.h | 3 +
> drivers/gpu/drm/xe/xe_gsc.c | 71 +-
> drivers/gpu/drm/xe/xe_gsc.h | 1 +
> drivers/gpu/drm/xe/xe_gsc_proxy.c | 537 ++++++++++++
> drivers/gpu/drm/xe/xe_gsc_proxy.h | 20 +
> drivers/gpu/drm/xe/xe_gsc_submit.c | 20 +
> drivers/gpu/drm/xe/xe_gsc_submit.h | 1 +
> drivers/gpu/drm/xe/xe_gsc_types.h | 33 +
> drivers/gpu/drm/xe/xe_gt.c | 92 +-
> drivers/gpu/drm/xe/xe_gt.h | 2 +
> drivers/gpu/drm/xe/xe_gt_idle.c | 4 +-
> drivers/gpu/drm/xe/xe_gt_mcr.c | 17 +
> drivers/gpu/drm/xe/xe_gt_pagefault.c | 40 +-
> drivers/gpu/drm/xe/xe_gt_printk.h | 44 +
> drivers/gpu/drm/xe/xe_gt_sriov_printk.h | 34 +
> drivers/gpu/drm/xe/xe_gt_tlb_invalidation.c | 13 +-
> drivers/gpu/drm/xe/xe_gt_types.h | 118 +--
> drivers/gpu/drm/xe/xe_guc.c | 115 ++-
> drivers/gpu/drm/xe/xe_guc.h | 1 +
> drivers/gpu/drm/xe/xe_guc_ads.c | 2 +-
> drivers/gpu/drm/xe/xe_guc_ct.c | 255 ++++--
> drivers/gpu/drm/xe/xe_guc_ct.h | 12 +-
> drivers/gpu/drm/xe/xe_guc_ct_types.h | 22 +-
> drivers/gpu/drm/xe/xe_guc_db_mgr.c | 266 ++++++
> drivers/gpu/drm/xe/xe_guc_db_mgr.h | 22 +
> drivers/gpu/drm/xe/xe_guc_fwif.h | 1 +
> drivers/gpu/drm/xe/xe_guc_hwconfig.c | 2 +-
> drivers/gpu/drm/xe/xe_guc_hxg_helpers.h | 108 +++
> drivers/gpu/drm/xe/xe_guc_log.c | 2 +-
> drivers/gpu/drm/xe/xe_guc_pc.c | 19 +-
> drivers/gpu/drm/xe/xe_guc_pc.h | 1 -
> drivers/gpu/drm/xe/xe_guc_relay.c | 941 +++++++++++++++++++++
> drivers/gpu/drm/xe/xe_guc_relay.h | 37 +
> drivers/gpu/drm/xe/xe_guc_relay_types.h | 36 +
> drivers/gpu/drm/xe/xe_guc_submit.c | 87 +-
> drivers/gpu/drm/xe/xe_guc_submit.h | 4 +-
> drivers/gpu/drm/xe/xe_guc_submit_types.h | 18 +-
> drivers/gpu/drm/xe/xe_guc_types.h | 47 +-
> drivers/gpu/drm/xe/xe_heci_gsc.c | 2 +-
> drivers/gpu/drm/xe/xe_huc.c | 19 +
> drivers/gpu/drm/xe/xe_huc.h | 1 +
> drivers/gpu/drm/xe/xe_hw_engine.c | 144 ++--
> drivers/gpu/drm/xe/xe_hw_engine_class_sysfs.c | 38 +-
> drivers/gpu/drm/xe/xe_hw_engine_types.h | 82 +-
> drivers/gpu/drm/xe/xe_hwmon.c | 32 +-
> drivers/gpu/drm/xe/xe_irq.c | 136 ++-
> drivers/gpu/drm/xe/xe_lrc.c | 38 +
> drivers/gpu/drm/xe/xe_lrc_types.h | 6 +-
> drivers/gpu/drm/xe/xe_memirq.c | 430 ++++++++++
> drivers/gpu/drm/xe/xe_memirq.h | 26 +
> drivers/gpu/drm/xe/xe_memirq_types.h | 37 +
> drivers/gpu/drm/xe/xe_migrate.c | 53 +-
> drivers/gpu/drm/xe/xe_mmio.c | 9 +-
> drivers/gpu/drm/xe/xe_mocs.c | 27 +-
> drivers/gpu/drm/xe/xe_pat.c | 5 +
> drivers/gpu/drm/xe/xe_pci.c | 10 +-
> drivers/gpu/drm/xe/xe_pcode_api.h | 7 +
> drivers/gpu/drm/xe/xe_pm.c | 38 +-
> drivers/gpu/drm/xe/xe_pm.h | 1 +
> drivers/gpu/drm/xe/xe_pt.c | 55 +-
> drivers/gpu/drm/xe/xe_pt_walk.c | 2 +-
> drivers/gpu/drm/xe/xe_pt_walk.h | 19 +-
> drivers/gpu/drm/xe/xe_query.c | 50 +-
> drivers/gpu/drm/xe/xe_range_fence.c | 7 +-
> drivers/gpu/drm/xe/xe_reg_whitelist.c | 8 +
> drivers/gpu/drm/xe/xe_ring_ops.c | 60 +-
> drivers/gpu/drm/xe/xe_sched_job.c | 39 +-
> drivers/gpu/drm/xe/xe_sched_job.h | 5 +
> drivers/gpu/drm/xe/xe_sched_job_types.h | 11 +-
> drivers/gpu/drm/xe/xe_sriov.c | 32 +
> drivers/gpu/drm/xe/xe_sriov.h | 1 +
> drivers/gpu/drm/xe/xe_sriov_types.h | 12 +
> drivers/gpu/drm/xe/xe_sync.c | 2 -
> drivers/gpu/drm/xe/xe_tile_sysfs.c | 3 +
> drivers/gpu/drm/xe/xe_trace.h | 55 +-
> drivers/gpu/drm/xe/xe_ttm_stolen_mgr.c | 8 +-
> drivers/gpu/drm/xe/xe_tuning.c | 9 +-
> drivers/gpu/drm/xe/xe_uc.c | 33 +-
> drivers/gpu/drm/xe/xe_uc.h | 1 +
> drivers/gpu/drm/xe/xe_uc_fw.c | 60 +-
> drivers/gpu/drm/xe/xe_uc_fw_types.h | 9 +-
> drivers/gpu/drm/xe/xe_vm.c | 287 ++++++-
> drivers/gpu/drm/xe/xe_vm.h | 7 +-
> drivers/gpu/drm/xe/xe_vm_types.h | 18 +-
> drivers/gpu/drm/xe/xe_vram_freq.c | 128 +++
> drivers/gpu/drm/xe/xe_vram_freq.h | 13 +
> drivers/gpu/drm/xe/xe_wa.c | 191 +----
> drivers/gpu/drm/xe/xe_wa_oob.rules | 12 +-
> drivers/gpu/drm/xe/xe_wait_user_fence.c | 2 +-
> drivers/gpu/drm/xe/xe_wopcm_types.h | 4 +-
> include/uapi/drm/xe_drm.h | 34 +-
> 141 files changed, 6518 insertions(+), 1187 deletions(-)
> create mode 100644 drivers/gpu/drm/xe/abi/gsc_proxy_commands_abi.h
> create mode 100644 drivers/gpu/drm/xe/abi/guc_actions_sriov_abi.h
> create mode 100644 drivers/gpu/drm/xe/abi/guc_relay_actions_abi.h
> create mode 100644 drivers/gpu/drm/xe/abi/guc_relay_communication_abi.h
> rename drivers/gpu/drm/xe/{ => display}/xe_display.c (99%)
> rename drivers/gpu/drm/xe/{ => display}/xe_display.h (100%)
> create mode 100644 drivers/gpu/drm/xe/regs/xe_pcode_regs.h
> create mode 100644 drivers/gpu/drm/xe/tests/xe_guc_db_mgr_test.c
> create mode 100644 drivers/gpu/drm/xe/tests/xe_guc_relay_test.c
> create mode 100644 drivers/gpu/drm/xe/tests/xe_kunit_helpers.c
> create mode 100644 drivers/gpu/drm/xe/tests/xe_kunit_helpers.h
> create mode 100644 drivers/gpu/drm/xe/tests/xe_test_mod.c
> create mode 100644 drivers/gpu/drm/xe/xe_gsc_proxy.c
> create mode 100644 drivers/gpu/drm/xe/xe_gsc_proxy.h
> create mode 100644 drivers/gpu/drm/xe/xe_gt_sriov_printk.h
> create mode 100644 drivers/gpu/drm/xe/xe_guc_db_mgr.c
> create mode 100644 drivers/gpu/drm/xe/xe_guc_db_mgr.h
> create mode 100644 drivers/gpu/drm/xe/xe_guc_hxg_helpers.h
> create mode 100644 drivers/gpu/drm/xe/xe_guc_relay.c
> create mode 100644 drivers/gpu/drm/xe/xe_guc_relay.h
> create mode 100644 drivers/gpu/drm/xe/xe_guc_relay_types.h
> create mode 100644 drivers/gpu/drm/xe/xe_memirq.c
> create mode 100644 drivers/gpu/drm/xe/xe_memirq.h
> create mode 100644 drivers/gpu/drm/xe/xe_memirq_types.h
> create mode 100644 drivers/gpu/drm/xe/xe_vram_freq.c
> create mode 100644 drivers/gpu/drm/xe/xe_vram_freq.h

--
Daniel Vetter
Software Engineer, Intel Corporation