[PATCH i-g-t v2 0/1] test/kms_cursor_crc: tie some loose ends in prepare_crtc

0 views
Skip to first unread message

Melissa Wen

unread,
Jul 16, 2020, 7:24:58 AM7/16/20
to igt...@lists.freedesktop.org, arkadiu...@intel.com, Rodrigo....@amd.com, rodrigosi...@gmail.com, twoe...@gmail.com, kerne...@googlegroups.com
Hi,

Using vkms, when running a sequence of subtests from kms_cursor_crc,
several strange timeout failures occurred. For example, running the
alpha-opaque cursor twice, the first run is successful and the second
fails. In addition, if we run the entire test in a call (i.e.: sudo
IGT_FORCE_DRIVER=vkms build/tests/kms_cursor_crc), the first subtest
passes and the rest of the subtests fail - even those that succeed when
run in isolation.

igt_debugfs-DEBUG: Opening debugfs directory '/sys/kernel/debug/dri/0'
igt_core-INFO: Timed out: Opening crc fd, and poll for first CRC.

During my debugging process, I found two issues that were blocking
execution:

1 - When a subtest fails, it exits and skips the cleaning step, leaving
the pipe_crc allocated and blocked for the next subtest; the following
patch addresses it by releasing any old pipe_crc before creating a new
one.

2 - When the CRC capture process starts, it enters an endless wait; in
the previous version, I thought it was a matter of timing in test using
vkms, but after further investigation, other problems arise in the same
subject and I am dropping the 2nd patch to better solve the problem on
the vkms side.

Changes in v2:
- Rebase 1st patch on master
- Drop the 2nd patch

Melissa Wen (1):
test/kms_cursor_crc: release old pipe_crc before create a new one

tests/kms_cursor_crc.c | 2 ++
1 file changed, 2 insertions(+)

--
2.27.0

Melissa Wen

unread,
Jul 16, 2020, 7:25:28 AM7/16/20
to igt...@lists.freedesktop.org, arkadiu...@intel.com, Rodrigo....@amd.com, rodrigosi...@gmail.com, twoe...@gmail.com, kerne...@googlegroups.com
When a subtest fails, it skips the cleanup, and its pipe_crc remains allocated.
As a consequence, the following subtest also fails (timeout) when trying to
create a new one. This patch releases any remaining pipe_crc to enable the
creation of a new one for the next subtest.

Signed-off-by: Melissa Wen <melis...@gmail.com>
---
tests/kms_cursor_crc.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/tests/kms_cursor_crc.c b/tests/kms_cursor_crc.c
index 7e6b24cc..bc5d4232 100644
--- a/tests/kms_cursor_crc.c
+++ b/tests/kms_cursor_crc.c
@@ -422,6 +422,8 @@ static void prepare_crtc(data_t *data, igt_output_t *output,
igt_display_commit(display);

/* create the pipe_crc object for this pipe */
+ if (data->pipe_crc)
+ igt_pipe_crc_free(data->pipe_crc);
data->pipe_crc = igt_pipe_crc_new(data->drm_fd, data->pipe,
INTEL_PIPE_CRC_SOURCE_AUTO);

--
2.27.0

Arkadiusz Hiler

unread,
Jul 20, 2020, 11:10:32 AM7/20/20
to Melissa Wen, igt...@lists.freedesktop.org, Rodrigo....@amd.com, rodrigosi...@gmail.com, twoe...@gmail.com, kerne...@googlegroups.com
On Thu, Jul 16, 2020 at 08:25:21AM -0300, Melissa Wen wrote:
> When a subtest fails, it skips the cleanup, and its pipe_crc remains allocated.
> As a consequence, the following subtest also fails (timeout) when trying to
> create a new one. This patch releases any remaining pipe_crc to enable the
> creation of a new one for the next subtest.
>
> Signed-off-by: Melissa Wen <melis...@gmail.com>

Reviewed-by: Arkadiusz Hiler <arkadiu...@intel.com>

and merged, thanks!
Reply all
Reply to author
Forward
0 new messages