From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, HK_RANDOM_FROM,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8D108C35247 for ; Tue, 4 Feb 2020 16:24:48 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 692A32082E for ; Tue, 4 Feb 2020 16:24:48 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 692A32082E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 9AB486F3E2; Tue, 4 Feb 2020 16:24:47 +0000 (UTC) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8D4396F3E2 for ; Tue, 4 Feb 2020 16:24:45 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 04 Feb 2020 08:24:44 -0800 X-IronPort-AV: E=Sophos;i="5.70,402,1574150400"; d="scan'208";a="224345820" Received: from aabader-mobl1.ccr.corp.intel.com (HELO [10.252.21.249]) ([10.252.21.249]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/AES256-SHA; 04 Feb 2020 08:24:43 -0800 To: Chris Wilson , intel-gfx@lists.freedesktop.org References: <20200204152456.1137083-1-chris@chris-wilson.co.uk> <20200204161916.1299225-1-chris@chris-wilson.co.uk> From: Tvrtko Ursulin Organization: Intel Corporation UK Plc Message-ID: Date: Tue, 4 Feb 2020 16:24:42 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: <20200204161916.1299225-1-chris@chris-wilson.co.uk> Content-Language: en-US Subject: Re: [Intel-gfx] [PATCH i-g-t v2] i915/gem_ctx_exec: Cover all engines for nohangcheck X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: igt-dev@lists.freedsktop.org Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" On 04/02/2020 16:19, Chris Wilson wrote: > No engine can be missed when verifying that a rogue user cannot cause a > denial-of-service with nohangcheck. > > Signed-off-by: Chris Wilson > Cc: Tvrtko Ursulin > --- > __for_each_physical_engine, keep the leaks > --- > tests/i915/gem_ctx_exec.c | 38 ++++++++++++++++++++++++++++++++------ > 1 file changed, 32 insertions(+), 6 deletions(-) > > diff --git a/tests/i915/gem_ctx_exec.c b/tests/i915/gem_ctx_exec.c > index b1ae65774..aeb8d2976 100644 > --- a/tests/i915/gem_ctx_exec.c > +++ b/tests/i915/gem_ctx_exec.c > @@ -42,6 +42,7 @@ > > #include "igt_dummyload.h" > #include "igt_sysfs.h" > +#include "sw_sync.h" > > IGT_TEST_DESCRIPTION("Test context batch buffer execution."); > > @@ -203,9 +204,9 @@ static bool __enable_hangcheck(int dir, bool state) > > static void nohangcheck_hostile(int i915) > { > - int64_t timeout = NSEC_PER_SEC / 2; > - igt_spin_t *spin; > + const struct intel_execution_engine2 *e; > igt_hang_t hang; > + int fence = -1; > uint32_t ctx; > int err = 0; > int dir; > @@ -215,6 +216,8 @@ static void nohangcheck_hostile(int i915) > * we forcibly terminate that context. > */ > > + i915 = gem_reopen_driver(i915); > + > dir = igt_sysfs_open_parameters(i915); > igt_require(dir != -1); > > @@ -223,16 +226,35 @@ static void nohangcheck_hostile(int i915) > > igt_require(__enable_hangcheck(dir, false)); > > - spin = igt_spin_new(i915, ctx, .flags = IGT_SPIN_NO_PREEMPTION); > + __for_each_physical_engine(i915, e) { > + igt_spin_t *spin; > + > + spin = igt_spin_new(i915, ctx, > + .engine = e->flags, > + .flags = (IGT_SPIN_NO_PREEMPTION | > + IGT_SPIN_FENCE_OUT)); > + > + igt_assert(spin->out_fence != -1); > + if (fence < 0) { > + fence = spin->out_fence; > + spin->out_fence = -1; > + } else { > + int new; > + > + new = sync_fence_merge(fence, spin->out_fence); > + close(fence); > + > + fence = new; > + } > + } > gem_context_destroy(i915, ctx); > + igt_assert(fence != -1); > > - if (gem_wait(i915, spin->handle, &timeout)) { > + if (sync_fence_wait(fence, MSEC_PER_SEC / 2)) { > igt_debugfs_dump(i915, "i915_engine_info"); > err = -ETIME; > } > > - igt_spin_free(i915, spin); > - > __enable_hangcheck(dir, true); > gem_quiescent_gpu(i915); > igt_disallow_hang(i915, hang); > @@ -240,7 +262,11 @@ static void nohangcheck_hostile(int i915) > igt_assert_f(err == 0, > "Hostile unpreemptable context was not cancelled immediately upon closure\n"); > > + igt_assert_eq(sync_fence_status(fence), -EIO); > + close(fence); > + > close(dir); > + close(i915); > } > > igt_main > Reviewed-by: Tvrtko Ursulin Regards, Tvrtko _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx