linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: [PATCH 9/9] scsi: ufs: Properly release resources if a task is aborted successfully
       [not found] <a752927b-dd9b-ebf0-8c77-e2ae0b2aa475@web.de>
@ 2020-08-07 13:01 ` Can Guo
       [not found]   ` <cb9dbb7d-5515-0190-d336-be657e1ca31c@web.de>
  0 siblings, 1 reply; 4+ messages in thread
From: Can Guo @ 2020-08-07 13:01 UTC (permalink / raw)
  To: Markus Elfring
  Cc: Stanley Chu, kernel-team, linux-arm-kernel, linux-mediatek,
	linux-scsi, linux-kernel, kernel-janitors, Alim Akhtar,
	Asutosh Das, Avri Altman, Bao D. Nguyen, Bart Van Assche,
	Bean Huo, Hongwu Su, James E. J. Bottomley, Mark Salyzyn,
	Martin K. Petersen, Matthias Brugger, Rajendra Nayak,
	Saravana Kannan

Hi Markus,

On 2020-08-07 17:33, Markus Elfring wrote:
>> … To fix it, …
> 
> I propose to replace this wording by the tag “Fixes”.
> 
> 
>> … "mannually", …
> 
> Please avoid a typo:
> … "manually", …
> 
> 
> Regards,
> Markus

Thanks, will fix these in next version.

Regards,
Can Guo.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [9/9] scsi: ufs: Properly release resources if a task is aborted successfully
       [not found]   ` <cb9dbb7d-5515-0190-d336-be657e1ca31c@web.de>
@ 2020-08-10  0:48     ` Can Guo
  0 siblings, 0 replies; 4+ messages in thread
From: Can Guo @ 2020-08-10  0:48 UTC (permalink / raw)
  To: Markus Elfring
  Cc: Stanley Chu, Asutosh Das, linux-arm-kernel, linux-mediatek,
	linux-scsi, kernel-team, linux-kernel, kernel-janitors,
	Alim Akhtar, Avri Altman, Bao D. Nguyen, Bart Van Assche,
	Bean Huo, Hongwu Su, James E. J. Bottomley, Mark Salyzyn,
	Martin K. Petersen, Matthias Brugger, Rajendra Nayak,
	Saravana Kannan

Hi Markus,

On 2020-08-10 02:00, Markus Elfring wrote:
>> Thanks, will fix these in next version.
> 
> Thanks for your adjustment of the proposed commit message.
> Should the corresponding patch be marked with an other version number?
> https://lore.kernel.org/linux-arm-kernel/1596975355-39813-10-git-send-email-cang@codeaurora.org/
> https://lore.kernel.org/patchwork/patch/1285629/
> https://lkml.org/lkml/2020/8/9/87
> 
> Should a cover letter be provided for such a patch series?
> 
> Regards,
> Markus

I am not sure if you got my mails, this patch is included in
a patch series with other 8 changes and they do have a cover
letter. Let me re-send them to you.

Thanks,

Can Guo.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 9/9] scsi: ufs: Properly release resources if a task is aborted successfully
       [not found] <1596975355-39813-1-git-send-email-cang@codeaurora.org>
@ 2020-08-09 12:15 ` Can Guo
  0 siblings, 0 replies; 4+ messages in thread
From: Can Guo @ 2020-08-09 12:15 UTC (permalink / raw)
  To: asutoshd, nguyenb, hongwus, rnayak, linux-scsi, kernel-team,
	saravanak, salyzyn, cang
  Cc: Stanley Chu, Alim Akhtar, Avri Altman, James E.J. Bottomley,
	Martin K. Petersen, Matthias Brugger, Bean Huo, Bart Van Assche,
	James Bottomley, Santosh Y, Sujit Reddy Thumma, Dolev Raviv,
	open list, moderated list:ARM/Mediatek SoC support,
	moderated list:ARM/Mediatek SoC support

In current UFS task abort hook, namely ufshcd_abort(), if one task is
aborted successfully, clk_gating.active_reqs held by this task is not
decreased, which makes clk_gating.active_reqs stay above zero forever,
thus clock gating would never happen. Instead of releasing resources of
one task "manually", use the existing func __ufshcd_transfer_req_compl().
This change can also eliminate possible racing of scsi_dma_unmap() from
the real completion in IRQ handler path.

Fixes: 5a0b0cb9bee76 ("ufs: Add support for clock gating")
Signed-off-by: Can Guo <cang@codeaurora.org>
CC: Stanley Chu <stanley.chu@mediatek.com>
Reviewed-by: Stanley Chu <stanley.chu@mediatek.com>
Reviewed-by: Asutosh Das <asutoshd@codeaurora.org>

diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index 9ebb5cd..efb40b1 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -6636,11 +6636,8 @@ static int ufshcd_abort(struct scsi_cmnd *cmd)
 		goto out;
 	}
 
-	scsi_dma_unmap(cmd);
-
 	spin_lock_irqsave(host->host_lock, flags);
-	ufshcd_outstanding_req_clear(hba, tag);
-	hba->lrb[tag].cmd = NULL;
+	__ufshcd_transfer_req_compl(hba, (1UL << tag));
 	spin_unlock_irqrestore(host->host_lock, flags);
 
 out:
-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project.


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 9/9] scsi: ufs: Properly release resources if a task is aborted successfully
       [not found] <1596690383-16438-1-git-send-email-cang@codeaurora.org>
@ 2020-08-06  5:06 ` Can Guo
  0 siblings, 0 replies; 4+ messages in thread
From: Can Guo @ 2020-08-06  5:06 UTC (permalink / raw)
  To: asutoshd, nguyenb, hongwus, rnayak, linux-scsi, kernel-team,
	saravanak, salyzyn, cang
  Cc: Stanley Chu, Alim Akhtar, Avri Altman, James E.J. Bottomley,
	Martin K. Petersen, Matthias Brugger, Bean Huo, Bart Van Assche,
	open list, moderated list:ARM/Mediatek SoC support,
	moderated list:ARM/Mediatek SoC support

In current UFS task abort hook, namely ufshcd_abort(), if a task is
aborted successfully, clock scaling busy time statistics is not updated
and, most important, clk_gating.active_reqs is not decreased, which makes
clk_gating.active_reqs stay above zero forever, thus clock gating would
never happen. To fix it, instead of releasing resources "mannually", use
the existing func __ufshcd_transfer_req_compl(). This can also eliminate
racing of scsi_dma_unmap() from the real completion in IRQ handler path.

Signed-off-by: Can Guo <cang@codeaurora.org>
CC: Stanley Chu <stanley.chu@mediatek.com>
Reviewed-by: Stanley Chu <stanley.chu@mediatek.com>

diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index b2947ab..9541fc7 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -6636,11 +6636,8 @@ static int ufshcd_abort(struct scsi_cmnd *cmd)
 		goto out;
 	}
 
-	scsi_dma_unmap(cmd);
-
 	spin_lock_irqsave(host->host_lock, flags);
-	ufshcd_outstanding_req_clear(hba, tag);
-	hba->lrb[tag].cmd = NULL;
+	__ufshcd_transfer_req_compl(hba, (1UL << tag));
 	spin_unlock_irqrestore(host->host_lock, flags);
 
 out:
-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project.


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-08-10  0:48 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <a752927b-dd9b-ebf0-8c77-e2ae0b2aa475@web.de>
2020-08-07 13:01 ` [PATCH 9/9] scsi: ufs: Properly release resources if a task is aborted successfully Can Guo
     [not found]   ` <cb9dbb7d-5515-0190-d336-be657e1ca31c@web.de>
2020-08-10  0:48     ` [9/9] " Can Guo
     [not found] <1596975355-39813-1-git-send-email-cang@codeaurora.org>
2020-08-09 12:15 ` [PATCH 9/9] " Can Guo
     [not found] <1596690383-16438-1-git-send-email-cang@codeaurora.org>
2020-08-06  5:06 ` Can Guo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).