Received: by 2002:ad5:4acb:0:0:0:0:0 with SMTP id n11csp3056024imw; Mon, 11 Jul 2022 00:17:28 -0700 (PDT) X-Google-Smtp-Source: AGRyM1sBYjNjCkml8hnxTj2WuRRhD5/GNfT2/zgYRuN4eywpWInPT93A6Oaq6XCa3/SNt+cy+kbY X-Received: by 2002:a05:6402:430a:b0:43a:9ece:d6f8 with SMTP id m10-20020a056402430a00b0043a9eced6f8mr22923310edc.361.1657523848513; Mon, 11 Jul 2022 00:17:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1657523848; cv=none; d=google.com; s=arc-20160816; b=Xomr3pTM+scAebfOFeWr8IjwIZtEhRWULeECTquvDALKRjrQFSS1mkf6Et89uYBWpM bIOWat712yAGUmtehJ5L/REs8fXrpRHTI4MiVtjQS3qlgNcBBruS1C4rQkbZKQaQntWg SH62rHKZECU/Sg2lINbw6+4fewibqyJyzqN2cgqSiI25Rsf+mVltuKApshSj9B31O307 LSCkrDwPuduJTVlgDuhoUVL0byjAdJOKYQpggc8jFSzuxnwVssEfef8PGIUFws4esj8b 9oxVkZyRmlSvB5cg1oFYXlTbCon77MGbYKIBsiHJE/8Qjvh8uXWQNAEyRvU1zSU8HBE5 nBwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:to:content-transfer-encoding:mime-version :message-id:date:subject:cc:from:dkim-signature; bh=CubHpat7xdAny19QKxt5b6N54/veGg2EdJ1Xm6AoqyM=; b=LAYf5IgPhXxa8p7n/c51rd2SgnFrUOazuzx52gF3Jd7FfPyAGDnixphQeezj0ONKJH /EV0fnpa40VPiwuoccqU7PI4ND8xRBZaoqUDHiKwnfQ3lLkESff/Uz2akgLKfz+zhdJP axc/Pqhe+sBtMNlyZEbSjytrTYhpjPhmHRkW2NeVqXZbqBjqSduiFaB44UfTlfaetkRk r98HnjZiJir4nYY1Hgh0DqB2wK0RHPWeJZl/NBxq7/+WSOck/P1AepV3Xrbc2DQTL2c9 4gQFSySeu5rgMv31gMzxUloOiB8bb4hBkd3uDhKkLt/bzV/r39BGdfYq4+eMPANNbIL5 eP8Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@kernel.org header.s=k20201202 header.b=FFfWchpr; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id m17-20020a056402431100b004359f8055e3si11372616edc.4.2022.07.11.00.17.04; Mon, 11 Jul 2022 00:17:28 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@kernel.org header.s=k20201202 header.b=FFfWchpr; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229517AbiGKGur (ORCPT + 99 others); Mon, 11 Jul 2022 02:50:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45604 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229542AbiGKGun (ORCPT ); Mon, 11 Jul 2022 02:50:43 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E066815830 for ; Sun, 10 Jul 2022 23:50:42 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 73DE961227 for ; Mon, 11 Jul 2022 06:50:42 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C91F9C341CA; Mon, 11 Jul 2022 06:50:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1657522241; bh=cnnoERE40MzPqtV3EZkAATxMqve/pI3Cp9fa58cSCT0=; h=From:To:Cc:Subject:Date:From; b=FFfWchprdS4RQkRLDDQ/+Yj4CSCqm2ic4fFvcRJ2gxj6UaMN8OUrJD2axK+OHajVY +34EGByFAlDNuHT7JVyR6nnkbXeDzGquE4nN8KbnWDyBmqdvvVCdz6edpnU7jLPTmU 3qQHKLXAgAAdQuVC8n9rF3VrdMxyczQ+6uD7sAlfeWWiXwyuLs5Bbi1S0IZWn4aWFs 4S7BPgOOTjGPAMTU9YGIFghDO69ueZsuEfPeyX4xQ/ScWQzplHxSp9wNgGQQsw+kIx fUmHihhZArFxLTXJTGobNJ56ZawO4YMksPIled6ak1WOIZybFpCOd/HCKaU/Mk00fm jeAgOXlWxvMcw== Received: from mchehab by mail.kernel.org with local (Exim 4.95) (envelope-from ) id 1oAnFe-004a3J-FA; Mon, 11 Jul 2022 07:50:38 +0100 From: Mauro Carvalho Chehab Cc: Mauro Carvalho Chehab , Tvrtko Ursulin , Andi Shyti , Bruce Chang , Chris Wilson , Daniel Vetter , Daniele Ceraolo Spurio , Dave Airlie , David Airlie , Jani Nikula , John Harrison , Joonas Lahtinen , Lucas De Marchi , Matt Roper , Matthew Brost , Rodrigo Vivi , Tejas Upadhyay , Umesh Nerlige Ramappa , dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org Subject: [PATCH v4 0/2] Fix TLB invalidate issues with Broadwell Date: Mon, 11 Jul 2022 07:50:35 +0100 Message-Id: X-Mailer: git-send-email 2.36.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.7 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org i915 selftest hangcheck is causing the i915 driver timeouts, as reported by Intel CI bot: http://gfx-ci.fi.intel.com/cibuglog-ng/issuefilterassoc/24297?query_key=42a999f48fa6ecce068bc8126c069be7c31153b4 When such test runs, the only output is: [ 68.811639] i915: Performing live selftests with st_random_seed=0xe138eac7 st_timeout=500 [ 68.811792] i915: Running hangcheck [ 68.811859] i915: Running intel_hangcheck_live_selftests/igt_hang_sanitycheck [ 68.816910] i915 0000:00:02.0: [drm] Cannot find any crtc or sizes [ 68.841597] i915: Running intel_hangcheck_live_selftests/igt_reset_nop [ 69.346347] igt_reset_nop: 80 resets [ 69.362695] i915: Running intel_hangcheck_live_selftests/igt_reset_nop_engine [ 69.863559] igt_reset_nop_engine(rcs0): 709 resets [ 70.364924] igt_reset_nop_engine(bcs0): 903 resets [ 70.866005] igt_reset_nop_engine(vcs0): 659 resets [ 71.367934] igt_reset_nop_engine(vcs1): 549 resets [ 71.869259] igt_reset_nop_engine(vecs0): 553 resets [ 71.882592] i915: Running intel_hangcheck_live_selftests/igt_reset_idle_engine [ 72.383554] rcs0: Completed 16605 idle resets [ 72.884599] bcs0: Completed 18641 idle resets [ 73.385592] vcs0: Completed 17517 idle resets [ 73.886658] vcs1: Completed 15474 idle resets [ 74.387600] vecs0: Completed 17983 idle resets [ 74.387667] i915: Running intel_hangcheck_live_selftests/igt_reset_active_engine [ 74.889017] rcs0: Completed 747 active resets [ 75.174240] intel_engine_reset(bcs0) failed, err:-110 [ 75.174301] bcs0: Completed 525 active resets After that, the machine just silently hangs. Bisecting the issue, the patch that introduced the regression is: 7938d61591d3 ("drm/i915: Flush TLBs before releasing backing store") Reverting it fix the issues, but introduce other problems, as TLB won't be invalidated anymore. So, instead, let's fix the root cause. It turns that the TLB flush logic ends conflicting with i915 reset, which is called during selftest hangcheck. So, the TLB cache should be serialized together with i915 reset. Tested on an Intel NUC5i7RYB with an i7-5557U Broadwell CPU. v4: - No functional changes. All changes are at the patch descriptions: - collected acked-by/reviewed-by; - use the same e-mail on Author and SoB on patch 1. v3: - Removed the logic that would check if the engine is awake before doing TLB flush invalidation as backporting PM logic up to Kernel 4.x could be too painful. After getting this one merged, I'll submit a separate patch with the PM awake logic. v2: - Reduced to bare minimum fixes, as this shoud be backported deeply into stable. Chris Wilson (2): drm/i915/gt: Serialize GRDOM access between multiple engine resets drm/i915/gt: Serialize TLB invalidates with GT resets drivers/gpu/drm/i915/gt/intel_gt.c | 15 ++++++++++- drivers/gpu/drm/i915/gt/intel_reset.c | 37 ++++++++++++++++++++------- 2 files changed, 42 insertions(+), 10 deletions(-) -- 2.36.1