History log of /freebsd/sys/dev/cxgbe/cxgbei/icl_cxgbei.c (Results 76 – 88 of 88)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# eb1856df 03-Dec-2015 Navdeep Parhar <np@FreeBSD.org>

Make full use of the pool of worker threads instead of using the first one all
the time.


# e2b09c9a 03-Dec-2015 Navdeep Parhar <np@FreeBSD.org>

Remove reminders for items that have been taken care of.


# fdc84c3a 03-Dec-2015 Navdeep Parhar <np@FreeBSD.org>

Send a flowc to set the max tx payload length. This flowc is ignored by
the firmware because the original flowc sent by t4_tom changed the
firmware-internal state of the tid. For now I'm setting MA

Send a flowc to set the max tx payload length. This flowc is ignored by
the firmware because the original flowc sent by t4_tom changed the
firmware-internal state of the tid. For now I'm setting MAX_DSL to 8K
and PDU accordingly. This will be tidied up with the next firmware
update that will handle multiple flowc's correctly.

show more ...


# d6f9d028 24-Nov-2015 Navdeep Parhar <np@FreeBSD.org>

cxgbe/cxgbei: Various changes in the rx path.

- In the iSCSI CPL handlers, do not rely on the ulpcb/icl_conn when in
the middle of assembling a PDU. This is so we don't have to grab
various loc

cxgbe/cxgbei: Various changes in the rx path.

- In the iSCSI CPL handlers, do not rely on the ulpcb/icl_conn when in
the middle of assembling a PDU. This is so we don't have to grab
various locks and evaluate the kernel state of the connection multiple
times. Instead, the state is evaluated once after the entire PDU is
received. This requires another ULP specific item in toepcb (ulpcb2).

- If there is data in the so_rcv sockbuf of a connection in iSCSI ULP
mode it must be from before the connection got promoted to ULP mode.
Convert the contents of the sockbuf to PDUs and deliver them to ICL.
Do this before delivering the PDUs received on the "normal" ULP path.

- The receive path within ICL is allowed to sleep so it's not
appropriate to deliver PDUs to ICL from the driver's ithread, or from
any other thread with any mutex held. Use worker threads (created
back in r285650 but unused till now) to dispatch received PDUs to ICL.
Assign a worker thread to each connection. For now everything goes to
the first thread.

- Prevent various bad races that are possible when more than one of
a) rx ithread, b) worker thread, and c) icl_conn_close are active at
the same time.

show more ...


# 34927579 24-Nov-2015 Navdeep Parhar <np@FreeBSD.org>

Allow an icl_cxgbei_pdu to be allocated without being associated
with an icl_conn right at the time of allocation.


# 77bd3dd0 17-Nov-2015 Navdeep Parhar <np@FreeBSD.org>

cxgbe/cxgbei: overhaul the iSCSI ULP driver.

- icl_cxgbei_conn is _the_ per-connection softc for iSCSI. Retire
iscsi_socket by removing all unneeded fields and moving the rest to
icl_cxgbei_con

cxgbe/cxgbei: overhaul the iSCSI ULP driver.

- icl_cxgbei_conn is _the_ per-connection softc for iSCSI. Retire
iscsi_socket by removing all unneeded fields and moving the rest to
icl_cxgbei_conn.

- Update pdu_queue to use the new t4_push_pdus and associated mbufq in
the TOE driver. Throw away all the callbacks registered during MOD_LOAD
as t4_push_pdus doesn't need them.

- Use the mbuf allocated for the BHS header to store icl_cxgbei_pdu as
well. This eliminates the custom zone for the PDUs and reduces the
number of allocations on the fast path. For each PDU, the old code
used to allocate an icl_cxgbei_pdu, an mbuf for the BHS, and tags for
the BHS and data mbufs. The new code allocates just one mbuf per PDU.
This is convenient for another reason -- it allows t4_tom to deal with
mbufs (which it understands) instead of having to call into the iSCSI
driver.

- Remove the socket upcalls, calls to ICL_DEBUG and ICL_WARN, and all
code within ICL_KERNEL_PROXY. None of this stuff is actually used by
cxgbei, it's probably leftover copy/paste from icl_soft.

