Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp812149iog; Wed, 15 Jun 2022 12:56:10 -0700 (PDT) X-Google-Smtp-Source: AGRyM1tRd3amRu4vY3j9Z9bKQ2fPHFTat7rL+EAOJJpUYVcjFdB9qn6nLAV3lCMyRKrcdHR7r9TS X-Received: by 2002:a17:906:730f:b0:711:db20:666b with SMTP id di15-20020a170906730f00b00711db20666bmr1253978ejc.763.1655322970583; Wed, 15 Jun 2022 12:56:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1655322970; cv=none; d=google.com; s=arc-20160816; b=EpgxVHshkwMPL7N96fhSWp3FqzmcHQ3qvhlJh6Myr6VAk12BDRXyOpHdD5XF0ZjbV/ /mliB9Jpv0/C+YLOB8B/fyxJC5eFEA5G45bQXuL6gsDKDhf/kOGFPhVR6Gfy706fec2/ Kr+wrsnVA0cfy2MMtqMWIk6XIYqiYOY3G4k6w7D+lMqlWvWqIFwe0Y8dCrnGU/vIN3ho GXnWRU2tDj9MF0naSlsBoFl659zKF5BLx8bzmkxdOMwDICi6Lbu1dYVOApTnkUqbcQQh /LhW6SfFGwverCxt8hW/vYlr4Svn+3pn4SHo7sDk/lwvedKG3uDsxR90mKVUf7alLK5G HIDA== 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:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=7Qb6SH0xrSj5MIpKwdT6FqdKu87C2nKyg2Uc3Hml8l4=; b=GX0fyv8VwExUS46wSLpz05HmlutnGC06+FckwVOIE+Me+BomkbweiEgXGwdPl2mQAm 99VQ0wte7NjoNydQaf0s+fSpS5jjFn27wv9UeO+O1ZLWzJgkDPBvICASCb0yXrNur1sg vzm/NTnZYF6TFdn70ihdsXv4jcRZBXdA6ewrCkfw0TPJ8A2RpMQec8rAw7NxHVjp3lcm pMOpOHYTE5lWK+wGlxTGSIkVMzs37HFpe5rM3IZl32nJr8/y7hxj7peFxFZgnlAdrm5Q bQtym8yVR6v4Vb/a1/fw+bpyYWX8ULbyGxSB57cP3J5LyjPMa4KXOW9wsN9RaA//WExM WBBQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kali.org header.s=google header.b=lM8MaIY7; 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=kali.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ds1-20020a170907724100b007121b9fc6fbsi16540660ejc.956.2022.06.15.12.55.44; Wed, 15 Jun 2022 12:56:10 -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=@kali.org header.s=google header.b=lM8MaIY7; 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=kali.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1357749AbiFOSDe (ORCPT + 99 others); Wed, 15 Jun 2022 14:03:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46960 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1358169AbiFOSDa (ORCPT ); Wed, 15 Jun 2022 14:03:30 -0400 Received: from mail-oi1-x230.google.com (mail-oi1-x230.google.com [IPv6:2607:f8b0:4864:20::230]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4FB3C393CC for ; Wed, 15 Jun 2022 11:03:28 -0700 (PDT) Received: by mail-oi1-x230.google.com with SMTP id bf7so15235546oib.11 for ; Wed, 15 Jun 2022 11:03:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kali.org; s=google; h=message-id:date:mime-version:user-agent:subject:content-language:to :cc:references:from:in-reply-to:content-transfer-encoding; bh=7Qb6SH0xrSj5MIpKwdT6FqdKu87C2nKyg2Uc3Hml8l4=; b=lM8MaIY7gRbog/stSQ7OZbHFt9vsgzGYtaBd7ciHQARVx1bSstLXQ3oVOw/kTrxXVy 4opS8pQhCeKkZQ85OWcxUlswPcaXHm18fIOG/2zbPhbE6IXshQ4iEzW396qsIJ3I7vnP B2NyL7UK2/QYWDSSUSm4KLMbp/u0Q95Q6aMSWirIUZiSdubCj5v39Nl4FSqbzvslZNWB SjI3+G6iW52KVn7011LUEUo2opM5rxVJqu2Df7a1sCC5KR6ehAlP1xQEqPruBeIlrZrV WozfDL0m1on1rO/6qrrtwRa4oBGcOmxOWfWod1VV4ZEi0Uwi7vw61/RtmbtPRHKXZ9dM G5EQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:cc:references:from:in-reply-to :content-transfer-encoding; bh=7Qb6SH0xrSj5MIpKwdT6FqdKu87C2nKyg2Uc3Hml8l4=; b=62EgRXbdNbC3Yjo3CJyusKlfdhkNpR5EqVUPas2B03PS1QVc1m64Qc+bXygyQBH+2h uvEhSkQjQNHpB7BrWGUdDxqQaXBp0ERf4c6D/fvIzV9SSJLzYZxwRKJWPl0YP6BufiWZ nhy7nC/V8SoYXNv9RCqEsVBKTJbMkLqF4vTflJy0rziirAy8jxT77KiGxeaM8JNCFM60 vEQGAA9lLXSsn1J8XXgncT3vDuvjO7r678DZazF0AxKmlReAyKTLMGJQy6B/JhL0ylOf Qfhp3xQjuNqR5VyMOVki5iVLV04P28wCMjWQGDLPKbk2UqeX1ewN1eksIAt++CSPTZPT L5YQ== X-Gm-Message-State: AJIora9rwnLtT8x3k+XftOdZQsJuhJtp8Fy+WycyG0tZpW0FlwxUUeFv CR4ii8ywa9d6o5iZtMgbbGiG1w== X-Received: by 2002:aca:ebcd:0:b0:32e:d6c3:5978 with SMTP id j196-20020acaebcd000000b0032ed6c35978mr475048oih.224.1655316207110; Wed, 15 Jun 2022 11:03:27 -0700 (PDT) Received: from [192.168.11.16] (cpe-173-173-107-246.satx.res.rr.com. [173.173.107.246]) by smtp.gmail.com with ESMTPSA id el40-20020a056870f6a800b000f32c6b6871sm7624745oab.10.2022.06.15.11.03.25 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 15 Jun 2022 11:03:26 -0700 (PDT) Message-ID: <9ff7adc6-570f-8089-c93d-b10fcafc02b6@kali.org> Date: Wed, 15 Jun 2022 13:03:24 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.10.0 Subject: Re: [PATCH 2/2] drm/msm: Don't overwrite hw fence in hw_init Content-Language: en-US To: Rob Clark , dri-devel@lists.freedesktop.org Cc: freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, Rob Clark , Abhinav Kumar , Dmitry Baryshkov , Sean Paul , David Airlie , Daniel Vetter , Akhil P Oommen , Jonathan Marek , =?UTF-8?Q?Christian_K=c3=b6nig?= , Dan Carpenter , open list References: <20220615150107.2969593-1-robdclark@gmail.com> <20220615150107.2969593-2-robdclark@gmail.com> From: Steev Klimaszewski In-Reply-To: <20220615150107.2969593-2-robdclark@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-3.3 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable 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 6/15/22 10:01 AM, Rob Clark wrote: > From: Rob Clark > > Prior to the last commit, this could result in setting the GPU > written fence value back to an older value, if we had missed > updating completed_fence prior to suspend. This was mostly > harmless as the GPU would eventually overwrite it again with > the correct value. But we should just not do this. Instead > just leave a sanity check that the fence looks plausible (in > case the GPU scribbled on memory). > > Reported-by: Steev Klimaszewski > Fixes: 95d1deb02a9c ("drm/msm/gem: Add fenced vma unpin") > Signed-off-by: Rob Clark > --- > drivers/gpu/drm/msm/adreno/adreno_gpu.c | 11 ++++++++--- > drivers/gpu/drm/msm/msm_gpu.c | 2 +- > 2 files changed, 9 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/adreno/adreno_gpu.c > index e1aef4875e2f..dd044d557c7c 100644 > --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c > +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c > @@ -498,10 +498,15 @@ int adreno_hw_init(struct msm_gpu *gpu) > > ring->cur = ring->start; > ring->next = ring->start; > - > - /* reset completed fence seqno: */ > - ring->memptrs->fence = ring->fctx->completed_fence; > ring->memptrs->rptr = 0; > + > + /* Detect and clean up an impossible fence, ie. if GPU managed > + * to scribble something invalid, we don't want that to confuse > + * us into mistakingly believing that submits have completed. > + */ > + if (fence_before(ring->fctx->last_fence, ring->memptrs->fence)) { > + ring->memptrs->fence = ring->fctx->last_fence; > + } > } > > return 0; > diff --git a/drivers/gpu/drm/msm/msm_gpu.c b/drivers/gpu/drm/msm/msm_gpu.c > index b61078f0cd0f..8c00f9187c03 100644 > --- a/drivers/gpu/drm/msm/msm_gpu.c > +++ b/drivers/gpu/drm/msm/msm_gpu.c > @@ -430,7 +430,7 @@ static void recover_worker(struct kthread_work *work) > * one more to clear the faulting submit > */ > if (ring == cur_ring) > - fence++; > + ring->memptrs->fence = ++fence; > > msm_update_fence(ring->fctx, fence); > } Tested on the Lenovo Yoga C630 Tested-by: Steev Klimaszewski