tests: Instrument tests run in simulation to run quickly

We tweak the tests marked as runnable in simulation to run more quickly,
more often then not at the expense of stress testing (which is of an
arguable interest for the initial bring up in simulation). Hopefully the
values chosen still test something, which is not always straightforward.

It does run quickly, the number on an IVB machines are:

$ time sudo IGT_SIMULATION=0 ./piglit-run.py tests/igt.tests foo
[...]
real	2m0.141s
user	0m16.365s
sys	1m33.382s

Vs.

$ time sudo IGT_SIMULATION=1 ./piglit-run.py tests/igt.tests foo
[...]
real	0m0.448s
user	0m0.226s
sys	0m0.183s

Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
This commit is contained in:
Damien Lespiau 2013-03-25 20:06:20 +00:00
parent 5fa15f79d0
commit d1e862324b
12 changed files with 43 additions and 13 deletions

View File

@ -153,6 +153,9 @@ int main(int argc, char **argv)
}
count = aper_size / 4096 * 2;
if (drmtest_run_in_simulation())
count = 10;
handles = malloc (count * sizeof(uint32_t));
assert(handles);

View File

@ -143,6 +143,11 @@ int main(int argc, char *argv[])
fd = drm_open_any();
devid = intel_get_drm_devid(fd);
if (drmtest_run_in_simulation()) {
num_contexts = 2;
iter = 4;
}
parse(argc, argv);
threads = calloc(num_contexts, sizeof(*threads));

View File

@ -96,7 +96,7 @@ static void loop(int fd, uint32_t handle, unsigned ring_id, const char *ring_nam
skipped_all = false;
for (count = 1; count <= 1<<17; count <<= 1) {
for (count = 1; count <= SLOW_QUICK(1<<17, 1<<4); count <<= 1) {
struct timeval start, end;
gettimeofday(&start, NULL);

View File

@ -40,7 +40,7 @@
#include "i915_drm.h"
#include "drmtest.h"
#define OBJECT_SIZE (16*1024*1024)
static int OBJECT_SIZE = 16*1024*1024;
static void set_domain(int fd, uint32_t handle)
{
@ -148,6 +148,9 @@ int main(int argc, char **argv)
{
int fd;
if (drmtest_run_in_simulation())
OBJECT_SIZE = 1 * 1024 * 1024;
drmtest_subtest_init(argc, argv);
fd = drm_open_any();

View File

@ -70,7 +70,7 @@ store_pipe_control_loop(void)
uint32_t *buf;
drm_intel_bo *target_bo;
for (i = 0; i < 0x10000; i++) {
for (i = 0; i < SLOW_QUICK(0x10000, 4); i++) {
/* we want to check tlb consistency of the pipe_control target,
* so get a new buffer every time around */
target_bo = drm_intel_bo_alloc(bufmgr, "target bo", 4096, 4096);

View File

@ -81,8 +81,11 @@ int main(int argc, char **argv)
batch = intel_batchbuffer_alloc(bufmgr, intel_get_drm_devid(fd));
count = 0;
if (drmtest_run_in_simulation())
count = 2;
if (argc > 1)
count = atoi(argv[1]);
if (count == 0)
count = 3 * gem_aperture_size(fd) / SIZE / 2;
else if (count < 2) {
@ -127,6 +130,9 @@ int main(int argc, char **argv)
for (i = 0; i < count; i++)
check_bo(fd, bo[i]->handle, start_val[i]);
if (drmtest_run_in_simulation())
return 0;
printf("Cyclic blits, backward...\n");
for (i = 0; i < count * 4; i++) {
struct scratch_buf src, dst;

View File

@ -63,7 +63,7 @@ store_dword_loop(int fd)
srandom(0xdeadbeef);
for (i = 0; i < 0x100000; i++) {
for (i = 0; i < SLOW_QUICK(0x100000, 10); i++) {
int ring = random() % num_rings + 1;
if (ring == I915_EXEC_RENDER) {

View File

@ -60,7 +60,7 @@ store_dword_loop(int divider)
if (!has_ppgtt)
cmd |= MI_MEM_VIRTUAL;
for (i = 0; i < SLOW_QUICK(0x80000, 0x10); i++) {
for (i = 0; i < SLOW_QUICK(0x80000, 4); i++) {
cmd_bo = drm_intel_bo_alloc(bufmgr, "cmd bo", 4096, 4096);
if (!cmd_bo) {
fprintf(stderr, "failed to alloc cmd bo\n");
@ -172,8 +172,10 @@ int main(int argc, char **argv)
store_dword_loop(1);
store_dword_loop(2);
store_dword_loop(3);
store_dword_loop(5);
if (!drmtest_run_in_simulation()) {
store_dword_loop(3);
store_dword_loop(5);
}
drm_intel_bo_unreference(target_bo);
drm_intel_bufmgr_destroy(bufmgr);

View File

@ -150,8 +150,10 @@ int main(int argc, char **argv)
store_dword_loop(1);
store_dword_loop(2);
store_dword_loop(3);
store_dword_loop(5);
if (!drmtest_run_in_simulation()) {
store_dword_loop(3);
store_dword_loop(5);
}
drm_intel_bo_unreference(target_buffer);
intel_batchbuffer_free(batch);

View File

@ -156,8 +156,10 @@ int main(int argc, char **argv)
store_dword_loop(1);
store_dword_loop(2);
store_dword_loop(3);
store_dword_loop(5);
if (!drmtest_run_in_simulation()) {
store_dword_loop(3);
store_dword_loop(5);
}
drm_intel_bo_unreference(target_buffer);
intel_batchbuffer_free(batch);

View File

@ -144,8 +144,10 @@ int main(int argc, char **argv)
store_dword_loop(1);
store_dword_loop(2);
store_dword_loop(3);
store_dword_loop(5);
if (!drmtest_run_in_simulation()) {
store_dword_loop(3);
store_dword_loop(5);
}
drm_intel_bo_unreference(target_buffer);
intel_batchbuffer_free(batch);

View File

@ -150,6 +150,9 @@ static void run_test(int count)
for (i = 0; i < count; i++)
check_bo(bo[i], bo_start_val[i]);
if (drmtest_run_in_simulation())
return;
printf("Cyclic blits, backward...\n");
for (i = 0; i < count * 4; i++) {
int src = (i+1) % count;
@ -192,6 +195,8 @@ int main(int argc, char **argv)
fd = drm_open_any();
if (!drmtest_only_list_subtests()) {
if (drmtest_run_in_simulation())
count = 2;
if (argc > 1)
count = atoi(argv[1]);
if (count == 0) {