- Fold various icl_foo into icl_cxgbei_foo if the cxgbei implementation
was simply a call to the other function.

- Remove set_tcb_field and use t4_set_tcb_field that's already available
in the base driver.

- Fix connection handoff to not assume that there is only one T4/T5
adapter in the system and that's the one handling all offloaded
connections. Walk the list of adapters and match tp->t_tod with the
adapter's toedev instead. This allows multiple TOE devices of multiple
types to coexist.

- Fix connection teardown by not reaching for the inp via the toepcb but
via the socket instead. If the tid is dead in the hardware then the
inp has already been unhooked from the toepcb by t4_tom.

- Add more CTRs. The ones on the normal fast path are disabled by
default to avoid flooding the log.

- Refine pdu_append_data.

- Other miscellaneous changes.

show more ...


# 7ce6517f 30-Sep-2015 Navdeep Parhar <np@FreeBSD.org>

- Allocate more space than needed for icl_conn and icl_pdu. The extra
space will be used for driver specific items.

- Do not use the same name as icl_soft for the PDU zone.


# f9eb9c91 29-Sep-2015 Navdeep Parhar <np@FreeBSD.org>

- Fix minor memory leak (ic_offload is never freed).

- Remove unused icl_pdu_stailq.

- Do not use the same names as icl_soft for the global connection
counter or for the per-connection send/recv

- Fix minor memory leak (ic_offload is never freed).

- Remove unused icl_pdu_stailq.

- Do not use the same names as icl_soft for the global connection
counter or for the per-connection send/recv CVs.

show more ...


# 01538c34 29-Sep-2015 Navdeep Parhar <np@FreeBSD.org>

Use the base driver's malloc type instead of creating a new one.


Revision tags: release/10.2.0
# f77be90a 22-Jun-2015 Navdeep Parhar <np@FreeBSD.org>

Catch up with r281088.


# 9d8269b2 12-Mar-2015 Navdeep Parhar <np@FreeBSD.org>

First round of code cleanup and reorganization. This is mostly code on
the slow path. Changes to the fast path will follow later.

- Use the standard ULD registration and activation mechanism offer

First round of code cleanup and reorganization. This is mostly code on
the slow path. Changes to the fast path will follow later.

- Use the standard ULD registration and activation mechanism offered by
if_cxgbe. This eliminates all the code that managed the list of
offload_device structures. This simplifies the CPL dispatch too by
eliminating t4tom_cpl_handler_register_flag and associated code.

- Remove all unused or write-only fields from various structures
(iscsi_socket, offload_device, cxgbei_ulp2_ddp_info, ulp_iscsi_info)

- Eliminate the two line wrappers around malloc/free. While here,
switch to using M_CXGBE for all allocations.

- Simplify the page size settings in the chip (for iSCSI). This ULD
"owns" these settings so it should simply write the values that it
wants to the A_ULP_RX_ISCSI_TAGMASK and A_ULP_RX_ISCSI_PSZ registers.
This eliminates the globals ddp_page_order[], ddp_page_shift[],
page_idx and all related code.

- Maintain the per-adapter ULD state in one data structure instead of
two. This consolidates struct offload_device and struct
cxgbei_ulp2_ddp_info and into struct cxgbei_data, which is stored in
adapter->iscsi_softc.

- Leave socket->so_emuldata alone, it exists for a different purpose
(which is definitely not iSCSI). Store the per-socket offload state
in a new field in struct icl_conn instead. (The new field exists only
in this project branch and hasn't been reviewed for inclusion into
head yet).

- Switch to the system version of mbufq.

- Tidy up the CPL/callback dispatch from if_cxgbe/t4_tom into cxgbei.
The tid/toepcb is always available (t4_tom has looked it up) so it's a
waste of time looking it up again.

show more ...


# 0a4dcbef 11-Mar-2015 Navdeep Parhar <np@FreeBSD.org>

Add FBSDID, and include opt_inet and opt_inet6 in all C files.


# b4943e97 11-Feb-2015 Navdeep Parhar <np@FreeBSD.org>

Initial drop of the hardare accelerated iSCSI driver.

Submitted by: Sreenivasa Honnur <shonnur at chelsio dot com>
Sponsored by: Chelsio Communications


1234