#
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
|