Re: [PATCH v2 4/6] scsi: pm8001: Use sas_task_find_rq() for tagging
From: John Garry
Date: Fri Sep 30 2022 - 06:32:56 EST
On 30/09/2022 10:17, Jinpu Wang wrote:
On Fri, Sep 30, 2022 at 11:03 AM John Garry<john.garry@xxxxxxxxxx> wrote:
The request associated with a scsi command coming from the block layer
has a unique tag, so use that when possible for getting a CCB.
Unfortunately we don't support reserved commands in the SCSI midlayer yet,
so in the interim continue to manage those tags internally (along with
tags for private commands).
Signed-off-by: John Garry<john.garry@xxxxxxxxxx>
Reviewed-by: Jack Wang<jinpu.wang@xxxxxxxxx>
nice, I would expect this can improve performance, do you have numbers?
Unfortunately my system hangs after I run for an appreciable period of
time. I normally get around it by turning on much heavy debug options,
but that would not be much use for performance testing.
But we did get considerable performance improvement for hisi_sas when we
made the equivalent change.
Damien, if you are interested then sharing any results would be great.
BTW, I do notice that we still have this global lock in delivery path
which should be removed at some stage:
int mvs_queue_command(struct sas_task *task, gfp_t gfp_flags)
{
...
spin_lock_irqsave(&mvi->lock, flags);
rc = mvs_task_prep(task, mvi, is_tmf, tmf, &pass);
...
spin_unlock_irqrestore(&mvi->lock, flags);
}
That really will affect performance...
Thanks,
John