1. 10 Jan, 2024 2 commits
    • Brian Welty's avatar
      drm/xe: Refactor __xe_exec_queue_create() · 6e144a7d
      Brian Welty authored
      Split __xe_exec_queue_create() into two functions, alloc and init.
      
      We have an issue in that exec_queue_user_extensions are applied too late.
      In the case of USM properties, these need to be set prior to xe_lrc_init().
      Refactor the logic here, so we can resolve this in follow-on. We only need
      the xe_vm_lock held during the exec_queue_init function.
      Signed-off-by: default avatarBrian Welty <brian.welty@intel.com>
      Signed-off-by: default avatarMatthew Brost <matthew.brost@intel.com>
      Reviewed-by: default avatarMatthew Brost <matthew.brost@intel.com>
      6e144a7d
    • Paul E. McKenney's avatar
      drm/xe: Fix build bug for GCC 11 · a109d199
      Paul E. McKenney authored
      Building drivers/gpu/drm/xe/xe_gt_pagefault.c with GCC 11 results
      in the following build errors:
      
      ./include/linux/fortify-string.h:57:33: error: writing 16 bytes into a region of size 0 [-Werror=stringop-overflow=]
         57 | #define __underlying_memcpy     __builtin_memcpy
            |                                 ^
      ./include/linux/fortify-string.h:644:9: note: in expansion of macro ‘__underlying_memcpy’
        644 |         __underlying_##op(p, q, __fortify_size);                        \
            |         ^~~~~~~~~~~~~
      ./include/linux/fortify-string.h:689:26: note: in expansion of macro ‘__fortify_memcpy_chk’
        689 | #define memcpy(p, q, s)  __fortify_memcpy_chk(p, q, s,                  \
            |                          ^~~~~~~~~~~~~~~~~~~~
      drivers/gpu/drm/xe/xe_gt_pagefault.c:340:17: note: in expansion of macro ‘memcpy’
        340 |                 memcpy(pf_queue->data + pf_queue->tail, msg, len * sizeof(u32));
            |                 ^~~~~~
      In file included from drivers/gpu/drm/xe/xe_device_types.h:17,
                       from drivers/gpu/drm/xe/xe_vm_types.h:16,
                       from drivers/gpu/drm/xe/xe_bo.h:13,
                       from drivers/gpu/drm/xe/xe_gt_pagefault.c:16:
      drivers/gpu/drm/xe/xe_gt_types.h:102:25: note: at offset [1144, 265324] into destination object ‘tile’ of size 8
        102 |         struct xe_tile *tile;
            |                         ^~~~
      
      Fix these by removing -Wstringop-overflow from drm/xe builds.
      
      Closes: https://lore.kernel.org/all/45ad1d0f-a10f-483e-848a-76a30252edbe@paulmck-laptop/
      Fixes: 7a8bc117 ("drm/xe: Enable W=1 warnings by default")
      Suggested-by: default avatarStephen Rothwell <sfr@rothwell.id.au>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      [ This particular warning is broken on GCC11. In future changes it will
        be moved to the normal C flags in the top level Makefile (out of
        Makefile.extrawarn), but accounting for the compiler support. Just
        remove it out of xe's forced extra warnings for now ]
      Signed-off-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
      a109d199
  2. 09 Jan, 2024 14 commits
  3. 08 Jan, 2024 4 commits
  4. 05 Jan, 2024 15 commits
  5. 27 Dec, 2023 1 commit
  6. 26 Dec, 2023 1 commit
  7. 22 Dec, 2023 1 commit
  8. 21 Dec, 2023 2 commits
    • Daniele Ceraolo Spurio's avatar
      drm/xe/guc: Use FAST_REQUEST for non-blocking H2G messages · 0eb16fd2
      Daniele Ceraolo Spurio authored
      We're currently sending non-blocking H2G messages using the EVENT type,
      which suppresses all CTB protocol replies from the GuC, including the
      failure cases. This might cause errors to slip through and manifest as
      unexpected behavior (e.g. a context state might not be what the driver
      thinks it is because the state change command was silently rejected by
      the GuC). To avoid this kind of problems, we can use the FAST_REQUEST
      type instead, which suppresses the reply only on success; this way we
      still get the advantage of not having to wait for an ack from the GuC
      (i.e. the H2G is still non-blocking) while still detecting errors.
      Since we can't escalate to the caller when a non-blocking message
      fails, we need to escalate to GT reset instead.
      
      Note that FAST_REQUEST failures are NOT expected and are usually a sign
      that the H2G was either malformed or requested an illegal operation.
      
      v2: assign fence values to FAST_REQUEST messages, fix abi doc, use xe_gt
      printers (Michal).
      
      v3: fix doc alignment, fix and improve prints (Michal)
      Signed-off-by: default avatarDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      Cc: John Harrison <John.C.Harrison@Intel.com>
      Cc: Matthew Brost <matthew.brost@intel.com>
      Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
      Reviewed-by: Matthew Brost <matthew.brost@intel.com> #v2
      Reviewed-by: default avatarMichal Wajdeczko <michal.wajdeczko@intel.com>
      0eb16fd2
    • Tejas Upadhyay's avatar
      drm/xe/xelpg: Extend Wa_14019877138 for Graphics 12.70/71 · c5be725e
      Tejas Upadhyay authored
      Wa_14019877138 is also needed for xe_lpg graphics 12.70/71
      Reviewed-by: default avatarMatt Roper <matthew.d.roper@intel.com>
      Signed-off-by: default avatarTejas Upadhyay <tejas.upadhyay@intel.com>
      c5be725e