Re: [PATCH v2 4/6] scsi: pm8001: Use sas_task_find_rq() for tagging

From: John Garry
Date: Fri Sep 30 2022 - 07:19:25 EST


On 30/09/2022 11:20, John Garry wrote:
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);
}


oops... that's mvsas. But pm8001 does still use a big lock (which we should get rid off):

int pm8001_queue_command(struct sas_task *task, gfp_t gfp_flags)
{
...
pm8001_dbg(pm8001_ha, IO, "pm8001_task_exec device\n");

spin_lock_irqsave(&pm8001_ha->lock, flags);


Thanks,
John

That really will affect performance...