mbox series

[RFC,00/22,V3] iscsi: lock clean ups

Message ID 1608187332-4434-1-git-send-email-michael.christie@oracle.com
Headers show
Series iscsi: lock clean ups | expand

Message

Mike Christie Dec. 17, 2020, 6:41 a.m. UTC
The following patches made over Linus's current tree cleanup the
locking in libiscsi so we again, for the main SCSI IO path, have the
frwd lock only used in the xmit/queue path and the back lock used in
the completion path and no taskqueuelock used in all the paths. The
EH paths still use both the frwd/back lock though.

These patches are still not ready for merging. I have now tested
iscsi_tcp, ib_iser, and be2iscsi. Manish tested qedi but it failed.
However, this version should work for qedi and bnx2i's normal IO
path, but there are still some questions for qedi in patch 18
"qedi: prep driver for switch to blk tags".

V3:
- Fix iscsi task double free that occurs with bnx2i and qedi.
- Use blk tagging for scsi cmd lookups.
- Rebase over patches that fixed the timeout/EH use after free
race.

V2:
- Fix issue where we used the back lock to make sure all recv
completion paths saw the window reopened falg.
- Fix ping_task path, so it accounts for send/completion race Lee
had fixed.
- Fix bug hit with qedi and bnx2i during testing where I forgot to
allow this drivers to preallocate mgmt task resources.
- Tested ib_iser and be2iscsi.