mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-23 15:56:33 +00:00
core: Inject subtest message into dmesg
One of the side-effects we test for are kernel oops and knowing the guilty subtest can help speed up debugging. We can write to /dev/kmsg to inject messages into dmesg, so let's do so before the start of every test. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
66e46630f8
commit
52915fc88a
@ -269,8 +269,9 @@ static void print_version(void)
|
|||||||
uts.sysname, uts.release, uts.machine);
|
uts.sysname, uts.release, uts.machine);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void print_usage(const char *command_str, const char *help_str,
|
static const char *command_str;
|
||||||
bool output_on_stderr)
|
|
||||||
|
static void print_usage(const char *help_str, bool output_on_stderr)
|
||||||
{
|
{
|
||||||
FILE *f = output_on_stderr ? stderr : stdout;
|
FILE *f = output_on_stderr ? stderr : stdout;
|
||||||
|
|
||||||
@ -306,7 +307,6 @@ static int common_init(int argc, char **argv,
|
|||||||
{"debug", 0, 0, 'd'},
|
{"debug", 0, 0, 'd'},
|
||||||
{"help", 0, 0, 'h'},
|
{"help", 0, 0, 'h'},
|
||||||
};
|
};
|
||||||
const char *command_str;
|
|
||||||
char *short_opts;
|
char *short_opts;
|
||||||
struct option *combined_opts;
|
struct option *combined_opts;
|
||||||
int extra_opt_count;
|
int extra_opt_count;
|
||||||
@ -364,11 +364,11 @@ static int common_init(int argc, char **argv,
|
|||||||
run_single_subtest = strdup(optarg);
|
run_single_subtest = strdup(optarg);
|
||||||
break;
|
break;
|
||||||
case 'h':
|
case 'h':
|
||||||
print_usage(command_str, help_str, false);
|
print_usage(help_str, false);
|
||||||
ret = -1;
|
ret = -1;
|
||||||
goto out;
|
goto out;
|
||||||
case '?':
|
case '?':
|
||||||
print_usage(command_str, help_str, true);
|
print_usage(help_str, true);
|
||||||
ret = -2;
|
ret = -2;
|
||||||
goto out;
|
goto out;
|
||||||
default:
|
default:
|
||||||
@ -498,6 +498,24 @@ void igt_simple_init_parse_opts(int argc, char **argv,
|
|||||||
extra_opt_handler);
|
extra_opt_handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__attribute__((format(printf, 1, 2)))
|
||||||
|
static void kmsg(const char *format, ...)
|
||||||
|
#define KERN_INFO "<5>"
|
||||||
|
{
|
||||||
|
va_list ap;
|
||||||
|
FILE *file;
|
||||||
|
|
||||||
|
file = fopen("/dev/kmsg", "w");
|
||||||
|
if (file == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
va_start(ap, format);
|
||||||
|
vfprintf(file, format, ap);
|
||||||
|
va_end(ap);
|
||||||
|
|
||||||
|
fclose(file);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Note: Testcases which use these helpers MUST NOT output anything to stdout
|
* Note: Testcases which use these helpers MUST NOT output anything to stdout
|
||||||
* outside of places protected by igt_run_subtest checks - the piglit
|
* outside of places protected by igt_run_subtest checks - the piglit
|
||||||
@ -529,6 +547,8 @@ bool __igt_run_subtest(const char *subtest_name)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
kmsg(KERN_INFO "%s: starting subtest %s\n", command_str, subtest_name);
|
||||||
|
|
||||||
return (in_subtest = subtest_name);
|
return (in_subtest = subtest_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user