Thread (33 messages) 33 messages, 3 authors, 2021-02-25

RE: [PATCH v22 4/4] scsi: ufs: Add HPB 2.0 support

From: Avri Altman <Avri.Altman@wdc.com>
Date: 2021-02-23 12:47:38
Also in: lkml

quoted hunk ↗ jump to hunk
@@ -2656,7 +2656,12 @@ static int ufshcd_queuecommand(struct Scsi_Host
*host, struct scsi_cmnd *cmd)

        lrbp->req_abort_skip = false;

-       ufshpb_prep(hba, lrbp);
+       err = ufshpb_prep(hba, lrbp);
+       if (err == -EAGAIN) {
+               lrbp->cmd = NULL;
+               ufshcd_release(hba);
+               goto out;
+       }
Did I miss-read it, or are you bailing out of wb failed e.g. because no tag is available?
Why not continue with read10?


+       if (blk_insert_cloned_request(q, req) != BLK_STS_OK)
+               return -EAGAIN;
Why did you choose to use blk_insert_cloned_request and not e.g. the more common blk_execute_rq_nowait?
+       hpb->stats.pre_req_cnt++;
+
+       return 0;
+}
-       ufshpb_set_hpb_read_to_upiu(hpb, lrbp, lpn, ppn, transfer_len);
+       if (ufshpb_is_required_wb(hpb, transfer_len)) {
+               err = ufshpb_issue_pre_req(hpb, cmd, &read_id);
+               if (err) {
+                       unsigned long timeout;
+
+                       timeout = cmd->jiffies_at_alloc + msecs_to_jiffies(
+                                 hpb->params.requeue_timeout_ms);
+                       if (time_before(jiffies, timeout))
+                               return -EAGAIN;
Why requeue_timeout_ms needs to be a configurable parameter?
Why rq->timeout is not enough?

Thanks,
Avri

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help