]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
cxgbei: Add support for zero-copy iSCSI target transmission/read.
authorJohn Baldwin <jhb@FreeBSD.org>
Fri, 14 May 2021 19:17:20 +0000 (12:17 -0700)
committerJohn Baldwin <jhb@FreeBSD.org>
Fri, 14 May 2021 19:17:20 +0000 (12:17 -0700)
commita1c687347a7f983dadec10949938ee4d1b321120
tree2fe47356e8c6ed7cd078904b307fb785b348d532
parent31df8ff73e3aa809146fae9baa6a96e1adf8526b
cxgbei: Add support for zero-copy iSCSI target transmission/read.

- Switch to allocating the cxgbei version of icl_pdu explicitly
  as a separate refcounted object allocated via malloc/free
  instead of storing it in the bhs mbuf prior to the bhs.

- Support the icl_conn_pdu_queue_cb() method to set a callback
  on a PDU to be invoked when the PDU is freed.

- For ICL_NOCOPY buffers, use an external mbuf to manage the
  storage for the buffer via m_extaddref().  Each external mbuf
  holds a reference on the associated PDU, so the callback is
  invoked once all of the external mbufs have been freed.

Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D29910
sys/dev/cxgbe/cxgbei/cxgbei.h
sys/dev/cxgbe/cxgbei/icl_cxgbei.c