Received: by 2002:a25:e74b:0:0:0:0:0 with SMTP id e72csp1471455ybh; Mon, 13 Jul 2020 21:19:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxugIOO/Txb80sIHA3KMKspgy8gvqcM2zzrK/sVG9GhPt/NEH0hMATsLHOYDQUh4mVu73fR X-Received: by 2002:aa7:d8cf:: with SMTP id k15mr2521343eds.250.1594700379451; Mon, 13 Jul 2020 21:19:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1594700379; cv=none; d=google.com; s=arc-20160816; b=a2KXAmokVJ0NHFEVl/14HfgnLZhGbU3Au95A/EcFAIp23NAaFrOGV+d3M1GhufnIKB KR0VHZ+a0F1PcSQcO1yaY74VK4VmjkupliXIRYxCQby/GN9jbYmKRB+hF8kP3NDaQP7M iP2uDb78D4uY3VhyIxz1XYphD9PCMPfafrPdVq/UTMdLfAFGovgsmQxUgNiyv0xwiQv2 lOs1V/eeeKhS2DoPTFzL9HfnuNri//ypdjHhc62k9s3CFmEXPrBRIPbciIrbaAbXKtZ5 V62FK0kpZuORvAheo0ch8HhlXWlC4Qx7OmYjdRO60ykjwDcWqhv0TuUcm3jMGsmbrNGs tf4A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:message-id:references :in-reply-to:subject:cc:to:from:date:content-transfer-encoding :mime-version:dkim-signature; bh=Foat0KbYY6EOSlt1z9mAx4zGSNaBw/U4YiW8LDumGYA=; b=oNXKxwrg/alW9N/iNe23fbjOWqQmSjA9MbXZtIHSYFwbiLngMOOEFyBk3AfEYjSUai JFtxGpQcx4wTPzlchjoAUbRTELU3NqCeVp8jqKxzIs9K+LqSRsQUjEXfdgTpoqrzLbVQ ntc4UF0Z/PmoD/H6gP5zwHkI/Z4C7lp+bNCXzgq6cYyMuHfF9xCea3v9ZIxtMUfATGJJ sOADpz9xvWa74MTtdCHiMV81oWi1Yj2Gj2gWI+ELy4yjJjwyKPzXSUhPpCo+MsNg0ZMe 5ZzvhmOZ9al1q5Qpjmt4jzEmV/dvzgSi7vtkvU5tTb6JOTl1omyZN9fm7weAhFaWe331 n9Hw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@mg.codeaurora.org header.s=smtp header.b=bhEFOsr0; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id s21si10140749edy.104.2020.07.13.21.19.14; Mon, 13 Jul 2020 21:19:39 -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; dkim=fail header.i=@mg.codeaurora.org header.s=smtp header.b=bhEFOsr0; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725355AbgGNERO (ORCPT + 99 others); Tue, 14 Jul 2020 00:17:14 -0400 Received: from mail29.static.mailgun.info ([104.130.122.29]:11704 "EHLO mail29.static.mailgun.info" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725780AbgGNERO (ORCPT ); Tue, 14 Jul 2020 00:17:14 -0400 DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.codeaurora.org; q=dns/txt; s=smtp; t=1594700233; h=Message-ID: References: In-Reply-To: Subject: Cc: To: From: Date: Content-Transfer-Encoding: Content-Type: MIME-Version: Sender; bh=Foat0KbYY6EOSlt1z9mAx4zGSNaBw/U4YiW8LDumGYA=; b=bhEFOsr0Fe4f/2LJPdXGt/zx5QxZhIPSdvEILXT/MIsZavUDk+Yl9jIKlicBKQ9KlvTM5bNS RxcvR6H4yLzwVe77vnMSrFCVCOXBmWHhteVqh4+Qmw+UJMcWZcpM1Dp4H+fPqLEs0XxvhZNj NaxBYtqp13XuUAdjihV9LvoDbos= X-Mailgun-Sending-Ip: 104.130.122.29 X-Mailgun-Sid: WyI0MWYwYSIsICJsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnIiwgImJlOWU0YSJd Received: from smtp.codeaurora.org (ec2-35-166-182-171.us-west-2.compute.amazonaws.com [35.166.182.171]) by smtp-out-n05.prod.us-west-2.postgun.com with SMTP id 5f0d31c9ee6926bb4fb3cd9a (version=TLS1.2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256); Tue, 14 Jul 2020 04:17:13 GMT Received: by smtp.codeaurora.org (Postfix, from userid 1001) id 981F3C433A1; Tue, 14 Jul 2020 04:17:12 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-caf-mail-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=2.0 tests=ALL_TRUSTED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.codeaurora.org (localhost.localdomain [127.0.0.1]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: cang) by smtp.codeaurora.org (Postfix) with ESMTPSA id 9DEABC433CA; Tue, 14 Jul 2020 04:17:11 +0000 (UTC) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Tue, 14 Jul 2020 12:17:11 +0800 From: Can Guo To: Bart Van Assche Cc: asutoshd@codeaurora.org, nguyenb@codeaurora.org, hongwus@codeaurora.org, rnayak@codeaurora.org, linux-scsi@vger.kernel.org, kernel-team@android.com, saravanak@google.com, salyzyn@google.com, Andy Gross , Bjorn Andersson , Alim Akhtar , Avri Altman , "James E.J. Bottomley" , "Martin K. Petersen" , "open list:ARM/QUALCOMM SUPPORT" , open list Subject: Re: [PATCH v2 3/4] ufs: ufs-qcom: Fix a few BUGs in func ufs_qcom_dump_dbg_regs() In-Reply-To: <7b0f8a73-d49d-eb7d-defe-8e77a49064ae@acm.org> References: <1594693693-22466-1-git-send-email-cang@codeaurora.org> <1594693693-22466-4-git-send-email-cang@codeaurora.org> <7b0f8a73-d49d-eb7d-defe-8e77a49064ae@acm.org> Message-ID: <365144280b854f1130c0c3259198fc0b@codeaurora.org> X-Sender: cang@codeaurora.org User-Agent: Roundcube Webmail/1.3.9 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Bart, On 2020-07-14 11:47, Bart Van Assche wrote: > On 2020-07-13 19:28, Can Guo wrote: >> Dumping testbus registers needs to sleep a bit intermittently as there >> are >> too many of them. Skip them for those contexts where sleep is not >> allowed. >> >> Meanwhile, if ufs_qcom_dump_dbg_regs() calls ufs_qcom_testbus_config() >> from >> ufshcd_suspend/resume and/or clk gate/ungate context, >> pm_runtime_get_sync() >> and ufshcd_hold() will cause racing problems. Fix it by removing the >> unnecessary calls of pm_runtime_get_sync() and ufshcd_hold(). >> >> Signed-off-by: Can Guo >> --- >> drivers/scsi/ufs/ufs-qcom.c | 17 +++++++---------- >> 1 file changed, 7 insertions(+), 10 deletions(-) >> >> diff --git a/drivers/scsi/ufs/ufs-qcom.c b/drivers/scsi/ufs/ufs-qcom.c >> index 2e6ddb5..3743c17 100644 >> --- a/drivers/scsi/ufs/ufs-qcom.c >> +++ b/drivers/scsi/ufs/ufs-qcom.c >> @@ -1604,9 +1604,6 @@ int ufs_qcom_testbus_config(struct ufs_qcom_host >> *host) >> */ >> } >> mask <<= offset; >> - >> - pm_runtime_get_sync(host->hba->dev); >> - ufshcd_hold(host->hba, false); >> ufshcd_rmwl(host->hba, TEST_BUS_SEL, >> (u32)host->testbus.select_major << 19, >> REG_UFS_CFG1); >> @@ -1619,8 +1616,6 @@ int ufs_qcom_testbus_config(struct ufs_qcom_host >> *host) >> * committed before returning. >> */ >> mb(); >> - ufshcd_release(host->hba); >> - pm_runtime_put_sync(host->hba->dev); >> >> return 0; >> } >> @@ -1658,11 +1653,13 @@ static void ufs_qcom_dump_dbg_regs(struct >> ufs_hba *hba) >> >> /* sleep a bit intermittently as we are dumping too much data */ >> ufs_qcom_print_hw_debug_reg_all(hba, NULL, >> ufs_qcom_dump_regs_wrapper); >> - udelay(1000); >> - ufs_qcom_testbus_read(hba); >> - udelay(1000); >> - ufs_qcom_print_unipro_testbus(hba); >> - udelay(1000); >> + if (in_task()) { >> + udelay(1000); >> + ufs_qcom_testbus_read(hba); >> + udelay(1000); >> + ufs_qcom_print_unipro_testbus(hba); >> + udelay(1000); >> + } >> } > > It is not clear to me how udelay() calls can help in code that takes > long > since these functions use busy-waiting? Should the udelay() calls > perhaps > be changed into cond_resched() calls? > > Thanks, > > Bart. Maybe you are right, but this is not the purpose of this change. I am just trying to make sure this func can be invoked from any contexts without making troubles like schedule while atomic and/or race conditions. Thanks, Can Guo.