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