[Intel-gfx] [PATCH i-g-t 2/5] tests/kms_mmap_write_crc: Use the right fork helpers

Daniel Vetter daniel.vetter at ffwll.ch
Thu Feb 18 12:39:26 UTC 2016


For a background task the fork helpers are more appropriate, since we
can explicitly cancel children. Also, anything that does real work is
supposed to be in fixtures.

Cc: Tiago Vignatti <tiago.vignatti at intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>

--
Tiago, can you pls check that I haven't broken anythig?

Thanks, Daniel
---
 tests/kms_mmap_write_crc.c | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/tests/kms_mmap_write_crc.c b/tests/kms_mmap_write_crc.c
index 6984bbd1f000..2e9a282d4293 100644
--- a/tests/kms_mmap_write_crc.c
+++ b/tests/kms_mmap_write_crc.c
@@ -243,6 +243,8 @@ static void run_test(data_t *data)
 	igt_skip("no valid crtc/connector combinations found\n");
 }
 
+struct igt_helper_process hog;
+
 /**
  * fork_cpuhog_helper:
  *
@@ -250,15 +252,9 @@ static void run_test(data_t *data)
  * fill the CPU caches with random information so they can get stalled,
  * provoking incoherency with the GPU most likely.
  */
-static void fork_cpuhog_helper(void) {
-
-	/* TODO: if the parent is about to die before its child, e.g.
-	 * igt_assert_crc_equal() fails, there will be a boring exit handler
-	 * waiting the child to exit also. A workaround is to simply disable that
-	 * handler, buy this needs to be fixed properly in an elegant way. */
-	igt_disable_exit_handler();
-
-	igt_fork(hog, 1) {
+static void fork_cpuhog_helper(void)
+{
+	igt_fork_helper(&hog) {
 		while (1) {
 			usleep(10); /* quite ramdom really. */
 
@@ -297,16 +293,19 @@ int main(int argc, char **argv)
 		igt_require_pipe_crc();
 
 		igt_display_init(&data.display, data.drm_fd);
+
+		fork_cpuhog_helper();
 	}
 
 	igt_info("Using %d rounds for the test\n", ROUNDS);
-	fork_cpuhog_helper();
 
 	for (i = 0; i < ROUNDS; i++)
 		run_test(&data);
 
 	igt_fixture {
 		igt_display_fini(&data.display);
+
+		igt_stop_helper(&hog);
 	}
 
 	igt_exit();
-- 
2.7.0



More information about the Intel-gfx mailing list