* [PATCH i-g-t v1 0/4] RFC: Create smaller dmesg reports for a test
@ 2026-05-20 15:49 Kamil Konieczny
2026-05-20 15:49 ` [PATCH i-g-t v1 1/4] runner/executor: Create temporary unlimited dmesg save Kamil Konieczny
` (4 more replies)
0 siblings, 5 replies; 11+ messages in thread
From: Kamil Konieczny @ 2026-05-20 15:49 UTC (permalink / raw)
To: igt-dev
Cc: Kamil Konieczny, Sobin Thomas, Ryszard Knop,
Zbigniew Kempczyński
Inform igt_runner about some lines in dmesg which could be
safely skipped during creating a results.json.
With this, runner will also lift dmesg size limit for current
test and will postpone size fitting to last phase of a run when
it will generate json report.
TODO: This is draft which implements only lines skipping, without
any reporting what was done. Also, implementation for a fail path
when applied regex will not lower resulting demsg is left for
future.
Cc: Sobin Thomas <sobin.thomas@intel.com>
Cc: Ryszard Knop <ryszard.knop@intel.com>
Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
Kamil Konieczny (4):
runner/executor: Create temporary unlimited dmesg save
lib/igt_core: Create message for runner with unlimiting dmesg size
tests/intel/xe_exec_system_allocator: Lower dmesg size collected
runner/resultgen: Create smaller dmesg report by dropping lines
matched with skip regex
lib/igt_core.c | 31 +++++++++++++++++++
lib/igt_core.h | 1 +
runner/executor.c | 43 ++++++++++++++++----------
runner/output_strings.h | 8 +++++
runner/resultgen.c | 17 ++++++++--
tests/intel/xe_exec_system_allocator.c | 1 +
6 files changed, 83 insertions(+), 18 deletions(-)
--
2.54.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH i-g-t v1 1/4] runner/executor: Create temporary unlimited dmesg save
2026-05-20 15:49 [PATCH i-g-t v1 0/4] RFC: Create smaller dmesg reports for a test Kamil Konieczny
@ 2026-05-20 15:49 ` Kamil Konieczny
2026-05-20 15:49 ` [PATCH i-g-t v1 2/4] lib/igt_core: Create message for runner with unlimiting dmesg size Kamil Konieczny
` (3 subsequent siblings)
4 siblings, 0 replies; 11+ messages in thread
From: Kamil Konieczny @ 2026-05-20 15:49 UTC (permalink / raw)
To: igt-dev; +Cc: Kamil Konieczny
Scan incoming dmesg message for '[IGT] ulimit' and if seen lift
disk limit for this particular test. Later on results will take
following params and create a report within limits, either by
dropping lines matched by regex or by taking only a few
important parts from it.
Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
---
runner/executor.c | 43 +++++++++++++++++++++++++++----------------
1 file changed, 27 insertions(+), 16 deletions(-)
diff --git a/runner/executor.c b/runner/executor.c
index 847abe481..a95d278bd 100644
--- a/runner/executor.c
+++ b/runner/executor.c
@@ -638,7 +638,7 @@ const char *get_out_filename(int fid)
}
/* Returns the number of bytes written to disk, or a negative number on error */
-static long dump_dmesg(int kmsgfd, int outfd, ssize_t size)
+static long dump_dmesg(int kmsgfd, int outfd, ssize_t size, bool *ulimit)
{
/*
* Write kernel messages to the log file until we reach
@@ -653,7 +653,7 @@ static long dump_dmesg(int kmsgfd, int outfd, ssize_t size)
unsigned long long seq, cmpseq, usec;
bool underflow_once = false;
char cont;
- char buf[2048];
+ char buf[4096];
ssize_t r;
long written = 0;
@@ -690,7 +690,7 @@ static long dump_dmesg(int kmsgfd, int outfd, ssize_t size)
}
}
- r = read(kmsgfd, buf, sizeof(buf));
+ r = read(kmsgfd, buf, sizeof(buf) - 1);
if (r < 0) {
if (errno == EPIPE) {
if (!underflow_once) {
@@ -714,6 +714,10 @@ static long dump_dmesg(int kmsgfd, int outfd, ssize_t size)
write(outfd, buf, r);
written += r;
+ buf[r] = '\0';
+ if (strstr(buf, "[IGT] ulimit"))
+ *ulimit = true;
+
if (comparefd < 0 && sscanf(buf, "%u,%llu,%llu,%c;",
&flags, &seq, &usec, &cont) == 4) {
/*
@@ -820,11 +824,11 @@ static const char *show_kernel_task_state(const char *msg)
return msg;
}
-static bool disk_usage_limit_exceeded(struct settings *settings,
+static bool disk_usage_limit_exceeded(size_t disk_limit,
size_t disk_usage)
{
- return settings->disk_usage_limit != 0 &&
- disk_usage > settings->disk_usage_limit;
+ return disk_limit != 0 &&
+ disk_usage > disk_limit;
}
static const char *need_to_timeout(struct settings *settings,
@@ -833,7 +837,8 @@ static const char *need_to_timeout(struct settings *settings,
double time_since_activity,
double time_since_subtest,
double time_since_kill,
- size_t disk_usage)
+ size_t disk_usage,
+ size_t disk_limit)
{
int decrease = 1;
@@ -896,7 +901,7 @@ static const char *need_to_timeout(struct settings *settings,
return show_kernel_task_state("Inactivity timeout exceeded. Killing the current test with SIGQUIT.\n");
}
- if (disk_usage_limit_exceeded(settings, disk_usage))
+ if (disk_usage_limit_exceeded(disk_limit, disk_usage))
return "Disk usage limit exceeded.\n";
return NULL;
@@ -984,6 +989,8 @@ static int monitor_output(pid_t child,
long dmesgwritten;
bool socket_comms_used = false; /* whether the test actually uses comms */
bool results_received = false; /* whether we already have test results that might need overriding if we detect an abort condition */
+ bool disk_limit = settings->disk_usage_limit;
+ bool unlimit;
runner_gettime(&time_beg);
time_last_activity = time_last_subtest = time_killed = time_beg;
@@ -1307,9 +1314,13 @@ static int monitor_output(pid_t child,
socket_end:
if (kmsgfd >= 0 && FD_ISSET(kmsgfd, &set)) {
+ unlimit = false;
time_last_activity = time_now;
- dmesgwritten = dump_dmesg(kmsgfd, outputs[_F_DMESG], dmsg_chunk_size);
+ dmesgwritten = dump_dmesg(kmsgfd, outputs[_F_DMESG], dmsg_chunk_size, &unlimit);
+ if (unlimit)
+ disk_limit = 0;
+
if (settings->sync)
fdatasync(outputs[_F_DMESG]);
@@ -1462,7 +1473,7 @@ static int monitor_output(pid_t child,
* Same goes for stopping because we
* exceeded the disk usage limit.
*/
- if (killed && disk_usage_limit_exceeded(settings, disk_usage)) {
+ if (killed && disk_usage_limit_exceeded(disk_limit, disk_usage)) {
timeoutresult = false;
if (socket_comms_used) {
@@ -1537,7 +1548,7 @@ static int monitor_output(pid_t child,
igt_time_elapsed(&time_last_activity, &time_now),
igt_time_elapsed(&time_last_subtest, &time_now),
igt_time_elapsed(&time_killed, &time_now),
- disk_usage);
+ disk_usage, disk_limit);
if (timeout_reason) {
if (killed == SIGKILL) {
@@ -1552,8 +1563,8 @@ static int monitor_output(pid_t child,
asprintf(abortreason, "Child refuses to die, tainted 0x%lx.", taints);
}
- dmsg_chunk_size = calc_last_dmesg_chunk(settings->disk_usage_limit, disk_usage);
- dump_dmesg(kmsgfd, outputs[_F_DMESG], dmsg_chunk_size);
+ dmsg_chunk_size = calc_last_dmesg_chunk(disk_limit, disk_usage);
+ dump_dmesg(kmsgfd, outputs[_F_DMESG], dmsg_chunk_size, &unlimit);
if (settings->sync)
fdatasync(outputs[_F_DMESG]);
@@ -1583,13 +1594,13 @@ static int monitor_output(pid_t child,
}
}
- dmsg_chunk_size = calc_last_dmesg_chunk(settings->disk_usage_limit, disk_usage);
- dmesgwritten = dump_dmesg(kmsgfd, outputs[_F_DMESG], dmsg_chunk_size);
+ dmsg_chunk_size = calc_last_dmesg_chunk(disk_limit, disk_usage);
+ dmesgwritten = dump_dmesg(kmsgfd, outputs[_F_DMESG], dmsg_chunk_size, &unlimit);
if (settings->sync)
fdatasync(outputs[_F_DMESG]);
if (dmesgwritten > 0) {
disk_usage += dmesgwritten;
- if (settings->disk_usage_limit && disk_usage > settings->disk_usage_limit) {
+ if (disk_limit && disk_usage > disk_limit) {
char disk[1024];
snprintf(disk, sizeof(disk), "igt_runner: disk limit exceeded at dmesg dump, %zu > %zu\n", disk_usage, settings->disk_usage_limit);
--
2.54.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH i-g-t v1 2/4] lib/igt_core: Create message for runner with unlimiting dmesg size
2026-05-20 15:49 [PATCH i-g-t v1 0/4] RFC: Create smaller dmesg reports for a test Kamil Konieczny
2026-05-20 15:49 ` [PATCH i-g-t v1 1/4] runner/executor: Create temporary unlimited dmesg save Kamil Konieczny
@ 2026-05-20 15:49 ` Kamil Konieczny
2026-05-20 15:49 ` [PATCH i-g-t v1 3/4] tests/intel/xe_exec_system_allocator: Lower dmesg size collected Kamil Konieczny
` (2 subsequent siblings)
4 siblings, 0 replies; 11+ messages in thread
From: Kamil Konieczny @ 2026-05-20 15:49 UTC (permalink / raw)
To: igt-dev; +Cc: Kamil Konieczny
Create a way to communicate to runner that test or subtest want
to lift disk limit size collected in a run and delays size limit
fitting to results processing.
Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
---
lib/igt_core.c | 31 +++++++++++++++++++++++++++++++
lib/igt_core.h | 1 +
2 files changed, 32 insertions(+)
diff --git a/lib/igt_core.c b/lib/igt_core.c
index 72b7d3449..e0f6eb969 100644
--- a/lib/igt_core.c
+++ b/lib/igt_core.c
@@ -3606,6 +3606,37 @@ void igt_emit_ignore_dmesg_regex(const char *ignore_dmesg_regex)
igt_kmsg(KMSG_INFO "%s%s\n", mark_ignore_dmesg, ignore_dmesg_regex);
}
+/**
+ * igt_emit_ulimit_dmesg:
+ * @begin_size: size of a beginning part
+ * @end_size: size of an ending part
+ * @ignore_dmesg_regex: string regex
+ *
+ * Emits a string '[IGT] ulimit' in demsg for igt_runner to ignore dmesg disk
+ * size limit for one test. Later on results will filter out matched regex to
+ * reduce its size in report.json. If that will not be enough, results will
+ * further reduce it under a desired disk limit. Regex parameter should be a
+ * last one emited. User could use begin and end sizes to reduce it more for
+ * this particular test (zero means no reduction).
+ */
+void igt_emit_ulimit_dmesg(const size_t begin_size, const size_t end_size, const char *ignore_dmesg_regex)
+{
+ static const char ulimit[] = "ulimit"; /* [IGT] ulimit ... params */
+ GError *err = NULL;
+ GRegex *re;
+
+ re = g_regex_new(ignore_dmesg_regex, G_REGEX_OPTIMIZE, 0, &err);
+ if (err) {
+ igt_debug("regexp: '%s'\n", err->message);
+ g_error_free(err);
+ igt_assert_f(re, "Error in regexp\n");
+ }
+
+ g_regex_unref(re);
+ igt_kmsg(KMSG_INFO "%s size_start=%ld size_end=%ld regex: %s\n", ulimit,
+ begin_size, end_size, ignore_dmesg_regex);
+}
+
/**
* @igt_measured_usleep: Helper to model accurate sleep time for tests
* @usec: usec to sleep
diff --git a/lib/igt_core.h b/lib/igt_core.h
index 9fe3997e7..d8e0249ee 100644
--- a/lib/igt_core.h
+++ b/lib/igt_core.h
@@ -1643,6 +1643,7 @@ int igt_pci_system_reinit(void);
void igt_pci_system_cleanup(void);
void igt_emit_ignore_dmesg_regex(const char *ignore_dmesg_regex);
+void igt_emit_ulimit_dmesg(const size_t begin_size, const size_t end_size, const char *ignore_dmesg_regex);
unsigned int igt_measured_usleep(unsigned int usec);
--
2.54.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH i-g-t v1 3/4] tests/intel/xe_exec_system_allocator: Lower dmesg size collected
2026-05-20 15:49 [PATCH i-g-t v1 0/4] RFC: Create smaller dmesg reports for a test Kamil Konieczny
2026-05-20 15:49 ` [PATCH i-g-t v1 1/4] runner/executor: Create temporary unlimited dmesg save Kamil Konieczny
2026-05-20 15:49 ` [PATCH i-g-t v1 2/4] lib/igt_core: Create message for runner with unlimiting dmesg size Kamil Konieczny
@ 2026-05-20 15:49 ` Kamil Konieczny
2026-05-20 15:49 ` [PATCH i-g-t v1 4/4] runner/resultgen: Create smaller dmesg report by dropping lines matched with skip regex Kamil Konieczny
2026-05-29 12:06 ` [PATCH i-g-t v1 0/4] RFC: Create smaller dmesg reports for a test Knop, Ryszard
4 siblings, 0 replies; 11+ messages in thread
From: Kamil Konieczny @ 2026-05-20 15:49 UTC (permalink / raw)
To: igt-dev; +Cc: Kamil Konieczny
Allow igt_runner to lower dmesg size collected during a run.
This will drop lines matched with regex, also in success runs
only small 4KB portion of beginning and end will be collected.
Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
---
tests/intel/xe_exec_system_allocator.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/tests/intel/xe_exec_system_allocator.c b/tests/intel/xe_exec_system_allocator.c
index 0f1d6ee9c..1f1482a97 100644
--- a/tests/intel/xe_exec_system_allocator.c
+++ b/tests/intel/xe_exec_system_allocator.c
@@ -2565,6 +2565,7 @@ int igt_main()
va_bits = xe->va_bits;
open_sync_file();
dev_id = intel_get_drm_devid(fd);
+ igt_emit_ulimit_dmesg(4096, 4096, "drm:drm_pagemap_migrate_to_devmem|Skipping madvise reset for vma");
}
for (const struct section *s = sections; s->name; s++) {
--
2.54.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH i-g-t v1 4/4] runner/resultgen: Create smaller dmesg report by dropping lines matched with skip regex
2026-05-20 15:49 [PATCH i-g-t v1 0/4] RFC: Create smaller dmesg reports for a test Kamil Konieczny
` (2 preceding siblings ...)
2026-05-20 15:49 ` [PATCH i-g-t v1 3/4] tests/intel/xe_exec_system_allocator: Lower dmesg size collected Kamil Konieczny
@ 2026-05-20 15:49 ` Kamil Konieczny
2026-05-29 12:06 ` [PATCH i-g-t v1 0/4] RFC: Create smaller dmesg reports for a test Knop, Ryszard
4 siblings, 0 replies; 11+ messages in thread
From: Kamil Konieczny @ 2026-05-20 15:49 UTC (permalink / raw)
To: igt-dev; +Cc: Kamil Konieczny
Tests can skip some messages to keep generated dmesg report
under disk limit size.
Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
---
runner/output_strings.h | 8 ++++++++
runner/resultgen.c | 17 +++++++++++++++--
2 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/runner/output_strings.h b/runner/output_strings.h
index 91ef5f2c3..943fb67a6 100644
--- a/runner/output_strings.h
+++ b/runner/output_strings.h
@@ -62,6 +62,14 @@ static const char STARTING_DYNAMIC_SUBTEST_DMESG[] = ": starting dynamic subtest
*/
static const char IGT_ADD_IGNORED_REGEX_DMESG[] = "add ignored dmesg regex: ";
+/*
+ * Output in dmesg when a test wants runner to dynamically ignore disklimit.
+ *
+ * Example:
+ * [IGT] ulimit ...params... regex: Skipping madvise reset for vma
+ */
+static const char IGT_ADD_IGNORE_LIMIT_REGEX_DMESG[] = "ulimit";
+
/*
* Output when a test process is executed.
*
diff --git a/runner/resultgen.c b/runner/resultgen.c
index 29fc5cbb1..f4c16ee75 100644
--- a/runner/resultgen.c
+++ b/runner/resultgen.c
@@ -1008,6 +1008,7 @@ static bool fill_from_dmesg(int fd,
size_t i;
GRegex *re;
GRegex *re_ignore; /* regex for dynamically ignored dmesg line */
+ GRegex *re_skip; /* regex for dynamically skipping dmesg line */
if (!f) {
return false;
@@ -1019,6 +1020,7 @@ static bool fill_from_dmesg(int fd,
}
re_ignore = NULL;
+ re_skip = NULL;
while (getline(&line, &linelen, f) > 0) {
char *formatted;
unsigned flags;
@@ -1078,6 +1080,12 @@ static bool fill_from_dmesg(int fd,
if ((ignore = strstr(message, IGT_ADD_IGNORED_REGEX_DMESG)) != NULL)
add_ignored_regex(&re_ignore, ignore + strlen(IGT_ADD_IGNORED_REGEX_DMESG));
+ if ((ignore = strstr(message, IGT_ADD_IGNORE_LIMIT_REGEX_DMESG)) != NULL) {
+ ignore = strstr(message, "regex: ");
+ add_ignored_regex(&re_skip, ignore + strlen("regex: "));
+ /* TODO: implement rest of params */
+ }
+
if (settings->piglit_style_dmesg) {
if ((flags & 0x07) <= settings->dmesg_warn_level && continuation != 'c' &&
g_regex_match(re, message, 0, NULL) &&
@@ -1095,8 +1103,12 @@ static bool fill_from_dmesg(int fd,
append_line(&dynamic_warnings, &dynamic_warnings_len, formatted);
}
}
- append_line(&dmesg, &dmesglen, formatted);
- append_line(&dynamic_dmesg, &dynamic_dmesg_len, formatted);
+
+ if (not_ignored(re_skip, message)) {
+ append_line(&dmesg, &dmesglen, formatted);
+ append_line(&dynamic_dmesg, &dynamic_dmesg_len, formatted);
+ }
+
free(formatted);
}
free(line);
@@ -1137,6 +1149,7 @@ static bool fill_from_dmesg(int fd,
free(warnings);
free(dynamic_warnings);
clean_regex(&re_ignore);
+ clean_regex(&re_skip);
g_regex_unref(re);
fclose(f);
return true;
--
2.54.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH i-g-t v1 0/4] RFC: Create smaller dmesg reports for a test
2026-05-20 15:49 [PATCH i-g-t v1 0/4] RFC: Create smaller dmesg reports for a test Kamil Konieczny
` (3 preceding siblings ...)
2026-05-20 15:49 ` [PATCH i-g-t v1 4/4] runner/resultgen: Create smaller dmesg report by dropping lines matched with skip regex Kamil Konieczny
@ 2026-05-29 12:06 ` Knop, Ryszard
2026-05-29 12:52 ` Jani Nikula
4 siblings, 1 reply; 11+ messages in thread
From: Knop, Ryszard @ 2026-05-29 12:06 UTC (permalink / raw)
To: igt-dev@lists.freedesktop.org, kamil.konieczny@linux.intel.com
Cc: Kempczynski, Zbigniew, Thomas, Sobin
IMO this is going to end up either unused, and people will keep
complaining they want a higher limit anyways, or overused, and people
will complain why some of their logs are randomly missing from CI logs.
In general it seems like this does not break the CI infra directly, so
I won't say no to anything here, but it's one of those things that dial
up the magic and we seem to have lots of that in disk limits recently.
Ryszard
On Wed, 2026-05-20 at 17:49 +0200, Kamil Konieczny wrote:
> Inform igt_runner about some lines in dmesg which could be
> safely skipped during creating a results.json.
>
> With this, runner will also lift dmesg size limit for current
> test and will postpone size fitting to last phase of a run when
> it will generate json report.
>
> TODO: This is draft which implements only lines skipping, without
> any reporting what was done. Also, implementation for a fail path
> when applied regex will not lower resulting demsg is left for
> future.
>
> Cc: Sobin Thomas <sobin.thomas@intel.com>
> Cc: Ryszard Knop <ryszard.knop@intel.com>
> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
>
> Kamil Konieczny (4):
> runner/executor: Create temporary unlimited dmesg save
> lib/igt_core: Create message for runner with unlimiting dmesg size
> tests/intel/xe_exec_system_allocator: Lower dmesg size collected
> runner/resultgen: Create smaller dmesg report by dropping lines
> matched with skip regex
>
> lib/igt_core.c | 31 +++++++++++++++++++
> lib/igt_core.h | 1 +
> runner/executor.c | 43 ++++++++++++++++----------
> runner/output_strings.h | 8 +++++
> runner/resultgen.c | 17 ++++++++--
> tests/intel/xe_exec_system_allocator.c | 1 +
> 6 files changed, 83 insertions(+), 18 deletions(-)
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH i-g-t v1 0/4] RFC: Create smaller dmesg reports for a test
2026-05-29 12:06 ` [PATCH i-g-t v1 0/4] RFC: Create smaller dmesg reports for a test Knop, Ryszard
@ 2026-05-29 12:52 ` Jani Nikula
2026-05-29 15:09 ` Ville Syrjälä
2026-05-29 21:04 ` Kamil Konieczny
0 siblings, 2 replies; 11+ messages in thread
From: Jani Nikula @ 2026-05-29 12:52 UTC (permalink / raw)
To: Knop, Ryszard, igt-dev@lists.freedesktop.org,
kamil.konieczny@linux.intel.com
Cc: Kempczynski, Zbigniew, Thomas, Sobin
On Fri, 29 May 2026, "Knop, Ryszard" <ryszard.knop@intel.com> wrote:
> IMO this is going to end up either unused, and people will keep
> complaining they want a higher limit anyways, or overused, and people
> will complain why some of their logs are randomly missing from CI logs.
>
> In general it seems like this does not break the CI infra directly, so
> I won't say no to anything here, but it's one of those things that dial
> up the magic and we seem to have lots of that in disk limits recently.
Overall seems like there are a number of hacky approaches being added,
e.g. tweaking of the drm.debug parameter value, and filtering parts of
the dmesg.
Debugging issues is often seriously difficult even with the full
dmesg. Having an imcomplete dmesg makes everything more difficult. And
it's the worst if you don't even know that when looking at the dmesg.
We could *maybe* discuss reducing the stored dmesgs for tests that
passed. Or reduce the time the dmesgs are stored for passed dmesgs. But
even then it's often useful to see the passed results when debugging
failed results.
But no matter what, full dmesgs should be the standard for failed tests,
and nothing less is acceptable.
BR,
Jani.
>
> Ryszard
>
> On Wed, 2026-05-20 at 17:49 +0200, Kamil Konieczny wrote:
>> Inform igt_runner about some lines in dmesg which could be
>> safely skipped during creating a results.json.
>>
>> With this, runner will also lift dmesg size limit for current
>> test and will postpone size fitting to last phase of a run when
>> it will generate json report.
>>
>> TODO: This is draft which implements only lines skipping, without
>> any reporting what was done. Also, implementation for a fail path
>> when applied regex will not lower resulting demsg is left for
>> future.
>>
>> Cc: Sobin Thomas <sobin.thomas@intel.com>
>> Cc: Ryszard Knop <ryszard.knop@intel.com>
>> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
>>
>> Kamil Konieczny (4):
>> runner/executor: Create temporary unlimited dmesg save
>> lib/igt_core: Create message for runner with unlimiting dmesg size
>> tests/intel/xe_exec_system_allocator: Lower dmesg size collected
>> runner/resultgen: Create smaller dmesg report by dropping lines
>> matched with skip regex
>>
>> lib/igt_core.c | 31 +++++++++++++++++++
>> lib/igt_core.h | 1 +
>> runner/executor.c | 43 ++++++++++++++++----------
>> runner/output_strings.h | 8 +++++
>> runner/resultgen.c | 17 ++++++++--
>> tests/intel/xe_exec_system_allocator.c | 1 +
>> 6 files changed, 83 insertions(+), 18 deletions(-)
--
Jani Nikula, Intel
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH i-g-t v1 0/4] RFC: Create smaller dmesg reports for a test
2026-05-29 12:52 ` Jani Nikula
@ 2026-05-29 15:09 ` Ville Syrjälä
2026-05-29 15:51 ` Knop, Ryszard
2026-05-29 21:07 ` Kamil Konieczny
2026-05-29 21:04 ` Kamil Konieczny
1 sibling, 2 replies; 11+ messages in thread
From: Ville Syrjälä @ 2026-05-29 15:09 UTC (permalink / raw)
To: Jani Nikula
Cc: Knop, Ryszard, igt-dev@lists.freedesktop.org,
kamil.konieczny@linux.intel.com, Kempczynski, Zbigniew,
Thomas, Sobin
On Fri, May 29, 2026 at 03:52:13PM +0300, Jani Nikula wrote:
> On Fri, 29 May 2026, "Knop, Ryszard" <ryszard.knop@intel.com> wrote:
> > IMO this is going to end up either unused, and people will keep
> > complaining they want a higher limit anyways, or overused, and people
> > will complain why some of their logs are randomly missing from CI logs.
> >
> > In general it seems like this does not break the CI infra directly, so
> > I won't say no to anything here, but it's one of those things that dial
> > up the magic and we seem to have lots of that in disk limits recently.
>
> Overall seems like there are a number of hacky approaches being added,
> e.g. tweaking of the drm.debug parameter value, and filtering parts of
> the dmesg.
>
> Debugging issues is often seriously difficult even with the full
> dmesg. Having an imcomplete dmesg makes everything more difficult. And
> it's the worst if you don't even know that when looking at the dmesg.
>
> We could *maybe* discuss reducing the stored dmesgs for tests that
> passed. Or reduce the time the dmesgs are stored for passed dmesgs. But
> even then it's often useful to see the passed results when debugging
> failed results.
>
> But no matter what, full dmesgs should be the standard for failed tests,
> and nothing less is acceptable.
If disk space is the issue then just compress the damn logs.
--
Ville Syrjälä
Intel
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH i-g-t v1 0/4] RFC: Create smaller dmesg reports for a test
2026-05-29 15:09 ` Ville Syrjälä
@ 2026-05-29 15:51 ` Knop, Ryszard
2026-05-29 21:07 ` Kamil Konieczny
1 sibling, 0 replies; 11+ messages in thread
From: Knop, Ryszard @ 2026-05-29 15:51 UTC (permalink / raw)
To: ville.syrjala@linux.intel.com, Nikula, Jani
Cc: Kempczynski, Zbigniew, igt-dev@lists.freedesktop.org,
Thomas, Sobin, kamil.konieczny@linux.intel.com
On Fri, 2026-05-29 at 18:09 +0300, Ville Syrjälä wrote:
> On Fri, May 29, 2026 at 03:52:13PM +0300, Jani Nikula wrote:
> > On Fri, 29 May 2026, "Knop, Ryszard" <ryszard.knop@intel.com> wrote:
> > > IMO this is going to end up either unused, and people will keep
> > > complaining they want a higher limit anyways, or overused, and people
> > > will complain why some of their logs are randomly missing from CI logs.
> > >
> > > In general it seems like this does not break the CI infra directly, so
> > > I won't say no to anything here, but it's one of those things that dial
> > > up the magic and we seem to have lots of that in disk limits recently.
> >
> > Overall seems like there are a number of hacky approaches being added,
> > e.g. tweaking of the drm.debug parameter value, and filtering parts of
> > the dmesg.
> >
> > Debugging issues is often seriously difficult even with the full
> > dmesg. Having an imcomplete dmesg makes everything more difficult. And
> > it's the worst if you don't even know that when looking at the dmesg.
> >
> > We could *maybe* discuss reducing the stored dmesgs for tests that
> > passed. Or reduce the time the dmesgs are stored for passed dmesgs. But
> > even then it's often useful to see the passed results when debugging
> > failed results.
> >
> > But no matter what, full dmesgs should be the standard for failed tests,
> > and nothing less is acceptable.
>
> If disk space is the issue then just compress the damn logs.
The problem is not disk space, the problem is everything that happens
between raw logs being produced and them landing for consumption -
processing, visualization, etc. Right now, if you overdo it, the whole
pipeline blows up, so we *really* don't want to bump the test limit.
This is being reworked so that it's no longer a problem, so once that's
done, we will be able to increase the limit instead of going through
all of this stuff.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH i-g-t v1 0/4] RFC: Create smaller dmesg reports for a test
2026-05-29 12:52 ` Jani Nikula
2026-05-29 15:09 ` Ville Syrjälä
@ 2026-05-29 21:04 ` Kamil Konieczny
1 sibling, 0 replies; 11+ messages in thread
From: Kamil Konieczny @ 2026-05-29 21:04 UTC (permalink / raw)
To: Jani Nikula
Cc: Knop, Ryszard, igt-dev@lists.freedesktop.org,
Kempczynski, Zbigniew, Thomas, Sobin, Ville Syrjälä,
Juha-Pekka Heikkila, Juha-Pekka Heikkila
Hi Jani,
On 2026-05-29 at 15:52:13 +0300, Jani Nikula wrote:
> On Fri, 29 May 2026, "Knop, Ryszard" <ryszard.knop@intel.com> wrote:
> > IMO this is going to end up either unused, and people will keep
> > complaining they want a higher limit anyways, or overused, and people
> > will complain why some of their logs are randomly missing from CI logs.
> >
> > In general it seems like this does not break the CI infra directly, so
> > I won't say no to anything here, but it's one of those things that dial
> > up the magic and we seem to have lots of that in disk limits recently.
I also do not like this as this could depend on kernel
and debug flags/env vars.
>
> Overall seems like there are a number of hacky approaches being added,
> e.g. tweaking of the drm.debug parameter value, and filtering parts of
> the dmesg.
>
> Debugging issues is often seriously difficult even with the full
> dmesg. Having an imcomplete dmesg makes everything more difficult. And
> it's the worst if you don't even know that when looking at the dmesg.
Full logs are still there, at least for Intel CI, in full dmesg.
The idea was to have a begin and end of dmesg for each test, so
if needed a dmesg for particular test could be found from full
one, where by full I mean one for whole run for all tests (link
on results page to dmesgNN.txt) But that recently also have had
its problems, when one from igt_runner was more complete than a
full one. +cc J-P
The problem is that igt_runner do not know about how much logs
could appear in dmesg, so given a disk limit for all runs it
kills a single test when it exceeds it. For some tests it should
kill it sooner, for others it could allow bigger and see a
success instead of incomplete.
For the cases when it fails, it should be enough to have ten
first bugs in dmesg then hundreds? Here also comes non-decidable
dillema when to stop collecting a dmesg, when kernel could
print it indefinitly.
Regards,
Kamil
>
> We could *maybe* discuss reducing the stored dmesgs for tests that
> passed. Or reduce the time the dmesgs are stored for passed dmesgs. But
> even then it's often useful to see the passed results when debugging
> failed results.
>
> But no matter what, full dmesgs should be the standard for failed tests,
> and nothing less is acceptable.
>
>
> BR,
> Jani.
>
>
> >
> > Ryszard
> >
> > On Wed, 2026-05-20 at 17:49 +0200, Kamil Konieczny wrote:
> >> Inform igt_runner about some lines in dmesg which could be
> >> safely skipped during creating a results.json.
> >>
> >> With this, runner will also lift dmesg size limit for current
> >> test and will postpone size fitting to last phase of a run when
> >> it will generate json report.
> >>
> >> TODO: This is draft which implements only lines skipping, without
> >> any reporting what was done. Also, implementation for a fail path
> >> when applied regex will not lower resulting demsg is left for
> >> future.
> >>
> >> Cc: Sobin Thomas <sobin.thomas@intel.com>
> >> Cc: Ryszard Knop <ryszard.knop@intel.com>
> >> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
> >>
> >> Kamil Konieczny (4):
> >> runner/executor: Create temporary unlimited dmesg save
> >> lib/igt_core: Create message for runner with unlimiting dmesg size
> >> tests/intel/xe_exec_system_allocator: Lower dmesg size collected
> >> runner/resultgen: Create smaller dmesg report by dropping lines
> >> matched with skip regex
> >>
> >> lib/igt_core.c | 31 +++++++++++++++++++
> >> lib/igt_core.h | 1 +
> >> runner/executor.c | 43 ++++++++++++++++----------
> >> runner/output_strings.h | 8 +++++
> >> runner/resultgen.c | 17 ++++++++--
> >> tests/intel/xe_exec_system_allocator.c | 1 +
> >> 6 files changed, 83 insertions(+), 18 deletions(-)
>
> --
> Jani Nikula, Intel
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH i-g-t v1 0/4] RFC: Create smaller dmesg reports for a test
2026-05-29 15:09 ` Ville Syrjälä
2026-05-29 15:51 ` Knop, Ryszard
@ 2026-05-29 21:07 ` Kamil Konieczny
1 sibling, 0 replies; 11+ messages in thread
From: Kamil Konieczny @ 2026-05-29 21:07 UTC (permalink / raw)
To: Ville Syrjälä
Cc: Jani Nikula, Knop, Ryszard, igt-dev@lists.freedesktop.org,
Kempczynski, Zbigniew, Thomas, Sobin, Juha-Pekka Heikkila,
Juha-Pekka Heikkila
Hi Ville,
On 2026-05-29 at 18:09:30 +0300, Ville Syrjälä wrote:
> On Fri, May 29, 2026 at 03:52:13PM +0300, Jani Nikula wrote:
> > On Fri, 29 May 2026, "Knop, Ryszard" <ryszard.knop@intel.com> wrote:
> > > IMO this is going to end up either unused, and people will keep
> > > complaining they want a higher limit anyways, or overused, and people
> > > will complain why some of their logs are randomly missing from CI logs.
> > >
> > > In general it seems like this does not break the CI infra directly, so
> > > I won't say no to anything here, but it's one of those things that dial
> > > up the magic and we seem to have lots of that in disk limits recently.
> >
> > Overall seems like there are a number of hacky approaches being added,
> > e.g. tweaking of the drm.debug parameter value, and filtering parts of
> > the dmesg.
> >
> > Debugging issues is often seriously difficult even with the full
> > dmesg. Having an imcomplete dmesg makes everything more difficult. And
> > it's the worst if you don't even know that when looking at the dmesg.
> >
> > We could *maybe* discuss reducing the stored dmesgs for tests that
> > passed. Or reduce the time the dmesgs are stored for passed dmesgs. But
> > even then it's often useful to see the passed results when debugging
> > failed results.
> >
> > But no matter what, full dmesgs should be the standard for failed tests,
> > and nothing less is acceptable.
>
> If disk space is the issue then just compress the damn logs.
>
It was tried but failed in CI pipe, where plain text is
expected. +J-P
Regards,
Kamil
> --
> Ville Syrjälä
> Intel
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2026-05-29 21:07 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-20 15:49 [PATCH i-g-t v1 0/4] RFC: Create smaller dmesg reports for a test Kamil Konieczny
2026-05-20 15:49 ` [PATCH i-g-t v1 1/4] runner/executor: Create temporary unlimited dmesg save Kamil Konieczny
2026-05-20 15:49 ` [PATCH i-g-t v1 2/4] lib/igt_core: Create message for runner with unlimiting dmesg size Kamil Konieczny
2026-05-20 15:49 ` [PATCH i-g-t v1 3/4] tests/intel/xe_exec_system_allocator: Lower dmesg size collected Kamil Konieczny
2026-05-20 15:49 ` [PATCH i-g-t v1 4/4] runner/resultgen: Create smaller dmesg report by dropping lines matched with skip regex Kamil Konieczny
2026-05-29 12:06 ` [PATCH i-g-t v1 0/4] RFC: Create smaller dmesg reports for a test Knop, Ryszard
2026-05-29 12:52 ` Jani Nikula
2026-05-29 15:09 ` Ville Syrjälä
2026-05-29 15:51 ` Knop, Ryszard
2026-05-29 21:07 ` Kamil Konieczny
2026-05-29 21:04 ` Kamil Konieczny
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox