✗ CI.checkpatch: warning for series starting with [1/3] drm/xe: Introduced needs_scratch bit in device descriptor

Patchwork patchwork at emeril.freedesktop.org
Thu Feb 6 02:13:07 UTC 2025


== Series Details ==

Series: series starting with [1/3] drm/xe: Introduced needs_scratch bit in device descriptor
URL   : https://patchwork.freedesktop.org/series/144389/
State : warning

== Summary ==

+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
30ab6715fc09baee6cc14cb3c89ad8858688d474
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit ed6c7d77d736cea5098fcbf9d2ada54e8a9728f0
Author: Oak Zeng <oak.zeng at intel.com>
Date:   Wed Feb 5 21:11:26 2025 -0500

    drm/xe: Allow scratch page under fault mode for certain platform
    
    Normally scratch page is not allowed when a vm is operate under page
    fault mode, i.e., in the existing codes, DRM_XE_VM_CREATE_FLAG_SCRATCH_PAGE
    and DRM_XE_VM_CREATE_FLAG_FAULT_MODE are mutual exclusive. The reason
    is fault mode relies on recoverable page to work, while scratch page
    can mute recoverable page fault.
    
    On xe2 and xe3, out of bound prefetch can cause page fault and further
    system hang because xekmd can't resolve such page fault. SYCL and OCL
    language runtime requires out of bound prefetch to be silently dropped
    without causing any functional problem, thus the existing behavior
    doesn't meet language runtime requirement.
    
    At the same time, HW prefetching can cause page fault interrupt. Due to
    page fault interrupt overhead (i.e., need Guc and KMD involved to fix
    the page fault), HW prefetching can be slowed by many orders of magnitude.
    
    Fix those problems by allowing scratch page under fault mode for xe2 and
    xe3. With scratch page in place, HW prefetching could always hit scratch
    page instead of causing interrupt.
    
    A side effect is, scratch page could hide application program error.
    Application out of bound accesses are hided by scratch page mapping,
    instead of get reported to user.
    
    igt test: https://patchwork.freedesktop.org/series/144334/. Test result on
    BMG:
    
    root at DUT1130BMGFRD:/home/szeng/dii-tools/igt-public/build/tests# ./xe_exec_fault_mode --run-subtest scratch-fault
    IGT-Version: 1.30-gde1a3cb42 (x86_64) (Linux: 6.13.0-xe x86_64)
    Using IGT_SRANDOM=1738684805 for randomisation
    Opened device: /dev/dri/card0
    Starting subtest: scratch-fault
    Subtest scratch-fault: SUCCESS (0.080s)
    
    Without this series, the test result is:
    
    root at DUT1130BMGFRD:/home/szeng/dii-tools/igt-public/build/tests# ./xe_exec_fault_mode --run-subtest scratch-fault
    IGT-Version: 1.30-gde1a3cb42 (x86_64) (Linux: 6.13.0-xe x86_64)
    Using IGT_SRANDOM=1738686046 for randomisation
    Opened device: /dev/dri/card0
    Starting subtest: scratch-fault
    (xe_exec_fault_mode:5047) CRITICAL: Test assertion failure function test_exec, file ../tests/intel/xe_exec_fault_mode.c:349:
    (xe_exec_fault_mode:5047) CRITICAL: Failed assertion: __xe_wait_ufence(fd, &exec_sync[i], 0xdeadbeefdeadbeefull, exec_queues[i % n_exec_queues], &timeout) == 0
    (xe_exec_fault_mode:5047) CRITICAL: Last errno: 62, Timer expired
    (xe_exec_fault_mode:5047) CRITICAL: error: -62 != 0
    Stack trace:
      #0 ../lib/igt_core.c:2266 __igt_fail_assert()
      #1 ../tests/intel/xe_exec_fault_mode.c:346 test_exec()
      #2 ../tests/intel/xe_exec_fault_mode.c:537 __igt_unique____real_main407()
      #3 ../tests/intel/xe_exec_fault_mode.c:407 main()
      #4 ../sysdeps/nptl/libc_start_call_main.h:74 __libc_start_call_main()
      #5 ../csu/libc-start.c:128 __libc_start_main@@GLIBC_2.34()
      #6 [_start+0x2e]
    Subtest scratch-fault failed.
    
    v2: Refine commit message (Thomas)
    
    Signed-off-by: Oak Zeng <oak.zeng at intel.com>
+ /mt/dim checkpatch 7a632b6798b6a05b63725249e3209afea13ea499 drm-intel
b3a41e67f3cf drm/xe: Introduced needs_scratch bit in device descriptor
a039726e286b drm/xe: Clear scratch page on vm_bind
ed6c7d77d736 drm/xe: Allow scratch page under fault mode for certain platform
-:34: WARNING:COMMIT_LOG_LONG_LINE: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
#34: 
root at DUT1130BMGFRD:/home/szeng/dii-tools/igt-public/build/tests# ./xe_exec_fault_mode --run-subtest scratch-fault

total: 0 errors, 1 warnings, 0 checks, 21 lines checked




More information about the Intel-xe mailing list