AccelIO v1.4 GA
New Features:
- Reconnect (beta). This feature allows detection and recovery from connection failure.
Configuration manual: https://community.mellanox.com/docs/DOC-2158 - Tasks pools are now created per context basis substantially reducing memory allocation and registration
Changes:
- Add hello_lat test for kernel
- Add option for cpu bind for kernel tests
- API change:
a. one consistent API for memory allocation/registration and memory pooling. registered memory returned in single type xio_reg_mem
b. xio_context_create method now receives xio_context_params structure
c. XIO_OPTNAME_MAX_INLINE_DATA was renamed to XIO_OPTNAME_MAX_INLINE_XIO_DATA and XIO_OPTNAME_MAX_INLINE_HEADER was renamed to XIO_OPTNAME_MAX_INLINE_XIO_HEADER.
d. The following xio_msg_flag XIO_MSG_FLAG_SMALL_ZERO_COPY was deprecated. It is splitted into 2 flags:
i. XIO_MSG_FLAG_PEER_WRITE_RSP
ii. XIO_MSG_FLAG_PEER_READ_REQ - Kernel latency was improved by adding polling mechanism.
- Add an option to change the default max_inline_data
- Add option for memory allocation before process start
- Add new functions:
a. xio_version - returns the current version of accelio in the form "accelio_v1.3-rc3-0-gb69a343"
b. xio_context_poll_wait - poll for events for a specified (possibly infinite) amount of time
c. xio_context_poll_events - poll for events using direct access to the event signaling resources
d. xio_connection_ioctl - enable query connection’s runtime parameters such as credits
Bug Fixes:
- Session removed teardown work from inside the work function preventing kernel crash.
- cm_rejected comes after cm_established event causing crash
- flushing tasks before closing the transport
- protect server session teardown when session is destructed while connections are still trying to connect
- In case ctx of last connection in session was destroyed before session_destroy, calling session_destroy resulted in dangling pointer
- protect against both notification of connection "disconnect" and "close"
- protect against NULL verbs that is returned from rdmacm
- xio_mem_register/xio_mem_alloc failed on hosts with installed rdma stack and without installed rdma capable HCAs
- xio_context_run_loop which run with timeout, exits long time after timeout passed
- sending a beacon was not completed leaving xio's rdma_handle in positive reference count
Known issues:
- Accelio kernel: occasionally when sending response of size 8K-10K using rdma transport there is IB_WC_REM_INV_REQ_ERR error and the response is not being sent
System Requirements
Driver stack:
- Inbox Infiniband stack
- MLNX_OFED 3.0/2.4
User Space Operating system:
- RHEL 6.4, and up
- Ubuntu 12.04 and up
Kernel Module:
- Linux Kernel 3.13 and up
Tested RDMA NICs:
- Mellanox ConnectX-3
- Mellanox ConnectX-3 Pro
- Mellanox ConnectIB