static void processes(void) { int *all_fds; uint64_t aperture; struct rlimit rlim; int ppgtt_mode; int ctx_size; int obj_size; int n; igt_skip_on_simulation(); fd = drm_open_driver_render(DRIVER_INTEL); devid = intel_get_drm_devid(fd); aperture = gem_aperture_size(fd); ppgtt_mode = uses_ppgtt(fd); igt_require(ppgtt_mode); render_copy = igt_get_render_copyfunc(devid); igt_require_f(render_copy, "no render-copy function\n"); if (ppgtt_mode > 1) ctx_size = aperture >> 10; /* Assume full-ppgtt of maximum size */ else
static void threads(void) { pthread_t threads[NUM_THREADS]; struct thread data; data.fd = drm_open_driver_render(DRIVER_INTEL); data.num_ctx = get_num_contexts(data.fd); data.all_ctx = malloc(data.num_ctx * sizeof(uint32_t)); igt_assert(data.all_ctx); for (unsigned n = 0; n < data.num_ctx; n++) data.all_ctx[n] = gem_context_create(data.fd); for (int n = 0; n < NUM_THREADS; n++) pthread_create(&threads[n], NULL, thread, &data); for (int n = 0; n < NUM_THREADS; n++) pthread_join(threads[n], NULL); close(data.fd); }