> > > > > > @@ -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? > > > > > > > > We try to sending HPB read several times within the > requeue_timeout_ms. > > > > Because it strategy has more benefit for overall performance in this > > > > situation that many requests are queueing. > > > This extra logic, IMO, should be optional. Default none. > > > And yes, in this case requeue_timeout should be a parameter for each OEM > to > > > scale. > > And either way, hpb internal flows should not cause dumping the command. > > Worse case - continue as READ10 > > However, this can improve the overall performance and should be used > carefully. The problem can be solved by setting the default timeout > ms to 0. And OEM can change it. Yes. I was thinking that too. Thanks, Avri > > Thanks, > Daejun