Skip to content

libfc, libfcoe and fcoe updates for scsi-misc

Robert Love linux-scsi 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest64 patches 4 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/64fcoe: Add format spacing to FCOE_NETDEV_DBG debug macrodrivers/scsi/fcoe/fcoe.h+1 -10 replies
2/64libfc: Fix misleading debug statementdrivers/scsi/libfc/fc_exch.c+3 -10 replies
3/64fcoe: libfcoe: extra semicolon in CHECK_LOGGING macros causes compile errordrivers/scsi/fcoe/fcoe.h drivers/scsi/fcoe/libfcoe.c+2 -20 replies
4/64fcoe, libfc: adds per cpu exch pool within exchange manager(EM)drivers/scsi/fcoe/fcoe.h drivers/scsi/libfc/fc_exch.c include/scsi/libfc.h+88 -40 replies
5/64fcoe, libfc: fully makes use of per cpu exch pool and then removes em_lockdrivers/scsi/fcoe/fcoe.c drivers/scsi/libfc/fc_exch.c include/scsi/libfc.h+115 -1020 replies
6/64libfc: Export FC headersinclude/scsi/Kbuild include/scsi/fc/Kbuild+5 -04 replies
7/64fcoe: Add sysfs parameter to fcoe for minimum DDP read I/O sizedrivers/scsi/fcoe/fcoe.c+8 -10 replies
8/64libfcoe: fcoe_ctlr_destroy use cancel_work_sync instead of flush_workdrivers/scsi/fcoe/libfcoe.c+6 -20 replies
9/64fcoe: fix missing error check in call to fcoe_if_initdrivers/scsi/fcoe/fcoe.c+3 -10 replies
10/64fcoe: remove unnecessary list and lock initializations.drivers/scsi/fcoe/fcoe.c+0 -30 replies
11/64fcoe: interface changes to fcoe_if_create and fcoe_if_destroydrivers/scsi/fcoe/fcoe.c+48 -650 replies
12/64fcoe: Introduce and allocate fcoe_interface structure, 1:1 with net_devicedrivers/scsi/fcoe/fcoe.c drivers/scsi/fcoe/fcoe.h+188 -1570 replies
13/64fcoe: move netdev to fcoe_interfacedrivers/scsi/fcoe/fcoe.c drivers/scsi/fcoe/fcoe.h+38 -320 replies
14/64fcoe: move packet handlers from fcoe_port to fcoe_interfacedrivers/scsi/fcoe/fcoe.c drivers/scsi/fcoe/fcoe.h+18 -140 replies
15/64fcoe: move FIP controller from fcoe_port to fcoe_interfacedrivers/scsi/fcoe/fcoe.c drivers/scsi/fcoe/fcoe.h+39 -480 replies
16/64fcoe: move offload exchange manager pointer from fcoe_port to fcoe_interfacedrivers/scsi/fcoe/fcoe.c drivers/scsi/fcoe/fcoe.h+7 -90 replies
17/64fcoe: remove fcoe_interface->priv pointerdrivers/scsi/fcoe/fcoe.c drivers/scsi/fcoe/fcoe.h+0 -50 replies
18/64fcoe: fcoe_interface create, destroy and refcountingdrivers/scsi/fcoe/fcoe.c drivers/scsi/fcoe/fcoe.h+79 -190 replies
19/64fcoe: split out per interface setupdrivers/scsi/fcoe/fcoe.c+148 -1190 replies
20/64fcoe: add mutex to protect create and destroydrivers/scsi/fcoe/fcoe.c+39 -10 replies
21/64fcoe: move the host-list add/remove to keep out VN_Portsdrivers/scsi/fcoe/fcoe.c+19 -120 replies
22/64fcoe: Fix module ref count bug by adding NETDEV UNREGISTER handlingdrivers/scsi/fcoe/fcoe.c drivers/scsi/fcoe/fcoe.h+67 -1210 replies
23/64fcoe: use rtnl mutex in place of hostlist lockdrivers/scsi/fcoe/fcoe.c+11 -260 replies
24/64libfc: prepare to split off struct fc_rport_priv from fc_rport_libfc_privdrivers/scsi/libfc/fc_disc.c drivers/scsi/libfc/fc_lport.c drivers/scsi/libfc/fc_rport.c +1 more+49 -410 replies
25/64libfc: change interface for rport_createdrivers/scsi/libfc/fc_disc.c drivers/scsi/libfc/fc_lport.c drivers/scsi/libfc/fc_rport.c +1 more+35 -440 replies
26/64libfc: fix RPORT_TO_PRIV and PRIV_TO_RPORT() macros.include/scsi/libfc.h+2 -20 replies
27/64libfc: make fc_rport_priv the primary rport interface.drivers/scsi/libfc/fc_disc.c drivers/scsi/libfc/fc_elsct.c drivers/scsi/libfc/fc_fcp.c +4 more+245 -2790 replies
28/64libfc: change elsct to use FC_ID instead of rdatadrivers/scsi/libfc/fc_disc.c drivers/scsi/libfc/fc_elsct.c drivers/scsi/libfc/fc_fcp.c +4 more+24 -390 replies
29/64libfc: make rport structure optionaldrivers/scsi/libfc/fc_disc.c drivers/scsi/libfc/fc_lport.c drivers/scsi/libfc/fc_rport.c +1 more+98 -1010 replies
30/64libfc: rearrange code in fc_rport_workdrivers/scsi/libfc/fc_rport.c+15 -90 replies
31/64libfc: rename rport event CREATED to READYdrivers/scsi/libfc/fc_disc.c drivers/scsi/libfc/fc_lport.c drivers/scsi/libfc/fc_rport.c +1 more+6 -60 replies
32/64libfc: don't create dummy (rogue) remote portsdrivers/scsi/libfc/fc_disc.c drivers/scsi/libfc/fc_rport.c include/scsi/libfc.h+92 -1420 replies
33/64libfc: fix rport event race between READY and LOGOdrivers/scsi/libfc/fc_rport.c+1 -30 replies
34/64libfc: eliminate disc->eventdrivers/scsi/libfc/fc_disc.c include/scsi/libfc.h+12 -200 replies
35/64libfc: remove unused disc->delay elementdrivers/scsi/libfc/fc_disc.c include/scsi/libfc.h+0 -40 replies
36/64libfc: rport debug messages were printing pointer valuesdrivers/scsi/libfc/fc_rport.c+2 -10 replies
37/64libfc: simplify fc_lport_rport_callbackdrivers/scsi/libfc/fc_lport.c+15 -280 replies
38/64libfc: make rport module maintain the rport listdrivers/scsi/libfc/fc_disc.c drivers/scsi/libfc/fc_lport.c drivers/scsi/libfc/fc_rport.c+15 -180 replies
39/64libfc: have rport_create do a lookup for pre-existing rports firstdrivers/scsi/libfc/fc_disc.c drivers/scsi/libfc/fc_rport.c+7 -60 replies
40/64libfc: change to make remote port callback optionaldrivers/scsi/libfc/fc_disc.c drivers/scsi/libfc/fc_rport.c+5 -440 replies
41/64libfc: move rport_lookup into fc_rport.cdrivers/scsi/libfc/fc_disc.c drivers/scsi/libfc/fc_rport.c+20 -220 replies
42/64libfc: do not log off rports before or after discoverydrivers/scsi/libfc/fc_disc.c include/scsi/libfc.h+37 -130 replies
43/64libfc: discovery restart sequence error fixdrivers/scsi/libfc/fc_disc.c+1 -20 replies
44/64libfc: rearrange code in fc_disc_gpn_ft_resp()drivers/scsi/libfc/fc_disc.c+12 -160 replies
45/64libfc: handle discovery failure more correctly.drivers/scsi/libfc/fc_disc.c+3 -00 replies
46/64libfc: fix: empty zone causes endless discovery retries.drivers/scsi/libfc/fc_disc.c include/scsi/fc/fc_gs.h+4 -00 replies
47/64libfc: discovery retry should clear pending first.drivers/scsi/libfc/fc_disc.c+2 -20 replies
48/64libfc: discovery gpn_ft parse bugdrivers/scsi/libfc/fc_disc.c+4 -30 replies
49/64libfc: clean up point-to-point discovery code.drivers/scsi/libfc/fc_disc.c drivers/scsi/libfc/fc_lport.c+4 -930 replies
50/64libfc: don't do discovery before callback is setdrivers/scsi/libfc/fc_disc.c+3 -00 replies
51/64libfc: Initialize fc_rport_identifiers inside fc_rport_createdrivers/scsi/libfc/fc_disc.c drivers/scsi/libfc/fc_lport.c drivers/scsi/libfc/fc_rport.c +1 more+32 -420 replies
52/64libfc: Always reset remote port roles when receiving PRLIdrivers/scsi/libfc/fc_rport.c+6 -00 replies
53/64libfc: move remote port lookup for ELS requests into fc_rport.c.drivers/scsi/libfc/fc_lport.c drivers/scsi/libfc/fc_rport.c include/scsi/libfc.h+44 -660 replies
54/64libfc: fix: rport_recv_req needs disc_mutex when calling rport_lookupdrivers/scsi/libfc/fc_rport.c+3 -00 replies
55/64libfc: improve debug messages for ELS response handlersdrivers/scsi/libfc/fc_elsct.c drivers/scsi/libfc/fc_lport.c drivers/scsi/libfc/fc_rport.c +1 more+57 -140 replies
56/64libfc: correctly handle incoming PLOGI request.drivers/scsi/libfc/fc_rport.c+93 -920 replies
57/64libfc: fix rport error handling for login-required and invalid opsdrivers/scsi/libfc/fc_rport.c+88 -490 replies
58/64libfc: re-login to remote ports that send us LOGOdrivers/scsi/libfc/fc_rport.c+11 -20 replies
59/64libfc: LOGO response code had extraeous enter_rtvdrivers/scsi/libfc/fc_rport.c+4 -60 replies
60/64libfc: use ADISC to verify rport login statedrivers/scsi/libfc/fc_rport.c include/scsi/fc_encode.h include/scsi/libfc.h+139 -50 replies
61/64libfc: fix handling of incoming Discover Address (ADISC) requestsdrivers/scsi/libfc/fc_lport.c drivers/scsi/libfc/fc_rport.c+48 -530 replies
62/64libfc: send GPN_ID in reaction to single-port RSCNs.drivers/scsi/libfc/fc_disc.c drivers/scsi/libfc/fc_elsct.c include/scsi/fc_encode.h+128 -270 replies
63/64libfc: don't swap OX_ID and RX_ID when sending BA_RJTdrivers/scsi/libfc/fc_exch.c+2 -20 replies
64/64fcoe: flush per-cpu thread work when destroying interfacedrivers/scsi/fcoe/fcoe.c+40 -20 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 00/64] libfc, libfcoe and fcoe updates for scsi-misc

