On Thu, 2019-05-09 at 14:58 -0400,  Ewan D. Milne wrote:
> On Thu, 2019-05-09 at 07:06 -0700, Bart Van Assche wrote:
> > On 5/9/19 6:18 AM, Hannes Reinecke wrote:
> > > The 'qla_tgt_wq' workqueue is used for generic command aborts,
> > > not just target-related functions. So allocate the workqueue
> > > always to avoid a kernel crash when aborting commands.
> > 
> > Hi Hannes,
> > 
> > Can the abort code be called directly? This means not queueing the
> > abort
> > work? Do you perhaps know why the target workqueue is used for
> > processing aborts? In other words, can the abort functions be
> > modified
> > to use one of the system workqueues instead of always allocating
> > the
> > target workqueue?
> > 
> > Thanks,
> > 
> > Bart.
> 
> How exactly is the qla_tgt_wq used for generic command aborts?
> Do you mean initiator mode aborts from the SCSI EH calls?  Those look
> like they issue mailbox commands to the HBA directly.
> Or do we get frames received even if we are not using target mode or
> something?

Sorry for jumping late onto this thread.

The code in question has been introduced by 2f424b9b36ad "qla2xxx: Move
atioq to a different lock to reduce lock contention", with the purpose
to "ensure that the ATIO queue is empty", for certain controller types,
if a ABTS_RECV_24XX element is encountered on the response queue.

Maybe Quinn or Himanshu can shed light on the question under which
conditions this would happen.

Martin


Reply via email to