Hannes,

It assumed you're running just Initiator Mode.  Our FW should be handling ABTS 
below us with Initiator Mode.  So, we don't expect to see ABTS (ABTS_RECV_24XX) 
to come to driver with Initiator Mode.  Unless something accidentally turns on 
Target Mode when times to Initialize FW.

Initiator side eh_abort goes through a specific IOCB call "Abort IO" that can 
enter through our Request IOCB Q or Mailbox interface.  Abort IO completion 
would 'NOT' return back to driver as ABTS_RECV_24XX.

Regards,
Quinn Tran 

On 7/12/19, 12:01 AM, "linux-scsi-ow...@vger.kernel.org on behalf of Martin 
Wilck" <linux-scsi-ow...@vger.kernel.org on behalf of mwi...@suse.de> wrote:

    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