These patches are targeting the 2.6.32 merge window.

There are three main focuses in this patch series. First, there are contributions that modify the stack for VLANs and prepare for NPIV. For both of those technologies resources need to be shared between VLANs on a physical port or VN_Ports on an N_Port. Second, there are improvements to the discovery and remote port layers. Discovery is now much more graceful (ADISC) and there is a cleaner division between fc_rports that are used by the FC transport and libfc's internal remote port tracking structures. Third, there is a performance optomization for the exchange manager where per-CPU exchange ID (XID) pools are created so that each CPU is not contending for a shared lock when trying to acquire a new XID.

Other than these primary changes there are other smaller contributions. A user-tunable DDP limit has been added. There are various improvements to the debug logging macros and uses of them. FC headers are exported for user space tools. The fcoe create/destroy path has been improved.

---

Chris Leech (15):
fcoe: use rtnl mutex in place of hostlist lock
fcoe: Fix module ref count bug by adding NETDEV UNREGISTER handling
fcoe: move the host-list add/remove to keep out VN_Ports
fcoe: add mutex to protect create and destroy
fcoe: split out per interface setup
fcoe: fcoe_interface create, destroy and refcounting
fcoe: remove fcoe_interface->priv pointer
fcoe: move offload exchange manager pointer from fcoe_port to fcoe_interface
fcoe: move FIP controller from fcoe_port to fcoe_interface
fcoe: move packet handlers from fcoe_port to fcoe_interface
fcoe: move netdev to fcoe_interface
fcoe: Introduce and allocate fcoe_interface structure, 1:1 with net_device
fcoe: interface changes to fcoe_if_create and fcoe_if_destroy
fcoe: fix missing error check in call to fcoe_if_init
libfcoe: fcoe_ctlr_destroy use cancel_work_sync instead of flush_work

Joe Eykholt (41):
fcoe: flush per-cpu thread work when destroying interface
libfc: don't swap OX_ID and RX_ID when sending BA_RJT
libfc: send GPN_ID in reaction to single-port RSCNs.
libfc: fix handling of incoming Discover Address (ADISC) requests
libfc: use ADISC to verify rport login state
libfc: LOGO response code had extraeous enter_rtv
libfc: re-login to remote ports that send us LOGO
libfc: fix rport error handling for login-required and invalid ops
libfc: correctly handle incoming PLOGI request.
libfc: improve debug messages for ELS response handlers
libfc: fix: rport_recv_req needs disc_mutex when calling rport_lookup
libfc: move remote port lookup for ELS requests into fc_rport.c.
libfc: don't do discovery before callback is set
libfc: clean up point-to-point discovery code.
libfc: discovery gpn_ft parse bug
libfc: discovery retry should clear pending first.
libfc: fix: empty zone causes endless discovery retries.
libfc: handle discovery failure more correctly.
libfc: rearrange code in fc_disc_gpn_ft_resp()
libfc: discovery restart sequence error fix
libfc: do not log off rports before or after discovery
libfc: move rport_lookup into fc_rport.c
libfc: change to make remote port callback optional
libfc: have rport_create do a lookup for pre-existing rports first
libfc: make rport module maintain the rport list
libfc: simplify fc_lport_rport_callback
libfc: rport debug messages were printing pointer values
libfc: remove unused disc->delay element
libfc: eliminate disc->event
libfc: fix rport event race between READY and LOGO
libfc: don't create dummy (rogue) remote ports
libfc: rename rport event CREATED to READY
libfc: rearrange code in fc_rport_work
libfc: make rport structure optional
libfc: change elsct to use FC_ID instead of rdata
libfc: make fc_rport_priv the primary rport interface.
libfc: fix RPORT_TO_PRIV and PRIV_TO_RPORT() macros.
libfc: change interface for rport_create
libfc: prepare to split off struct fc_rport_priv from fc_rport_libfc_priv
fcoe: remove unnecessary list and lock initializations.
fcoe: libfcoe: extra semicolon in CHECK_LOGGING macros causes compile error

Robert Love (5):
libfc: Always reset remote port roles when receiving PRLI
libfc: Initialize fc_rport_identifiers inside fc_rport_create
libfc: Export FC headers
libfc: Fix misleading debug statement
fcoe: Add format spacing to FCOE_NETDEV_DBG debug macro

Vasu Dev (2):
fcoe, libfc: fully makes use of per cpu exch pool and then removes em_lock fcoe, libfc: adds per cpu exch pool within exchange manager(EM)

Yi Zou (1):
fcoe: Add sysfs parameter to fcoe for minimum DDP read I/O size

 drivers/scsi/fcoe/fcoe.c      |  948 ++++++++++++++++++++----------------
 drivers/scsi/fcoe/fcoe.h      |   32 +
 drivers/scsi/fcoe/libfcoe.c   |   10 
 drivers/scsi/libfc/fc_disc.c  |  523 ++++++++------------
 drivers/scsi/libfc/fc_elsct.c |   49 ++
 drivers/scsi/libfc/fc_exch.c  |  286 +++++++----
 drivers/scsi/libfc/fc_fcp.c   |    2 
 drivers/scsi/libfc/fc_lport.c |  222 ++------
 drivers/scsi/libfc/fc_rport.c | 1091 +++++++++++++++++++++++++----------------
 include/scsi/Kbuild           |    1 
 include/scsi/fc/Kbuild        |    4 
 include/scsi/fc/fc_gs.h       |    1 
 include/scsi/fc_encode.h      |   60 ++
 include/scsi/libfc.h          |  122 +++--
 14 files changed, 1824 insertions(+), 1527 deletions(-)
 create mode 100644 include/scsi/fc/Kbuild
Signature · 1 line
//Rob