On Fri, Sep 30, 2022 at 1:05 PM John Garry <john.garry@xxxxxxxxxx> wrote: > > 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): Yes, would be great to get rid of the per ha lock. > > 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... >