Received: by 2002:ad5:4acb:0:0:0:0:0 with SMTP id n11csp4230518imw; Thu, 7 Jul 2022 15:10:39 -0700 (PDT) X-Google-Smtp-Source: AGRyM1tx2fz4GFi+AFkTzr6bPp07M6LlqVhN3Dn+LRZv/bUxksO61SUj7/IvNPVGyTFrpQiBKRi1 X-Received: by 2002:a63:b21:0:b0:3fd:f319:dd6c with SMTP id 33-20020a630b21000000b003fdf319dd6cmr267741pgl.168.1657231839185; Thu, 07 Jul 2022 15:10:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1657231839; cv=none; d=google.com; s=arc-20160816; b=Ra59CHEu1bzc6GiIi/64waPNce5l0seB0pqdllYOxhvTEu39dsIsPuvCzf8RRlgYWP 4KDmNXHvOMD7yXX2OW6eFOwKz9LJ+zESSlZW+Xy5BrNb1wOEa5+avM+zmZR14xyHXtjf Na7BBz0ZKOjPuB9JPXLZVEditKKjfGmX8Q3PAkhYRgJXQJU6ocDkOOUSDoYMVop7rmwu b3QP0BI/Nc2+VJsFS9mHNA7wiiaXclgFdJDYO8G+GsTx2w0HpCArH6PwGannAKK4TRjC b2zVWlbXfDr+5PKnbZTfmYLC5yI5QD8UChGDy/Y9AliXflUHnvqG45VDNBJDpTC6EGi8 67oA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to :organization:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:dkim-signature; bh=Dp85ouWie1M9T9C5BerE/9GaPtzMUMiX6qYXNlR7djQ=; b=Ndgoq4Vf1jzcV4ztDdL1GVzX/ncYA7HYqE9jlj4HOHEGp9DjBlV9pXphwUWOsPuJgD AwR688BO0v+8pv06gBBLrfbUMDp5Zc7rdP0bjFKLfArhdW6a61XMjii41P+zwyjkvt2X g/1qWxuhavbpNMi/ltp08ktKx7cCgUBSqjFW70JcCxDw6tqM2fhVOVPCnNjiWClGAKRA Zk2liezf6YvnYS+rpGJNFASXmH4tPEFMFb4YElCM7bpn9fXqS//2HkE9alt1b5EbbDJs 5woQT5wUJ3axIFluCOz940BCGG4ViJidLxnv5eJUzwG1QUnpgNJJyLMiwK3VGjR6bm3E Sr3A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@intel.com header.s=Intel header.b=CfhCZ9Lq; 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=intel.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id x10-20020a63170a000000b0040c25d6612fsi27091869pgl.335.2022.07.07.15.10.24; Thu, 07 Jul 2022 15:10:39 -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=pass header.i=@intel.com header.s=Intel header.b=CfhCZ9Lq; 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=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236771AbiGGV20 (ORCPT + 99 others); Thu, 7 Jul 2022 17:28:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39926 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236282AbiGGV2Z (ORCPT ); Thu, 7 Jul 2022 17:28:25 -0400 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 89BFA2E6BE; Thu, 7 Jul 2022 14:28:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1657229303; x=1688765303; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=7/TlorJDQoNGY2gktJY2UhvNcAgpTuh1cVKPBgUm+/0=; b=CfhCZ9LqCuvVIpi6GjX1PeYMalrX6YIcLI9Es7tObjgKl0/6971KvKuL 3+Dq8+W/OZLa1U+x+yyjKjhcI3MxpTpOnUbvLqBo4XxqOTLyZAn3QE3Jb qr/TFIjpex8S8CKI66qJg22TeHEjCZfF7/S2IXBFWhrXA/c+/F8krGMhN QuSCmqj6My8a3tH49vBPV0kJkX0kVEh2TgdRYxps0twfTz06gZtCRE/ep IY8rlMLJqjU526v3AhZImFhVD4Q0/955BjrVm06ASM3YLScOk2zDyf5PV NkMoTqjPk9g+PBgy3upjzEgjPXYkqtS+iasQhN1sWzje32W/AFQK3H56n w==; X-IronPort-AV: E=McAfee;i="6400,9594,10401"; a="281674719" X-IronPort-AV: E=Sophos;i="5.92,253,1650956400"; d="scan'208";a="281674719" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Jul 2022 14:28:23 -0700 X-IronPort-AV: E=Sophos;i="5.92,253,1650956400"; d="scan'208";a="651297397" Received: from ahajda-mobl.ger.corp.intel.com (HELO [10.213.16.170]) ([10.213.16.170]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Jul 2022 14:28:20 -0700 Message-ID: <70a63b2e-23f5-9bf8-f782-5941f5cd01fc@intel.com> Date: Thu, 7 Jul 2022 23:28:18 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0 Thunderbird/91.11.0 Subject: Re: [Intel-gfx] [PATCH v3 2/2] drm/i915/gt: Serialize TLB invalidates with GT resets Content-Language: en-US To: Mauro Carvalho Chehab Cc: Andi Shyti , =?UTF-8?Q?Thomas_Hellstr=c3=b6m?= , David Airlie , dri-devel@lists.freedesktop.org, Lucas De Marchi , linux-kernel@vger.kernel.org, Chris Wilson , Rodrigo Vivi , Dave Airlie , stable@vger.kernel.org, intel-gfx@lists.freedesktop.org References: <3ecc1f94290a66b2e682f956b5232b4903c32a2c.1656921701.git.mchehab@kernel.org> From: Andrzej Hajda Organization: Intel Technology Poland sp. z o.o. - ul. Slowackiego 173, 80-298 Gdansk - KRS 101882 - NIP 957-07-52-316 In-Reply-To: <3ecc1f94290a66b2e682f956b5232b4903c32a2c.1656921701.git.mchehab@kernel.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.8 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A, RCVD_IN_DNSWL_HI,SPF_HELO_NONE,SPF_NONE,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 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 04.07.2022 10:09, Mauro Carvalho Chehab wrote: > From: Chris Wilson > > Avoid trying to invalidate the TLB in the middle of performing an > engine reset, as this may result in the reset timing out. Currently, > the TLB invalidate is only serialised by its own mutex, forgoing the > uncore lock, but we can take the uncore->lock as well to serialise > the mmio access, thereby serialising with the GDRST. > > Tested on a NUC5i7RYB, BIOS RYBDWi35.86A.0380.2019.0517.1530 with > i915 selftest/hangcheck. > > Cc: stable@vger.kernel.org # Up to 4.4 > Fixes: 7938d61591d3 ("drm/i915: Flush TLBs before releasing backing store") > Reported-by: Mauro Carvalho Chehab > Tested-by: Mauro Carvalho Chehab > Reviewed-by: Mauro Carvalho Chehab > Cc: Chris Wilson > Cc: Tvrtko Ursulin > Cc: Thomas Hellström > Cc: Andi Shyti > Signed-off-by: Mauro Carvalho Chehab Reviewed-by: Andrzej Hajda Regards Andrzej > --- > > To avoid mailbombing on a large number of people, only mailing lists were C/C on the cover. > See [PATCH v3 0/2] at: https://lore.kernel.org/all/cover.1656921701.git.mchehab@kernel.org/ > > drivers/gpu/drm/i915/gt/intel_gt.c | 15 ++++++++++++++- > 1 file changed, 14 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/gt/intel_gt.c b/drivers/gpu/drm/i915/gt/intel_gt.c > index 8da3314bb6bf..68c2b0d8f187 100644 > --- a/drivers/gpu/drm/i915/gt/intel_gt.c > +++ b/drivers/gpu/drm/i915/gt/intel_gt.c > @@ -952,6 +952,20 @@ void intel_gt_invalidate_tlbs(struct intel_gt *gt) > mutex_lock(>->tlb_invalidate_lock); > intel_uncore_forcewake_get(uncore, FORCEWAKE_ALL); > > + spin_lock_irq(&uncore->lock); /* serialise invalidate with GT reset */ > + > + for_each_engine(engine, gt, id) { > + struct reg_and_bit rb; > + > + rb = get_reg_and_bit(engine, regs == gen8_regs, regs, num); > + if (!i915_mmio_reg_offset(rb.reg)) > + continue; > + > + intel_uncore_write_fw(uncore, rb.reg, rb.bit); > + } > + > + spin_unlock_irq(&uncore->lock); > + > for_each_engine(engine, gt, id) { > /* > * HW architecture suggest typical invalidation time at 40us, > @@ -966,7 +980,6 @@ void intel_gt_invalidate_tlbs(struct intel_gt *gt) > if (!i915_mmio_reg_offset(rb.reg)) > continue; > > - intel_uncore_write_fw(uncore, rb.reg, rb.bit); > if (__intel_wait_for_register_fw(uncore, > rb.reg, rb.bit, 0, > timeout_us, timeout_ms,