mirror of
				https://github.com/tiagovignatti/intel-gpu-tools.git
				synced 2025-11-04 12:07:12 +00:00 
			
		
		
		
	tests: Drop the superfluous igt_require_hang_ring()
As the hang injection now itself checks for validity before use, the tests don't need to do so themselves. Except in certain situations! If the test forks, it should do requirement checks before the fork (so that we don't anger the igt gods) and if the test plays around i915.reset then it needs to do an early igt_require_hang_ring() that is not affected by the changes to i915.reset. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
		
							parent
							
								
									a2eb63720b
								
							
						
					
					
						commit
						92caf138f2
					
				@ -652,11 +652,6 @@ static struct igt_hang_ring rcs_hang(void)
 | 
				
			|||||||
	return igt_hang_ring(fd, I915_EXEC_RENDER);
 | 
						return igt_hang_ring(fd, I915_EXEC_RENDER);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void hang_require(void)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	igt_require_hang_ring(fd, -1);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static void check_gpu(void)
 | 
					static void check_gpu(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	unsigned missed_irq = 0;
 | 
						unsigned missed_irq = 0;
 | 
				
			||||||
@ -1145,10 +1140,6 @@ static void rcs_require(void)
 | 
				
			|||||||
	igt_require(rendercopy);
 | 
						igt_require(rendercopy);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void no_require(void)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static void
 | 
					static void
 | 
				
			||||||
run_basic_modes(const char *prefix,
 | 
					run_basic_modes(const char *prefix,
 | 
				
			||||||
		const struct access_mode *mode,
 | 
							const struct access_mode *mode,
 | 
				
			||||||
@ -1170,11 +1161,10 @@ run_basic_modes(const char *prefix,
 | 
				
			|||||||
	const struct {
 | 
						const struct {
 | 
				
			||||||
		const char *suffix;
 | 
							const char *suffix;
 | 
				
			||||||
		do_hang hang;
 | 
							do_hang hang;
 | 
				
			||||||
		void (*require)(void);
 | 
					 | 
				
			||||||
	} hangs[] = {
 | 
						} hangs[] = {
 | 
				
			||||||
		{ "", no_hang, no_require },
 | 
							{ "", no_hang },
 | 
				
			||||||
		{ "-hang-blt", bcs_hang, hang_require },
 | 
							{ "-hang-blt", bcs_hang },
 | 
				
			||||||
		{ "-hang-render", rcs_hang, hang_require },
 | 
							{ "-hang-render", rcs_hang },
 | 
				
			||||||
		{ NULL, NULL },
 | 
							{ NULL, NULL },
 | 
				
			||||||
	}, *h;
 | 
						}, *h;
 | 
				
			||||||
	struct buffers buffers;
 | 
						struct buffers buffers;
 | 
				
			||||||
@ -1189,7 +1179,6 @@ run_basic_modes(const char *prefix,
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			igt_subtest_f("%s-%s-%s-sanitycheck0%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
								igt_subtest_f("%s-%s-%s-sanitycheck0%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
				
			||||||
				h->require();
 | 
					 | 
				
			||||||
				p->require();
 | 
									p->require();
 | 
				
			||||||
				buffers_create(&buffers, num_buffers);
 | 
									buffers_create(&buffers, num_buffers);
 | 
				
			||||||
				run_wrap_func(&buffers, do_basic0,
 | 
									run_wrap_func(&buffers, do_basic0,
 | 
				
			||||||
@ -1197,7 +1186,6 @@ run_basic_modes(const char *prefix,
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			igt_subtest_f("%s-%s-%s-sanitycheck1%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
								igt_subtest_f("%s-%s-%s-sanitycheck1%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
				
			||||||
				h->require();
 | 
					 | 
				
			||||||
				p->require();
 | 
									p->require();
 | 
				
			||||||
				buffers_create(&buffers, num_buffers);
 | 
									buffers_create(&buffers, num_buffers);
 | 
				
			||||||
				run_wrap_func(&buffers, do_basic1,
 | 
									run_wrap_func(&buffers, do_basic1,
 | 
				
			||||||
@ -1205,7 +1193,6 @@ run_basic_modes(const char *prefix,
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			igt_subtest_f("%s-%s-%s-sanitycheckN%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
								igt_subtest_f("%s-%s-%s-sanitycheckN%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
				
			||||||
				h->require();
 | 
					 | 
				
			||||||
				p->require();
 | 
									p->require();
 | 
				
			||||||
				buffers_create(&buffers, num_buffers);
 | 
									buffers_create(&buffers, num_buffers);
 | 
				
			||||||
				run_wrap_func(&buffers, do_basicN,
 | 
									run_wrap_func(&buffers, do_basicN,
 | 
				
			||||||
@ -1214,7 +1201,6 @@ run_basic_modes(const char *prefix,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
			/* try to overwrite the source values */
 | 
								/* try to overwrite the source values */
 | 
				
			||||||
			igt_subtest_f("%s-%s-%s-overwrite-source-one%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
								igt_subtest_f("%s-%s-%s-overwrite-source-one%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
				
			||||||
				h->require();
 | 
					 | 
				
			||||||
				p->require();
 | 
									p->require();
 | 
				
			||||||
				buffers_create(&buffers, num_buffers);
 | 
									buffers_create(&buffers, num_buffers);
 | 
				
			||||||
				run_wrap_func(&buffers,
 | 
									run_wrap_func(&buffers,
 | 
				
			||||||
@ -1223,7 +1209,6 @@ run_basic_modes(const char *prefix,
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			igt_subtest_f("%s-%s-%s-overwrite-source%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
								igt_subtest_f("%s-%s-%s-overwrite-source%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
				
			||||||
				h->require();
 | 
					 | 
				
			||||||
				p->require();
 | 
									p->require();
 | 
				
			||||||
				buffers_create(&buffers, num_buffers);
 | 
									buffers_create(&buffers, num_buffers);
 | 
				
			||||||
				run_wrap_func(&buffers,
 | 
									run_wrap_func(&buffers,
 | 
				
			||||||
@ -1232,7 +1217,6 @@ run_basic_modes(const char *prefix,
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			igt_subtest_f("%s-%s-%s-overwrite-source-read-bcs%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
								igt_subtest_f("%s-%s-%s-overwrite-source-read-bcs%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
				
			||||||
				h->require();
 | 
					 | 
				
			||||||
				p->require();
 | 
									p->require();
 | 
				
			||||||
				buffers_create(&buffers, num_buffers);
 | 
									buffers_create(&buffers, num_buffers);
 | 
				
			||||||
				run_wrap_func(&buffers,
 | 
									run_wrap_func(&buffers,
 | 
				
			||||||
@ -1241,7 +1225,6 @@ run_basic_modes(const char *prefix,
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			igt_subtest_f("%s-%s-%s-overwrite-source-read-rcs%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
								igt_subtest_f("%s-%s-%s-overwrite-source-read-rcs%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
				
			||||||
				h->require();
 | 
					 | 
				
			||||||
				p->require();
 | 
									p->require();
 | 
				
			||||||
				igt_require(rendercopy);
 | 
									igt_require(rendercopy);
 | 
				
			||||||
				buffers_create(&buffers, num_buffers);
 | 
									buffers_create(&buffers, num_buffers);
 | 
				
			||||||
@ -1251,7 +1234,6 @@ run_basic_modes(const char *prefix,
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			igt_subtest_f("%s-%s-%s-overwrite-source-rev%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
								igt_subtest_f("%s-%s-%s-overwrite-source-rev%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
				
			||||||
				h->require();
 | 
					 | 
				
			||||||
				p->require();
 | 
									p->require();
 | 
				
			||||||
				buffers_create(&buffers, num_buffers);
 | 
									buffers_create(&buffers, num_buffers);
 | 
				
			||||||
				run_wrap_func(&buffers,
 | 
									run_wrap_func(&buffers,
 | 
				
			||||||
@ -1261,7 +1243,6 @@ run_basic_modes(const char *prefix,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
			/* try to intermix copies with GPU copies*/
 | 
								/* try to intermix copies with GPU copies*/
 | 
				
			||||||
			igt_subtest_f("%s-%s-%s-intermix-rcs%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
								igt_subtest_f("%s-%s-%s-intermix-rcs%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
				
			||||||
				h->require();
 | 
					 | 
				
			||||||
				p->require();
 | 
									p->require();
 | 
				
			||||||
				igt_require(rendercopy);
 | 
									igt_require(rendercopy);
 | 
				
			||||||
				buffers_create(&buffers, num_buffers);
 | 
									buffers_create(&buffers, num_buffers);
 | 
				
			||||||
@ -1270,7 +1251,6 @@ run_basic_modes(const char *prefix,
 | 
				
			|||||||
					      p->copy, h->hang);
 | 
										      p->copy, h->hang);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			igt_subtest_f("%s-%s-%s-intermix-bcs%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
								igt_subtest_f("%s-%s-%s-intermix-bcs%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
				
			||||||
				h->require();
 | 
					 | 
				
			||||||
				p->require();
 | 
									p->require();
 | 
				
			||||||
				igt_require(rendercopy);
 | 
									igt_require(rendercopy);
 | 
				
			||||||
				buffers_create(&buffers, num_buffers);
 | 
									buffers_create(&buffers, num_buffers);
 | 
				
			||||||
@ -1279,7 +1259,6 @@ run_basic_modes(const char *prefix,
 | 
				
			|||||||
					      p->copy, h->hang);
 | 
										      p->copy, h->hang);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			igt_subtest_f("%s-%s-%s-intermix-both%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
								igt_subtest_f("%s-%s-%s-intermix-both%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
				
			||||||
				h->require();
 | 
					 | 
				
			||||||
				p->require();
 | 
									p->require();
 | 
				
			||||||
				igt_require(rendercopy);
 | 
									igt_require(rendercopy);
 | 
				
			||||||
				buffers_create(&buffers, num_buffers);
 | 
									buffers_create(&buffers, num_buffers);
 | 
				
			||||||
@ -1290,7 +1269,6 @@ run_basic_modes(const char *prefix,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
			/* try to read the results before the copy completes */
 | 
								/* try to read the results before the copy completes */
 | 
				
			||||||
			igt_subtest_f("%s-%s-%s-early-read%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
								igt_subtest_f("%s-%s-%s-early-read%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
				
			||||||
				h->require();
 | 
					 | 
				
			||||||
				p->require();
 | 
									p->require();
 | 
				
			||||||
				buffers_create(&buffers, num_buffers);
 | 
									buffers_create(&buffers, num_buffers);
 | 
				
			||||||
				run_wrap_func(&buffers,
 | 
									run_wrap_func(&buffers,
 | 
				
			||||||
@ -1300,7 +1278,6 @@ run_basic_modes(const char *prefix,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
			/* concurrent reads */
 | 
								/* concurrent reads */
 | 
				
			||||||
			igt_subtest_f("%s-%s-%s-read-read-bcs%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
								igt_subtest_f("%s-%s-%s-read-read-bcs%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
				
			||||||
				h->require();
 | 
					 | 
				
			||||||
				p->require();
 | 
									p->require();
 | 
				
			||||||
				buffers_create(&buffers, num_buffers);
 | 
									buffers_create(&buffers, num_buffers);
 | 
				
			||||||
				run_wrap_func(&buffers,
 | 
									run_wrap_func(&buffers,
 | 
				
			||||||
@ -1308,7 +1285,6 @@ run_basic_modes(const char *prefix,
 | 
				
			|||||||
					      p->copy, h->hang);
 | 
										      p->copy, h->hang);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			igt_subtest_f("%s-%s-%s-read-read-rcs%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
								igt_subtest_f("%s-%s-%s-read-read-rcs%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
				
			||||||
				h->require();
 | 
					 | 
				
			||||||
				p->require();
 | 
									p->require();
 | 
				
			||||||
				igt_require(rendercopy);
 | 
									igt_require(rendercopy);
 | 
				
			||||||
				buffers_create(&buffers, num_buffers);
 | 
									buffers_create(&buffers, num_buffers);
 | 
				
			||||||
@ -1319,7 +1295,6 @@ run_basic_modes(const char *prefix,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
			/* split copying between rings */
 | 
								/* split copying between rings */
 | 
				
			||||||
			igt_subtest_f("%s-%s-%s-write-read-bcs%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
								igt_subtest_f("%s-%s-%s-write-read-bcs%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
				
			||||||
				h->require();
 | 
					 | 
				
			||||||
				p->require();
 | 
									p->require();
 | 
				
			||||||
				buffers_create(&buffers, num_buffers);
 | 
									buffers_create(&buffers, num_buffers);
 | 
				
			||||||
				run_wrap_func(&buffers,
 | 
									run_wrap_func(&buffers,
 | 
				
			||||||
@ -1327,7 +1302,6 @@ run_basic_modes(const char *prefix,
 | 
				
			|||||||
					      p->copy, h->hang);
 | 
										      p->copy, h->hang);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			igt_subtest_f("%s-%s-%s-write-read-rcs%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
								igt_subtest_f("%s-%s-%s-write-read-rcs%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
				
			||||||
				h->require();
 | 
					 | 
				
			||||||
				p->require();
 | 
									p->require();
 | 
				
			||||||
				igt_require(rendercopy);
 | 
									igt_require(rendercopy);
 | 
				
			||||||
				buffers_create(&buffers, num_buffers);
 | 
									buffers_create(&buffers, num_buffers);
 | 
				
			||||||
@ -1338,7 +1312,6 @@ run_basic_modes(const char *prefix,
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
			/* and finally try to trick the kernel into loosing the pending write */
 | 
								/* and finally try to trick the kernel into loosing the pending write */
 | 
				
			||||||
			igt_subtest_f("%s-%s-%s-gpu-read-after-write%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
								igt_subtest_f("%s-%s-%s-gpu-read-after-write%s%s", prefix, mode->name, p->prefix, suffix, h->suffix) {
 | 
				
			||||||
				h->require();
 | 
					 | 
				
			||||||
				p->require();
 | 
									p->require();
 | 
				
			||||||
				buffers_create(&buffers, num_buffers);
 | 
									buffers_create(&buffers, num_buffers);
 | 
				
			||||||
				run_wrap_func(&buffers,
 | 
									run_wrap_func(&buffers,
 | 
				
			||||||
 | 
				
			|||||||
@ -188,7 +188,7 @@ igt_main
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	igt_fixture {
 | 
						igt_fixture {
 | 
				
			||||||
		fd = drm_open_driver(DRIVER_INTEL);
 | 
							fd = drm_open_driver(DRIVER_INTEL);
 | 
				
			||||||
		igt_require_hang_ring(fd, -1);
 | 
							igt_require_hang_ring(fd, I915_EXEC_DEFAULT);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	igt_subtest("throttle")
 | 
						igt_subtest("throttle")
 | 
				
			||||||
 | 
				
			|||||||
@ -233,10 +233,8 @@ igt_main
 | 
				
			|||||||
			do_test(fd, t->cache, src, start, dst, 100, no_hang);
 | 
								do_test(fd, t->cache, src, start, dst, 100, no_hang);
 | 
				
			||||||
		igt_stop_signal_helper();
 | 
							igt_stop_signal_helper();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		igt_subtest_f("%s-hang", t->name) {
 | 
							igt_subtest_f("%s-hang", t->name)
 | 
				
			||||||
			igt_require_hang_ring(fd, -1);
 | 
					 | 
				
			||||||
			do_test(fd, t->cache, src, start, dst, 1, bcs_hang);
 | 
								do_test(fd, t->cache, src, start, dst, 1, bcs_hang);
 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	igt_fixture {
 | 
						igt_fixture {
 | 
				
			||||||
 | 
				
			|||||||
@ -318,18 +318,14 @@ igt_main
 | 
				
			|||||||
	igt_subtest("interruptible")
 | 
						igt_subtest("interruptible")
 | 
				
			||||||
		do_test(fd, false, no_hang);
 | 
							do_test(fd, false, no_hang);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	igt_subtest("interruptible-hang") {
 | 
						igt_subtest("interruptible-hang")
 | 
				
			||||||
		igt_require_hang_ring(fd, I915_EXEC_BLT);
 | 
					 | 
				
			||||||
		do_test(fd, false, bcs_hang);
 | 
							do_test(fd, false, bcs_hang);
 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	igt_subtest("faulting-reloc-interruptible")
 | 
						igt_subtest("faulting-reloc-interruptible")
 | 
				
			||||||
		do_test(fd, true, no_hang);
 | 
							do_test(fd, true, no_hang);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	igt_subtest("faulting-reloc-interruptible-hang") {
 | 
						igt_subtest("faulting-reloc-interruptible-hang")
 | 
				
			||||||
		igt_require_hang_ring(fd, I915_EXEC_BLT);
 | 
					 | 
				
			||||||
		do_test(fd, true, bcs_hang);
 | 
							do_test(fd, true, bcs_hang);
 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	igt_stop_signal_helper();
 | 
						igt_stop_signal_helper();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for (unsigned flags = 0; flags <= ALL_FLAGS; flags++) {
 | 
						for (unsigned flags = 0; flags <= ALL_FLAGS; flags++) {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user