From patchwork Thu Aug 3 17:27:32 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Vetter X-Patchwork-Id: 9879539 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 23DF2603B4 for ; Thu, 3 Aug 2017 17:28:28 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 16D7A28458 for ; Thu, 3 Aug 2017 17:28:28 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 05EC12891F; Thu, 3 Aug 2017 17:28:28 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 749E128915 for ; Thu, 3 Aug 2017 17:28:26 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 0E9DD6E241; Thu, 3 Aug 2017 17:27:43 +0000 (UTC) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mail-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 838F56E241 for ; Thu, 3 Aug 2017 17:27:40 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id t138so2980806wmt.4 for ; Thu, 03 Aug 2017 10:27:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Al6xQYnKnEBVwN6lmgp+DjvNYvPFGwYZvXKt0WFdQFc=; b=ZbQOqHYVrF688A98W0uSyDROjguF1Jf0rHEAfJdMm/OAYjr8ASc/wpxE3kMjVgP4lX 8pbRdRfJI1Bo6UlIz4R5etX1bEvq+fgdmLZk28o0crYrk9LTjBL0q/5EuxDP3iNpbYBn H37AuDYSmrLR7riuW2zPMvN9s6C3GPW8FeWQ8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Al6xQYnKnEBVwN6lmgp+DjvNYvPFGwYZvXKt0WFdQFc=; b=WR1J/TyZc7gi0FTYpXNpJa0d7bzeSaORO/v6VXBk8IknlWBzKamX8qg/ahb3O00gcZ j7hf5QV1iyBujBOkIDRY1LmxVMq4PHsotqOWgX1Ho1zfcfX2llj/uOZywTLPO7ROGvYL YZ1lKqdDPjVjUV9u3RF8NgGcU9bPOmhdOYC17d7J4MgOQ1Wqxp7QkkEVMW+9OWD75pR9 E5pDQ/ewwf18ClADckaNLqWcQBDwDP36Wjeofqqy038UHQX6+Ogfy/Ax6ePRA/dZHxDL pxEWDqWCyOAbborAeGis/abpW1LbFpiQv2ljN0uXcct6YxVZ3YcOe1TmodmHGUwbCsUs tokA== X-Gm-Message-State: AIVw113QeRqX0FLTwTGFlfT+XksSUqOf0Q2IBy27Q1eZtF9ps4QQqDRN 8LfHSrB3ciwnRBWpc5U= X-Received: by 10.80.147.197 with SMTP id o63mr48808eda.194.1501781258751; Thu, 03 Aug 2017 10:27:38 -0700 (PDT) Received: from wespe.ffwll.local ([2a02:168:5640:0:6631:50ff:fe8d:fd2e]) by smtp.gmail.com with ESMTPSA id r19sm1254087edb.45.2017.08.03.10.27.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 03 Aug 2017 10:27:38 -0700 (PDT) From: Daniel Vetter To: Intel Graphics Development Date: Thu, 3 Aug 2017 19:27:32 +0200 Message-Id: <1501781252-8226-1-git-send-email-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.5.5 In-Reply-To: <20170803120529.27300-1-daniel.vetter@ffwll.ch> References: <20170803120529.27300-1-daniel.vetter@ffwll.ch> Cc: Daniel Vetter , Daniel Vetter Subject: [Intel-gfx] [PATCH i-g-t] tests/kms_busy: Only test against one engine X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" X-Virus-Scanned: ClamAV using ClamSMTP Back when we used cs flips it made sense to go through different engines, since a buffer busy on an engine that we couldnt' use for cs flipping ended up in different paths. But with atomic we use a worker for all flips, and going through the combinatorial growth of engines just wastes precious machine time. More so the more modern the platform is. Of course gem tests should still do some diagonal testing across all engines, but the kms side can afford to be a bit cheaper. v2: Make it compile. Oops. Also make sure we don't break fast-feedback.testlist. Adding a mode where we depend upon all engines isn't really possible, because there's only 1 exclusive fence and that's the only thing a flip waits for. Cc: Chris Wilson Cc: Maarten Lankhorst Cc: Arkadiusz Hiler Acked-by: Maarten Lankhorst Signed-off-by: Daniel Vetter Reviewed-by: Arkadiusz Hiler --- tests/intel-ci/fast-feedback.testlist | 6 +- tests/kms_busy.c | 109 +++++++++++++++++----------------- 2 files changed, 56 insertions(+), 59 deletions(-) diff --git a/tests/intel-ci/fast-feedback.testlist b/tests/intel-ci/fast-feedback.testlist index 02a222f2fe64..79160624f820 100644 --- a/tests/intel-ci/fast-feedback.testlist +++ b/tests/intel-ci/fast-feedback.testlist @@ -196,9 +196,9 @@ igt@kms_addfb_basic@unused-handle igt@kms_addfb_basic@unused-modifier igt@kms_addfb_basic@unused-offsets igt@kms_addfb_basic@unused-pitches -igt@kms_busy@basic-flip-default-a -igt@kms_busy@basic-flip-default-b -igt@kms_busy@basic-flip-default-c +igt@kms_busy@basic-flip-a +igt@kms_busy@basic-flip-b +igt@kms_busy@basic-flip-c igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy igt@kms_cursor_legacy@basic-flip-after-cursor-atomic diff --git a/tests/kms_busy.c b/tests/kms_busy.c index af7335db0d11..16ab89191f5b 100644 --- a/tests/kms_busy.c +++ b/tests/kms_busy.c @@ -309,7 +309,8 @@ static void test_pageflip_modeset_hang(igt_display_t *dpy, igt_main { igt_display_t display = { .drm_fd = -1, .n_pipes = IGT_MAX_PIPES }; - const struct intel_execution_engine *e; + /* we only test on render */ + const struct intel_execution_engine *e = &intel_execution_engines[1]; igt_skip_on_simulation(); @@ -333,82 +334,78 @@ igt_main igt_skip_on(n >= display.n_pipes); } - for (e = intel_execution_engines; e->name; e++) { - igt_subtest_f("%sflip-%s-%s", - e->exec_id == 0 ? "basic-" : "", - e->name, kmstest_pipe_name(n)) { + igt_subtest_f("basic-flip-%s", + kmstest_pipe_name(n)) { + igt_require(gem_has_ring(display.drm_fd, + e->exec_id | e->flags)); + + test_flip(&display, e->exec_id | e->flags, n, false); + } + igt_subtest_f("basic-modeset-%s", + e->name, kmstest_pipe_name(n)) { + igt_require(gem_has_ring(display.drm_fd, + e->exec_id | e->flags)); + + test_flip(&display, e->exec_id | e->flags, n, true); + } + + igt_subtest_group { + igt_hang_t hang; + + igt_fixture { igt_require(gem_has_ring(display.drm_fd, e->exec_id | e->flags)); - test_flip(&display, e->exec_id | e->flags, n, false); + hang = igt_allow_hang(display.drm_fd, 0, 0); } - igt_subtest_f("%smodeset-%s-%s", - e->exec_id == 0 ? "basic-" : "", + + igt_subtest_f("extended-pageflip-modeset-hang-oldfb-%s-%s", e->name, kmstest_pipe_name(n)) { igt_require(gem_has_ring(display.drm_fd, e->exec_id | e->flags)); - test_flip(&display, e->exec_id | e->flags, n, true); + test_pageflip_modeset_hang(&display, e->exec_id | e->flags, n); } - igt_subtest_group { - igt_hang_t hang; - - igt_fixture { - igt_require(gem_has_ring(display.drm_fd, - e->exec_id | e->flags)); + igt_fixture + igt_require(display.is_atomic); - hang = igt_allow_hang(display.drm_fd, 0, 0); - } + igt_subtest_f("extended-pageflip-hang-oldfb-%s-%s", + e->name, kmstest_pipe_name(n)) + test_hang(&display, e->exec_id | e->flags, n, false, false); - igt_subtest_f("extended-pageflip-modeset-hang-oldfb-%s-%s", - e->name, kmstest_pipe_name(n)) { - igt_require(gem_has_ring(display.drm_fd, - e->exec_id | e->flags)); + igt_subtest_f("extended-pageflip-hang-newfb-%s-%s", + e->name, kmstest_pipe_name(n)) + test_hang(&display, e->exec_id | e->flags, n, false, true); - test_pageflip_modeset_hang(&display, e->exec_id | e->flags, n); - } + igt_subtest_f("extended-modeset-hang-oldfb-%s-%s", + e->name, kmstest_pipe_name(n)) + test_hang(&display, e->exec_id | e->flags, n, true, false); - igt_fixture - igt_require(display.is_atomic); + igt_subtest_f("extended-modeset-hang-newfb-%s-%s", + e->name, kmstest_pipe_name(n)) + test_hang(&display, e->exec_id | e->flags, n, true, true); - igt_subtest_f("extended-pageflip-hang-oldfb-%s-%s", - e->name, kmstest_pipe_name(n)) - test_hang(&display, e->exec_id | e->flags, n, false, false); - - igt_subtest_f("extended-pageflip-hang-newfb-%s-%s", - e->name, kmstest_pipe_name(n)) - test_hang(&display, e->exec_id | e->flags, n, false, true); - - igt_subtest_f("extended-modeset-hang-oldfb-%s-%s", - e->name, kmstest_pipe_name(n)) - test_hang(&display, e->exec_id | e->flags, n, true, false); - - igt_subtest_f("extended-modeset-hang-newfb-%s-%s", - e->name, kmstest_pipe_name(n)) - test_hang(&display, e->exec_id | e->flags, n, true, true); - - igt_subtest_f("extended-modeset-hang-oldfb-with-reset-%s-%s", - e->name, kmstest_pipe_name(n)) { - igt_set_module_param_int("force_reset_modeset_test", 1); + igt_subtest_f("extended-modeset-hang-oldfb-with-reset-%s-%s", + e->name, kmstest_pipe_name(n)) { + igt_set_module_param_int("force_reset_modeset_test", 1); - test_hang(&display, e->exec_id | e->flags, n, true, false); + test_hang(&display, e->exec_id | e->flags, n, true, false); - igt_set_module_param_int("force_reset_modeset_test", 0); - } + igt_set_module_param_int("force_reset_modeset_test", 0); + } - igt_subtest_f("extended-modeset-hang-newfb-with-reset-%s-%s", - e->name, kmstest_pipe_name(n)) { - igt_set_module_param_int("force_reset_modeset_test", 1); + igt_subtest_f("extended-modeset-hang-newfb-with-reset-%s-%s", + e->name, kmstest_pipe_name(n)) { + igt_set_module_param_int("force_reset_modeset_test", 1); - test_hang(&display, e->exec_id | e->flags, n, true, true); + test_hang(&display, e->exec_id | e->flags, n, true, true); - igt_set_module_param_int("force_reset_modeset_test", 0); - } + igt_set_module_param_int("force_reset_modeset_test", 0); + } - igt_fixture { - igt_disallow_hang(display.drm_fd, hang); - } + igt_fixture { + igt_disallow_hang(display.drm_fd, hang); } } }