linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/6] Add QLogic FastLinQ iSCSI (qedi) driver.
@ 2016-11-08  6:56 Manish Rangankar
  2016-11-08  6:56 ` [PATCH v2 1/6] qed: Add support for hardware offloaded iSCSI Manish Rangankar
                   ` (6 more replies)
  0 siblings, 7 replies; 24+ messages in thread
From: Manish Rangankar @ 2016-11-08  6:56 UTC (permalink / raw)
  To: martin.petersen, lduncan, cleech
  Cc: linux-scsi, netdev, QLogic-Storage-Upstream, Yuval.Mintz

This series introduces hardware offload iSCSI initiator driver for the
41000 Series Converged Network Adapters (579xx chip) by Qlogic. The overall
driver design includes a common module ('qed') and protocol specific
dependent modules ('qedi' for iSCSI).

This is an open iSCSI driver, modifications to open iSCSI user components
'iscsid', 'iscsiuio', etc. are required for the solution to work. The user
space changes are also in the process of being submitted.

    https://groups.google.com/forum/#!forum/open-iscsi

The 'qed' common module, under drivers/net/ethernet/qlogic/qed/, is
enhanced with functionality required for the iSCSI support. This series
is based on:

    net tree base: Merge of net and net-next as of 10/31/2016

Changes from RFC v1:

 RFC v1 comments reference:

  http://marc.info/?l=linux-scsi&w=2&r=1&s=qed&q=b

 The following comments were incorporated:-

  1. MAC copying to use unaligned macro in qed_sp_iscsi_conn_offload()
  2. Contain scattered IS_ENABLED() check inside header file.
  3. Reduce indent in qed_iscsi_start() by changing logic slightly.
  4. Use kernel-doc style documentation.
  5. Shorten qed_ll2_lb_rxq_completion() by removing queue handling as
     a separate function.
  6. Reduce code duplication by creating qed_ooo_submit_[tr]x_buffers().
  7. Remove dynamic memory allocation in ISR for solicited packets. 
  8. Rearrange qedi_process_iscsi_error() code to use mapping values
     onto strings.
  9. Use kernel-doc style documentation in qedi_hsi.h
  10. Change pr_crit to pr_err. 
  11. Remove unnecessary typecasting. 
  12. Change kmalloc to kmalloc_array in qedi_setup_cid_que(). 
  13. Rearrange firmware and driver version information print. 
  14. Change variable names from scsi_lun to other, as scsi_lun struct exists.
  15. Introduce QEDI_U64_HI and QEDI_U64_LO macros for code readability. 
  16. Move scsi_dma_unmap above sge_valid in qedi_iscsi_unmap_sg_list(). 
  17. Introduce QEDI_OFLD_WAIT_STATE for code readability.
  18. Add cond_resched() in per_cpu_io_thread to avoid soft-lockups.
  19. Change trace_io to accomodate all the scsi commands. 
  20. Spell correction in comments section.

 The following comments were not incorporated:-
  1. Remove "QLogic qed NIC Driver" comment
     - Applies to drivers/net/ethernet/qlogic/qed/*.[ch]
     - This will be submitted as a separate patch, as there are multiple
       files (files that are not part of this series) need to be updated
       and this change is not related to this series.
  2. Update copyright
     - Applies to drivers/net/ethernet/qlogic/qed/*.[ch]
     - Same as above, will submit a separate patch, as multiple files
       need to be updated and this change is not related to this series.
  3. Remove adding and removing of QEDI Kconfig entries. Added by
     "qed" patch and removed and re-added by "qedi" patch.
     - QEDI driver is composed of two parts, the common module (qed) and
       the protocol module (qedi), which goes in net and scsi trees
       respectively. The qed module conditionally enables certain
       functionality for the QEDI module in qed; hence the Kconfig entry was
       added for QEDI by qed; otherwise it looks odd to use CONFIG_QEDI
       in qed. So, the remove and re-add is left as is.
  4. Workqueue implementation in completion path.
     - This change will be submitted as a separate patch, as it requires 
       complete performance validation cycle.
  5. IRQ handling changes from Christoph H. irq work. 
     - This change will also be subitted as a separate patch, as it also
       require change in qed.ko module which will affect other protocol
       drivers (qedr, qede) as well.
     - This change will be integral part of MQ/MQ-TAG infrastructure that
       we want to employ in our qedi driver. 
  6. Using multiple memory barriers.
     - We kept both memory barriers as a failsafe, as for some architectures
       the call is the same but on others they are two different assembly
       operations. We have updated patch with same information in comments.


Manish Rangankar (4):
  qedi: Add QLogic FastLinQ offload iSCSI driver framework.
  qedi: Add LL2 iSCSI interface for offload iSCSI.
  qedi: Add support for iSCSI session management.
  qedi: Add support for data path.

Yuval Mintz (2):
  qed: Add support for hardware offloaded iSCSI.
  qed: Add iSCSI out of order packet handling.

 MAINTAINERS                                    |    6 +
 drivers/net/ethernet/qlogic/Kconfig            |   15 +
 drivers/net/ethernet/qlogic/qed/Makefile       |    1 +
 drivers/net/ethernet/qlogic/qed/qed.h          |    8 +-
 drivers/net/ethernet/qlogic/qed/qed_dev.c      |   22 +
 drivers/net/ethernet/qlogic/qed/qed_int.h      |    1 -
 drivers/net/ethernet/qlogic/qed/qed_iscsi.c    | 1276 +++++++++++++
 drivers/net/ethernet/qlogic/qed/qed_iscsi.h    |   52 +
 drivers/net/ethernet/qlogic/qed/qed_l2.c       |    1 -
 drivers/net/ethernet/qlogic/qed/qed_ll2.c      |  507 ++++-
 drivers/net/ethernet/qlogic/qed/qed_ll2.h      |    9 +
 drivers/net/ethernet/qlogic/qed/qed_ooo.c      |  501 +++++
 drivers/net/ethernet/qlogic/qed/qed_ooo.h      |  173 ++
 drivers/net/ethernet/qlogic/qed/qed_reg_addr.h |    2 +
 drivers/net/ethernet/qlogic/qed/qed_roce.c     |    1 +
 drivers/net/ethernet/qlogic/qed/qed_spq.c      |   24 +
 drivers/scsi/Kconfig                           |    1 +
 drivers/scsi/Makefile                          |    1 +
 drivers/scsi/qedi/Kconfig                      |   10 +
 drivers/scsi/qedi/Makefile                     |    5 +
 drivers/scsi/qedi/qedi.h                       |  364 ++++
 drivers/scsi/qedi/qedi_dbg.c                   |  143 ++
 drivers/scsi/qedi/qedi_dbg.h                   |  144 ++
 drivers/scsi/qedi/qedi_debugfs.c               |  244 +++
 drivers/scsi/qedi/qedi_fw.c                    | 2378 ++++++++++++++++++++++++
 drivers/scsi/qedi/qedi_gbl.h                   |   73 +
 drivers/scsi/qedi/qedi_hsi.h                   |   52 +
 drivers/scsi/qedi/qedi_iscsi.c                 | 1624 ++++++++++++++++
 drivers/scsi/qedi/qedi_iscsi.h                 |  232 +++
 drivers/scsi/qedi/qedi_main.c                  | 2143 +++++++++++++++++++++
 drivers/scsi/qedi/qedi_sysfs.c                 |   52 +
 drivers/scsi/qedi/qedi_version.h               |   14 +
 include/linux/qed/qed_if.h                     |    2 +
 include/linux/qed/qed_iscsi_if.h               |  229 +++
 34 files changed, 10297 insertions(+), 13 deletions(-)
 create mode 100644 drivers/net/ethernet/qlogic/qed/qed_iscsi.c
 create mode 100644 drivers/net/ethernet/qlogic/qed/qed_iscsi.h
 create mode 100644 drivers/net/ethernet/qlogic/qed/qed_ooo.c
 create mode 100644 drivers/net/ethernet/qlogic/qed/qed_ooo.h
 create mode 100644 drivers/scsi/qedi/Kconfig
 create mode 100644 drivers/scsi/qedi/Makefile
 create mode 100644 drivers/scsi/qedi/qedi.h
 create mode 100644 drivers/scsi/qedi/qedi_dbg.c
 create mode 100644 drivers/scsi/qedi/qedi_dbg.h
 create mode 100644 drivers/scsi/qedi/qedi_debugfs.c
 create mode 100644 drivers/scsi/qedi/qedi_fw.c
 create mode 100644 drivers/scsi/qedi/qedi_gbl.h
 create mode 100644 drivers/scsi/qedi/qedi_hsi.h
 create mode 100644 drivers/scsi/qedi/qedi_iscsi.c
 create mode 100644 drivers/scsi/qedi/qedi_iscsi.h
 create mode 100644 drivers/scsi/qedi/qedi_main.c
 create mode 100644 drivers/scsi/qedi/qedi_sysfs.c
 create mode 100644 drivers/scsi/qedi/qedi_version.h
 create mode 100644 include/linux/qed/qed_iscsi_if.h

-- 
1.8.3.1


^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2016-11-29 17:21 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-08  6:56 [PATCH v2 0/6] Add QLogic FastLinQ iSCSI (qedi) driver Manish Rangankar
2016-11-08  6:56 ` [PATCH v2 1/6] qed: Add support for hardware offloaded iSCSI Manish Rangankar
2016-11-11 15:57   ` Hannes Reinecke
2016-11-11 18:12     ` Arun Easi
2016-11-08  6:56 ` [PATCH v2 2/6] qed: Add iSCSI out of order packet handling Manish Rangankar
2016-11-11 15:59   ` Hannes Reinecke
2016-11-08  6:57 ` [PATCH v2 3/6] qedi: Add QLogic FastLinQ offload iSCSI driver framework Manish Rangankar
2016-11-08 10:52   ` kbuild test robot
2016-11-08 20:04     ` Arun Easi
2016-11-08 23:49       ` Martin K. Petersen
2016-11-09  0:00         ` Arun Easi
2016-11-09  0:07           ` Martin K. Petersen
2016-11-08 11:13   ` kbuild test robot
2016-11-11 16:43   ` Hannes Reinecke
2016-11-15  6:14     ` Rangankar, Manish
2016-11-15  7:21       ` Hannes Reinecke
2016-11-08  6:57 ` [PATCH v2 4/6] qedi: Add LL2 iSCSI interface for offload iSCSI Manish Rangankar
2016-11-11 16:44   ` Hannes Reinecke
2016-11-08  6:57 ` [PATCH v2 5/6] qedi: Add support for iSCSI session management Manish Rangankar
2016-11-11 16:47   ` Hannes Reinecke
2016-11-08  6:57 ` [PATCH v2 6/6] qedi: Add support for data path Manish Rangankar
2016-11-08 11:09   ` kbuild test robot
2016-11-11 16:49   ` Hannes Reinecke
2016-11-29 17:21 ` [PATCH v2 0/6] Add QLogic FastLinQ iSCSI (qedi) driver Martin K. Petersen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).