Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp5005237pxj; Wed, 12 May 2021 19:10:30 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwIbjbUOTMFmoi96Q5fUpBR3dhWg1EHri+aDXUHKVfao2cs4dz95fBmvZ+KxdBSac2YeAIS X-Received: by 2002:a17:906:52d7:: with SMTP id w23mr41821342ejn.451.1620871830425; Wed, 12 May 2021 19:10:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620871830; cv=none; d=google.com; s=arc-20160816; b=IHDtkULGlXYqQb7fS2WhzJQ3v61U++F0il+uyXKv/eagdhpMbdHqwxsgiKlJDs3ZKH z+Kj/VcfeKPiXpAX0wmjooHd5LazaxyZcTl1hsxlds6KwDZAI2hsd12MYFQsb0fHWmRN JeXIdVNvLyfMeFutnEm3xDQff3qtE5S/NMDaWWn1VPcL91aduC5rfgMcJOpygVOE/A9C Ae+wuyc5Y97oG0VvmzhGipcfkqWl+0pqjtSOsiAKWEELUx9IYns6HEyruBONddnTWdhV LgAFuAfoILU1Xuj2ZyqoLZJ5WGLOJtw/dPJezB2t7GXFmHX1Ov30fpsncFRzRRB95GUm Xm4w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject; bh=zRu0qzsNb0+Ces0thrVErNftcXNVadITz8pKdlgnuJI=; b=PYgBoDBYxjMHj6fmfQEajSKD6m/WuXjLdKkoiK4zvs3N8RYcuYqFfa0hLbigifcpPM PBCgX8IMDXnOV5fTfw2GHzXngNrWaipuQo7ZfYRcRlV5VM5auJ7wMAsPMfSQ9+D7x+xU 3rm356JQL/tXnIpHN7JR5++NYypsV7XUR9qj1EPNe+vBbV2mc3xbuC049nF9VFI6U4CA iKFaWrOqmxSFXcpEJEKzyTQVaYVOOQllWAtjUPIlF/jU+bRdbx87lTA+OwGrLWXezTgY +rmgb0QN1Yyq2wBn/yiJmxIi05D/G0y8PAS8Ez8KOjVPF7D1Js7eVswk7epj7xXjMM32 YHng== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=huawei.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id p88si1414550edd.69.2021.05.12.19.10.07; Wed, 12 May 2021 19:10:30 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230143AbhEMCIY (ORCPT + 99 others); Wed, 12 May 2021 22:08:24 -0400 Received: from szxga06-in.huawei.com ([45.249.212.32]:2655 "EHLO szxga06-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230017AbhEMCIX (ORCPT ); Wed, 12 May 2021 22:08:23 -0400 Received: from DGGEMS404-HUB.china.huawei.com (unknown [172.30.72.59]) by szxga06-in.huawei.com (SkyGuard) with ESMTP id 4FgZjn4J0tzmV9g; Thu, 13 May 2021 10:05:01 +0800 (CST) Received: from [10.174.178.208] (10.174.178.208) by DGGEMS404-HUB.china.huawei.com (10.3.19.204) with Microsoft SMTP Server id 14.3.498.0; Thu, 13 May 2021 10:07:09 +0800 Subject: Re: [PATCH -next] drm/panfrost: Fix PM reference leak in panfrost_job_hw_submit() To: Steven Price , , , , , CC: , References: <1620714551-106976-1-git-send-email-zou_wei@huawei.com> <7ebf35ef-58c3-7bc7-f0e9-ad487bae6686@arm.com> From: Samuel Zou Message-ID: Date: Thu, 13 May 2021 10:07:09 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: <7ebf35ef-58c3-7bc7-f0e9-ad487bae6686@arm.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-Originating-IP: [10.174.178.208] X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Steven, Thanks for your review and also answer my doubts. Looking forward to your patch. On 2021/5/12 23:23, Steven Price wrote: > On 11/05/2021 07:29, Zou Wei wrote: >> pm_runtime_get_sync will increment pm usage counter even it failed. >> Forgetting to putting operation will result in reference leak here. >> Fix it by replacing it with pm_runtime_resume_and_get to keep usage >> counter balanced. >> >> Reported-by: Hulk Robot >> Signed-off-by: Zou Wei > > Thanks for the patch, but this is actually incorrect. > panfrost_job_hw_submit() is expected to unconditionally increment the pm > usage counter. This is because panfrost_job_hw_submit() can (currently) > never fail, so in this case the job is considered "submitted" (even > though it never reaches the hardware) and it's handled by the job timeout. > > However this is at least the second time[1] this phantom "reference > leak" has been raised, so perhaps it's time to handle this better. I'll > post a patch reworking panfrost_job_hw_submit() so it can fail. > > Thanks, > > Steve > > [1] > https://lore.kernel.org/r/20200520110504.24388-1-dinghao.liu%40zju.edu.cn > >> --- >>   drivers/gpu/drm/panfrost/panfrost_job.c | 2 +- >>   1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/gpu/drm/panfrost/panfrost_job.c >> b/drivers/gpu/drm/panfrost/panfrost_job.c >> index 6003cfe..42d8dbc 100644 >> --- a/drivers/gpu/drm/panfrost/panfrost_job.c >> +++ b/drivers/gpu/drm/panfrost/panfrost_job.c >> @@ -157,7 +157,7 @@ static void panfrost_job_hw_submit(struct >> panfrost_job *job, int js) >>       panfrost_devfreq_record_busy(&pfdev->pfdevfreq); >> -    ret = pm_runtime_get_sync(pfdev->dev); >> +    ret = pm_runtime_resume_and_get(pfdev->dev); >>       if (ret < 0) >>           return; >> > > .