RE: [PATCH i-g-t 1/2] tests/intel/xe_prefetch_fault: refactor test to accept shader function pointer

"Dandamudi, Priyanka" <[email protected]>
Newsgroups org.freedesktop.lists.igt-dev
Message-ID <CH3PR11MB843432058246939149A593818DA62@CH3PR11MB8434.namprd11.prod.outlook.com>

> -----Original Message-----
> From: igt-dev <[email protected]> On Behalf Of
> Dandamudi, Priyanka
> Sent: 18 August 2026 11:42 AM
> To: Gupta, Varun <[email protected]>; [email protected]
> Subject: RE: [PATCH i-g-t 1/2] tests/intel/xe_prefetch_fault: refactor test to
> accept shader function pointer
> 
> 
> 
> > -----Original Message-----
> > From: Gupta, Varun <[email protected]>
> > Sent: 18 August 2026 10:57 AM
> > To: [email protected]
> > Cc: Dandamudi, Priyanka <[email protected]>
> > Subject: [PATCH i-g-t 1/2] tests/intel/xe_prefetch_fault: refactor
> > test to accept shader function pointer
> >
> > Parameterize test_prefetch_fault() to accept a shader getter function
> > pointer instead of hardcoding get_prefetch_shader(). This enables
> > reuse of the same test logic with different shader configurations
> > (e.g., L2 prefetch fault shaders) without duplicating the test function.
> >
> > No functional change for existing subtests.
> >
> > Signed-off-by: Varun Gupta <[email protected]>
> > ---
> >  tests/intel/xe_prefetch_fault.c | 23 +++++++++++++++--------
> >  1 file changed, 15 insertions(+), 8 deletions(-)
> >
> > diff --git a/tests/intel/xe_prefetch_fault.c
> > b/tests/intel/xe_prefetch_fault.c index d3b5aff47..e86cd68d9 100644
> > --- a/tests/intel/xe_prefetch_fault.c
> > +++ b/tests/intel/xe_prefetch_fault.c
> > @@ -117,9 +117,11 @@ static struct intel_bb
> > *xe_bb_create_on_offset(int fd, uint32_t exec_queue, uint
> >  	return ibb;
> >  }
> >
> > +typedef struct gpgpu_shader *(*get_shader_fn)(int fd);
> > +
> >  static struct gpgpu_shader *get_prefetch_shader(int fd)  {
> > -	static struct gpgpu_shader *shader;
> > +	struct gpgpu_shader *shader;
> >
> >  	shader = gpgpu_shader_create(fd);
> >  	gpgpu_shader__prefetch_fault(shader, xe_canonical_va(fd,
> > PREFETCH_ADDR)); @@ -130,14 +132,17 @@ static struct gpgpu_shader
> > *get_prefetch_shader(int fd)
> >
> >  /**
> >   * SUBTEST: prefetch-fault
> > - * Description: Validate prefetch fault and hit-under-miss behavior
> > + * Description: Validate L1 prefetch fault and hit-under-miss behavior with
> > + *		L1 cached, L2 cached cache policy (fault source: LSC)
> >   * Run type: FULL
> >   *
> >   * SUBTEST: prefetch-fault-svm
> > - * Description: Validate prefetch fault and hit-under-miss behavior
> > in SVM mode
> > + * 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
> >   */
> > -static void test_prefetch_fault(int fd, struct
> > drm_xe_engine_class_instance *hwe, bool svm)
> > +static void test_prefetch_fault(int fd, struct
> > +drm_xe_engine_class_instance
> > *hwe,
> > +				bool svm, get_shader_fn get_shader)
> >  {
> >  	uint64_t bb_offset = BB_OFFSET;
> >  	/*
> > @@ -191,7 +196,7 @@ static void test_prefetch_fault(int fd, struct
> > drm_xe_engine_class_instance *hwe
> >  	ibb = xe_bb_create_on_offset(fd, exec_queue_id, vm, bb_offset,
> > bb_size);
> >  	intel_bb_set_lr_mode(ibb, true);
> >
> > -	shader = get_prefetch_shader(fd);
> > +	shader = get_shader(fd);
> >  	gpgpu_shader_exec(ibb, buf, w_dim.x, w_dim.y, shader, NULL, 0, 0);
> >  	gpgpu_shader_destroy(shader);
> >  	intel_bb_sync(ibb);
> > @@ -225,7 +230,7 @@ static void test_prefetch_fault(int fd, struct
> > drm_xe_engine_class_instance *hwe
> >  	ibb = xe_bb_create_on_offset(fd, exec_queue_id, vm, bb_offset2,
> > bb_size);
> >  	intel_bb_set_lr_mode(ibb, true);
> >
> > -	shader = get_prefetch_shader(fd);
> > +	shader = get_shader(fd);
> >  	gpgpu_shader_exec(ibb, buf, w_dim.x, w_dim.y, shader, NULL, 0, 0);
> >  	gpgpu_shader_destroy(shader);
> >  	intel_bb_sync(ibb);
> > @@ -271,7 +276,8 @@ int igt_main()
> >  			    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);
> > +					test_prefetch_fault(fd, hwe, false,
> > +
> > get_prefetch_shader);
> >  			}
> >  		}
> >  	}
> > @@ -284,7 +290,8 @@ int igt_main()
> >  			    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);
> > +					test_prefetch_fault(fd, hwe, true,
> > +
> > get_prefetch_shader);
> >  			}
> LGTM,
> Reviewed-by: Priyanka Dandamudi <[email protected]>
> >  		}
Build failed, can you check once.
> >  	}
> > --
> > 2.43.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.