* [PATCH] Revert "tests/intel/xe_prefetch_fault: add L2 prefetch fault subtests"
@ 2026-08-19 15:36 nishit.sharma
2026-08-19 15:38 ` Gupta, Varun
2026-08-19 20:35 ` ✗ Fi.CI.BUILD: failure for " Patchwork
0 siblings, 2 replies; 3+ messages in thread
From: nishit.sharma @ 2026-08-19 15:36 UTC (permalink / raw)
To: igt-dev, varun.gupta
From: Nishit Sharma <nishit.sharma@intel.com>
This reverts commit aa452bd41aaa95d4090a34b1d6705c646778ee57.
Commited wrong patch revision. Reverting this and will merge correct
version
---
tests/intel/xe_prefetch_fault.c | 97 ---------------------------------
1 file changed, 97 deletions(-)
diff --git a/tests/intel/xe_prefetch_fault.c b/tests/intel/xe_prefetch_fault.c
index 4843f56fd..e86cd68d9 100644
--- a/tests/intel/xe_prefetch_fault.c
+++ b/tests/intel/xe_prefetch_fault.c
@@ -81,56 +81,6 @@ L0:
)", lower_32_bits(addr), upper_32_bits(addr));
}
-/**
- * gpgpu_shader__l2_prefetch_fault:
- * @shdr: shader to be modified
- * @addr: ppgtt virtual address to raise L2 prefetch fault
- *
- * This shader can only be used when in efficient 64bit mode.
- * For a given arbitrary ppgtt virtual address, it raises an L2 prefetch fault
- * using load instruction with L1 uncached + L2 cached cache policy.
- * With L1 uncached, the prefetch bypasses LSC and is sourced from L2.
- */
-static void gpgpu_shader__l2_prefetch_fault(struct gpgpu_shader *shdr,
- uint64_t addr)
-{
- igt_assert_f((addr & 0x7) == 0, "address must be aligned to QWord!\n");
-
- emit_iga64_code(shdr, xe_l2_prefetch_fault_prefetch, R"(
-#define IGA64_FLAGS ""
-#if GFX_VER >= 4000
-#elif GFX_VER >= 3500
-L0:
-// Set base address with scalar register
-(W) mov (1) s0.0<1>:ud ARG(0):ud
-(W) mov (1) s0.1<1>:ud ARG(1):ud
-
-// A64 offset
-(W) mov (8) r30.0<1>:uq 0x0:uq
-
-// efficient 64bit Read with uncached L1, cached L2 and uncached L3
-// sendg ugm load - L2 prefetch (L1 bypass)
-// Message Descriptor
-// DP_LOAD_STORE_STATELESS_DESC (HAS:2209865465)
-// DP_CACHE_LOAD (HAS:2209865465) value 4 = L1UC_L2C_L3UC
-// 0x49C00 =>
-// [45:44] Offset Scaling: 0 (disable)
-// [43:22] Global Offset: 0
-// [21] Overfetch: 0 (disable)
-// [19:16] Cache: 4 (L1 uncached, L2 cached and L3 uncached)
-// [15:14] Address Type and Size: 2 (Flat A64 Base, A64 Index)
-// [13:11] Data Size: 3 (D64)
-// [10:10] Transpose : 1 (enable)
-// [9:7] Vector Size: 0 (Vector length 1)
-// [5:0] Opcode: 0 (Load)
-// Prefetch operations are implemented using a NULL destination register.
-// L1 uncached forces the prefetch to bypass LSC, making L2 the fault source.
-(W) sendg.ugm (1|M0) null r30:1 null:0 s0.0 0x49C00 {A@1,$5}
-
-#endif
- )", lower_32_bits(addr), upper_32_bits(addr));
-}
-
static struct intel_buf *
create_buf(int fd, int width, int height, uint32_t color)
{
@@ -180,17 +130,6 @@ static struct gpgpu_shader *get_prefetch_shader(int fd)
return shader;
}
-static struct gpgpu_shader *get_l2_prefetch_shader(int fd)
-{
- struct gpgpu_shader *shader;
-
- shader = gpgpu_shader_create(fd);
- gpgpu_shader__l2_prefetch_fault(shader, xe_canonical_va(fd, PREFETCH_ADDR));
- gpgpu_shader__eot(shader);
-
- return shader;
-}
-
/**
* SUBTEST: prefetch-fault
* Description: Validate L1 prefetch fault and hit-under-miss behavior with
@@ -201,16 +140,6 @@ static struct gpgpu_shader *get_l2_prefetch_shader(int fd)
* Description: Validate L1 prefetch fault and hit-under-miss behavior in SVM
* mode with L1 cached, L2 cached cache policy (fault source: LSC)
* Run type: FULL
- *
- * SUBTEST: l2-prefetch-fault
- * Description: Validate L2 prefetch fault and hit-under-miss behavior with
- * L1 uncached, L2 cached cache policy (fault source: L2)
- * Run type: FULL
- *
- * SUBTEST: l2-prefetch-fault-svm
- * Description: Validate L2 prefetch fault and hit-under-miss behavior in SVM
- * mode with L1 uncached, L2 cached cache policy (fault source: L2)
- * Run type: FULL
*/
static void test_prefetch_fault(int fd, struct drm_xe_engine_class_instance *hwe,
bool svm, get_shader_fn get_shader)
@@ -367,32 +296,6 @@ int igt_main()
}
}
- igt_subtest_with_dynamic("l2-prefetch-fault") {
- xe_for_each_engine(fd, hwe) {
- if (hwe->engine_class == DRM_XE_ENGINE_CLASS_RENDER ||
- hwe->engine_class == DRM_XE_ENGINE_CLASS_COMPUTE) {
- igt_dynamic_f("%s%d", xe_engine_class_string(hwe->engine_class),
- hwe->engine_instance)
- test_prefetch_fault(fd, hwe, false,
- get_l2_prefetch_shader);
- }
- }
- }
-
- igt_subtest_with_dynamic("l2-prefetch-fault-svm") {
- if (!svm_supported)
- igt_skip("SVM not supported on this device, skipping.\n");
- xe_for_each_engine(fd, hwe) {
- if (hwe->engine_class == DRM_XE_ENGINE_CLASS_RENDER ||
- hwe->engine_class == DRM_XE_ENGINE_CLASS_COMPUTE) {
- igt_dynamic_f("%s%d", xe_engine_class_string(hwe->engine_class),
- hwe->engine_instance)
- test_prefetch_fault(fd, hwe, true,
- get_l2_prefetch_shader);
- }
- }
- }
-
igt_fixture() {
drm_close_driver(fd);
}
--
2.43.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] Revert "tests/intel/xe_prefetch_fault: add L2 prefetch fault subtests"
2026-08-19 15:36 [PATCH] Revert "tests/intel/xe_prefetch_fault: add L2 prefetch fault subtests" nishit.sharma
@ 2026-08-19 15:38 ` Gupta, Varun
2026-08-19 20:35 ` ✗ Fi.CI.BUILD: failure for " Patchwork
1 sibling, 0 replies; 3+ messages in thread
From: Gupta, Varun @ 2026-08-19 15:38 UTC (permalink / raw)
To: nishit.sharma, igt-dev
On 19-Aug-26 9:06 PM, nishit.sharma@intel.com wrote:
> From: Nishit Sharma <nishit.sharma@intel.com>
>
> This reverts commit aa452bd41aaa95d4090a34b1d6705c646778ee57.
> Commited wrong patch revision. Reverting this and will merge correct
> version
> ---
> tests/intel/xe_prefetch_fault.c | 97 ---------------------------------
> 1 file changed, 97 deletions(-)
>
> diff --git a/tests/intel/xe_prefetch_fault.c b/tests/intel/xe_prefetch_fault.c
> index 4843f56fd..e86cd68d9 100644
> --- a/tests/intel/xe_prefetch_fault.c
> +++ b/tests/intel/xe_prefetch_fault.c
> @@ -81,56 +81,6 @@ L0:
> )", lower_32_bits(addr), upper_32_bits(addr));
> }
>
> -/**
> - * gpgpu_shader__l2_prefetch_fault:
> - * @shdr: shader to be modified
> - * @addr: ppgtt virtual address to raise L2 prefetch fault
> - *
> - * This shader can only be used when in efficient 64bit mode.
> - * For a given arbitrary ppgtt virtual address, it raises an L2 prefetch fault
> - * using load instruction with L1 uncached + L2 cached cache policy.
> - * With L1 uncached, the prefetch bypasses LSC and is sourced from L2.
> - */
> -static void gpgpu_shader__l2_prefetch_fault(struct gpgpu_shader *shdr,
> - uint64_t addr)
> -{
> - igt_assert_f((addr & 0x7) == 0, "address must be aligned to QWord!\n");
> -
> - emit_iga64_code(shdr, xe_l2_prefetch_fault_prefetch, R"(
> -#define IGA64_FLAGS ""
> -#if GFX_VER >= 4000
> -#elif GFX_VER >= 3500
> -L0:
> -// Set base address with scalar register
> -(W) mov (1) s0.0<1>:ud ARG(0):ud
> -(W) mov (1) s0.1<1>:ud ARG(1):ud
> -
> -// A64 offset
> -(W) mov (8) r30.0<1>:uq 0x0:uq
> -
> -// efficient 64bit Read with uncached L1, cached L2 and uncached L3
> -// sendg ugm load - L2 prefetch (L1 bypass)
> -// Message Descriptor
> -// DP_LOAD_STORE_STATELESS_DESC (HAS:2209865465)
> -// DP_CACHE_LOAD (HAS:2209865465) value 4 = L1UC_L2C_L3UC
> -// 0x49C00 =>
> -// [45:44] Offset Scaling: 0 (disable)
> -// [43:22] Global Offset: 0
> -// [21] Overfetch: 0 (disable)
> -// [19:16] Cache: 4 (L1 uncached, L2 cached and L3 uncached)
> -// [15:14] Address Type and Size: 2 (Flat A64 Base, A64 Index)
> -// [13:11] Data Size: 3 (D64)
> -// [10:10] Transpose : 1 (enable)
> -// [9:7] Vector Size: 0 (Vector length 1)
> -// [5:0] Opcode: 0 (Load)
> -// Prefetch operations are implemented using a NULL destination register.
> -// L1 uncached forces the prefetch to bypass LSC, making L2 the fault source.
> -(W) sendg.ugm (1|M0) null r30:1 null:0 s0.0 0x49C00 {A@1,$5}
> -
> -#endif
> - )", lower_32_bits(addr), upper_32_bits(addr));
> -}
> -
> static struct intel_buf *
> create_buf(int fd, int width, int height, uint32_t color)
> {
> @@ -180,17 +130,6 @@ static struct gpgpu_shader *get_prefetch_shader(int fd)
> return shader;
> }
>
> -static struct gpgpu_shader *get_l2_prefetch_shader(int fd)
> -{
> - struct gpgpu_shader *shader;
> -
> - shader = gpgpu_shader_create(fd);
> - gpgpu_shader__l2_prefetch_fault(shader, xe_canonical_va(fd, PREFETCH_ADDR));
> - gpgpu_shader__eot(shader);
> -
> - return shader;
> -}
> -
> /**
> * SUBTEST: prefetch-fault
> * Description: Validate L1 prefetch fault and hit-under-miss behavior with
> @@ -201,16 +140,6 @@ static struct gpgpu_shader *get_l2_prefetch_shader(int fd)
> * Description: Validate L1 prefetch fault and hit-under-miss behavior in SVM
> * mode with L1 cached, L2 cached cache policy (fault source: LSC)
> * Run type: FULL
> - *
> - * SUBTEST: l2-prefetch-fault
> - * Description: Validate L2 prefetch fault and hit-under-miss behavior with
> - * L1 uncached, L2 cached cache policy (fault source: L2)
> - * Run type: FULL
> - *
> - * SUBTEST: l2-prefetch-fault-svm
> - * Description: Validate L2 prefetch fault and hit-under-miss behavior in SVM
> - * mode with L1 uncached, L2 cached cache policy (fault source: L2)
> - * Run type: FULL
> */
> static void test_prefetch_fault(int fd, struct drm_xe_engine_class_instance *hwe,
> bool svm, get_shader_fn get_shader)
> @@ -367,32 +296,6 @@ int igt_main()
> }
> }
>
> - igt_subtest_with_dynamic("l2-prefetch-fault") {
> - xe_for_each_engine(fd, hwe) {
> - if (hwe->engine_class == DRM_XE_ENGINE_CLASS_RENDER ||
> - hwe->engine_class == DRM_XE_ENGINE_CLASS_COMPUTE) {
> - igt_dynamic_f("%s%d", xe_engine_class_string(hwe->engine_class),
> - hwe->engine_instance)
> - test_prefetch_fault(fd, hwe, false,
> - get_l2_prefetch_shader);
> - }
> - }
> - }
> -
> - igt_subtest_with_dynamic("l2-prefetch-fault-svm") {
> - if (!svm_supported)
> - igt_skip("SVM not supported on this device, skipping.\n");
> - xe_for_each_engine(fd, hwe) {
> - if (hwe->engine_class == DRM_XE_ENGINE_CLASS_RENDER ||
> - hwe->engine_class == DRM_XE_ENGINE_CLASS_COMPUTE) {
> - igt_dynamic_f("%s%d", xe_engine_class_string(hwe->engine_class),
> - hwe->engine_instance)
> - test_prefetch_fault(fd, hwe, true,
> - get_l2_prefetch_shader);
> - }
> - }
> - }
> -
> igt_fixture() {
> drm_close_driver(fd);
> }
LGTM,
Reviewed-by: Varun Gupta <varun.gupta@intel.com>
^ permalink raw reply [flat|nested] 3+ messages in thread
* ✗ Fi.CI.BUILD: failure for Revert "tests/intel/xe_prefetch_fault: add L2 prefetch fault subtests"
2026-08-19 15:36 [PATCH] Revert "tests/intel/xe_prefetch_fault: add L2 prefetch fault subtests" nishit.sharma
2026-08-19 15:38 ` Gupta, Varun
@ 2026-08-19 20:35 ` Patchwork
1 sibling, 0 replies; 3+ messages in thread
From: Patchwork @ 2026-08-19 20:35 UTC (permalink / raw)
To: nishit.sharma; +Cc: igt-dev
== Series Details ==
Series: Revert "tests/intel/xe_prefetch_fault: add L2 prefetch fault subtests"
URL : https://patchwork.freedesktop.org/series/172465/
State : failure
== Summary ==
Applying: Revert "tests/intel/xe_prefetch_fault: add L2 prefetch fault subtests"
Using index info to reconstruct a base tree...
M tests/intel/xe_prefetch_fault.c
Falling back to patching base and 3-way merge...
Auto-merging tests/intel/xe_prefetch_fault.c
CONFLICT (content): Merge conflict in tests/intel/xe_prefetch_fault.c
Patch failed at 0001 Revert "tests/intel/xe_prefetch_fault: add L2 prefetch fault subtests"
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-08-19 20:36 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-19 15:36 [PATCH] Revert "tests/intel/xe_prefetch_fault: add L2 prefetch fault subtests" nishit.sharma
2026-08-19 15:38 ` Gupta, Varun
2026-08-19 20:35 ` ✗ Fi.CI.BUILD: failure for " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox