In order to improve target performance, this makes a basic change
to libfc to eliminate its allocation of an exchange and sequence
for incoming requests.
If the request is handled with a simple reply, ending the exchange,
then there's no need to allocate an exchange just to give an RX_ID
other than 0xffff. Any abort received after the reply will not
find an active exchange anyway.
If the request is more complicated, as in target write requests,
an explicit exchange allocation can be done. This eliminates the
locking and allocation needed for small reads.
These changes could also help initiator performance slightly and
makes a several ELS handling routines smaller.
---
Joe Eykholt (4):
libfc: don't require a local exchange for incoming requests
libfc: add interface to allocate a sequence for incoming requests
libfc: add fc_fill_reply_hdr() and fc_fill_hdr()
libfc: add fc_frame_sid() and fc_frame_did() functions
drivers/scsi/fcoe/libfcoe.c | 9 +-
drivers/scsi/libfc/fc_disc.c | 19 +---
drivers/scsi/libfc/fc_elsct.c | 2
drivers/scsi/libfc/fc_exch.c | 213 ++++++++++++++++++++++++-----------------
drivers/scsi/libfc/fc_fcp.c | 6 +
drivers/scsi/libfc/fc_libfc.c | 77 +++++++++++++++
drivers/scsi/libfc/fc_lport.c | 107 +++++++--------------
drivers/scsi/libfc/fc_rport.c | 200 ++++++++++++--------------------------
include/scsi/fc_encode.h | 7 +
include/scsi/fc_frame.h | 45 ++++++++-
include/scsi/libfc.h | 45 +++------
11 files changed, 378 insertions(+), 352 deletions(-)
--
Joe Eykholt
_______________________________________________
devel mailing list
[email protected]
http://www.open-fcoe.org/mailman/listinfo/devel