intel-gpu-tools: Version information

Provide two arguments version, and verbose, which allow printing from an
arbitrary igt test. It will show system information (from build time,
not runtime), as well as the git SHA being used.

This will help reduce errors when people try to reproduce problems.

As an example if I want to verify someone is running the correct version
of a test, I could ask them to do:
bwidawsk@ironside ~/intel-gfx/intel-gpu-tools (master)$ sudo ./tests/gem_exec_nop --verbose
gem_exec_nop-git-3c5423b (Linux ironside 3.12.0-1-ARCH #1 SMP PREEMPT
Wed Nov 6 09:06:27 CET 2013 x86_64 GNU/Linux)
Time to exec x 1:		 35.000µs (ring=render)
Time to exec x 2:		 28.000µs (ring=render)
Time to exec x 4:		 20.000µs (ring=render)
Time to exec x 8:		 14.625µs (ring=render)
Time to exec x 16:		 11.188µs (ring=render)
Time to exec x 32:		 11.125µs (ring=render)
Time to exec x 64:		 10.328µs (ring=render)
Time to exec x 128:		 10.172µs (ring=render)
Time to exec x 256:		 10.234µs (ring=render)
Time to exec x 512:		 10.232µs (ring=render)
Time to exec x 1024:		 10.121µs (ring=render)
Time to exec x 2048:		 10.151µs (ring=render)
Time to exec x 4096:		 11.474µs (ring=render)
Time to exec x 8192:		  9.432µs (ring=render)
Time to exec x 16384:		  6.003µs (ring=render)
Time to exec x 32768:		  5.029µs (ring=render)
Time to exec x 65536:		  4.206µs (ring=render)
Time to exec x 131072:		  3.630µs (ring=render)
Subtest render: SUCCESS

--verbose is provided for completeness, but doesn't seem too useful at
the moement.

bwidawsk@ironside ~/intel-gfx/intel-gpu-tools (master)$ sudo ./tests/gem_exec_nop --version
gem_exec_nop-git-3c5423b (Linux ironside 3.12.0-1-ARCH #1 SMP PREEMPT
Wed Nov 6 09:06:27 CET 2013 x86_64 GNU/Linux)

I've put version.h in the root directory so that any subdir can access
it. I've added the tests usage since it's immediately useful, and done
easily via Daniels igt infrastructure work.

v2:
- Always print the version number.
- We want to print uname at runtime.
- Also prefix the i-g-t release version.

Signed-off-by: Ben Widawsky <ben@bwidawsk.net> (v1)
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
Ben Widawsky 2013-12-06 20:35:29 -08:00 committed by Daniel Vetter
parent ea8c086919
commit 8c33e9ad11
3 changed files with 38 additions and 1 deletions

View File

@ -1,5 +1,5 @@
# Copyright © 2005 Adam Jackson.
# Copyright © 2009 Intel Corporation
# Copyright © 2009,2013 Intel Corporation
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
@ -37,6 +37,29 @@ endif
MAINTAINERCLEANFILES = ChangeLog INSTALL
.PHONY: version.h.tmp
version.h.tmp:
@touch $@
@if test -d .git; then \
if which git > /dev/null; then git log -n 1 --oneline | \
sed 's/^\([^ ]*\) .*/#define IGT_GIT_SHA1 "g\1"/' \
>> $@ ; \
fi \
else \
echo '#define IGT_GIT_SHA1 "NOT-GIT"' >> $@ ; \
fi
version.h: version.h.tmp
@echo "updating version.h"
@if ! cmp -s version.h.tmp version.h; then \
mv version.h.tmp version.h ;\
else \
rm version.h.tmp ;\
fi
BUILT_SOURCES = version.h
CLEANFILES = version.h version.h.tmp
.PHONY: ChangeLog INSTALL
INSTALL:

View File

@ -51,6 +51,8 @@
#include "intel_chipset.h"
#include "intel_gpu_tools.h"
#include "igt_debugfs.h"
#include "../version.h"
#include "config.h"
/* This file contains a bunch of wrapper functions to directly use gem ioctls.
* Mostly useful to write kernel tests. */
@ -798,6 +800,15 @@ static void check_igt_exit(int sig)
assert(sig != 0 || igt_exit_called);
}
static void print_version(void)
{
if (list_subtests)
return;
fprintf(stdout, "IGT-Version: %s-%s\n", PACKAGE_VERSION, IGT_GIT_SHA1);
}
static void print_usage(const char *command_str, const char *help_str,
bool output_on_stderr)
{
@ -893,6 +904,8 @@ int igt_subtest_init_parse_opts(int argc, char **argv,
oom_adjust_for_doom();
out:
print_version();
return ret;
}

View File

@ -24,6 +24,7 @@ AM_CFLAGS = $(DRM_CFLAGS) $(CWARNFLAGS) \
-I$(srcdir)/.. \
-I$(srcdir)/../lib \
-include "check-ndebug.h" \
-include "$(srcdir)/version.h" \
-DIGT_DATADIR=\""$(abs_srcdir)"\" \
$(NULL)