[igt-dev] [PATCH i-g-t] runner: Show why we dump the task state
Petri Latvala
petri.latvala at intel.com
Tue Apr 7 09:55:45 UTC 2020
On Tue, Apr 07, 2020 at 09:35:33AM +0100, Chris Wilson wrote:
> Include the reason why we are dumping the task state (test timeout) in
> the kmsg log prior to the task state. Hopefully this helps when reading
> the dump.
Thanks, hopefully this will reduce the amount of times I hear "look, I
found evidence, there's a task dump in dmesg, must be caused by it"...
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Petri Latvala <petri.latvala at intel.com>
> ---
> runner/executor.c | 25 ++++++++++++++++---------
> 1 file changed, 16 insertions(+), 9 deletions(-)
>
> diff --git a/runner/executor.c b/runner/executor.c
> index 1b69f9c57..7061b28d3 100644
> --- a/runner/executor.c
> +++ b/runner/executor.c
> @@ -678,9 +678,20 @@ static bool sysrq(char cmd)
> return success;
> }
>
> -static void show_kernel_task_state(void)
> +static const char *show_kernel_task_state(const char *msg)
> {
> + int fd;
> +
> + fd = open("/dev/kmsg", O_WRONLY);
> + if (fd != -1) {
> + write(fd, "<4>[IGT] ", 7);
Either replace this 7 with the correct 8 or a strlen call.
Reviewed-by: Petri Latvala <petri.latvala at intel.com>
> + write(fd, msg, strlen(msg));
> + close(fd);
> + }
> +
> sysrq('t');
> +
> + return msg;
> }
>
> static const char *need_to_timeout(struct settings *settings,
> @@ -725,16 +736,12 @@ static const char *need_to_timeout(struct settings *settings,
> return "Killing the test because the kernel is tainted.\n";
>
> if (settings->per_test_timeout != 0 &&
> - time_since_subtest > settings->per_test_timeout) {
> - show_kernel_task_state();
> - return "Per-test timeout exceeded. Killing the current test with SIGQUIT.\n";
> - }
> + time_since_subtest > settings->per_test_timeout)
> + return show_kernel_task_state("Per-test timeout exceeded. Killing the current test with SIGQUIT.\n");
>
> if (settings->inactivity_timeout != 0 &&
> - time_since_activity > settings->inactivity_timeout) {
> - show_kernel_task_state();
> - return "Inactivity timeout exceeded. Killing the current test with SIGQUIT.\n";
> - }
> + time_since_activity > settings->inactivity_timeout)
> + return show_kernel_task_state("Inactivity timeout exceeded. Killing the current test with SIGQUIT.\n");
>
> return NULL;
> }
> --
> 2.26.0
>
> _______________________________________________
> igt-dev mailing list
> igt-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev
More information about the igt-dev
mailing list