Skip to content

Commit 5c7b4b9

Browse files
AlexanderGrissikgalnoam
authored andcommitted
issue: 4610737 Updating XLIO Readme with threads mode
1. Updating README with threads mode information. 2. Updating README.md with latest changes. Signed-off-by: Alexander Grissik <[email protected]>
1 parent 50ff91d commit 5c7b4b9

File tree

3 files changed

+71
-58
lines changed

3 files changed

+71
-58
lines changed

README

Lines changed: 40 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -8,41 +8,33 @@ accelerated network hardware.
88
XLIO dynamically links with these applications at run-time, redirect standard socket API calls allowing them to be
99
be accelerated without modification.
1010

11-
Build library from source
12-
========================
13-
14-
Prerequisites:
15-
1. rdma-core upstream kernel and userspace verbs libraries (libibverbs, libmlx4, libmlx5, librdmacm)
16-
2. Autoconf, Automake, libtool, unzip, patch, libnl-devel (netlink 1 or 3)
17-
18-
Build:
19-
1. ./autogen.sh
20-
2. ./configure --prefix=/usr
21-
3. make
22-
4. sudo make install
23-
24-
25-
Install library from rpm or debian
26-
=================================
27-
28-
Installing:
29-
Install the package as any other rpm or debian package [rpm -i libxlio.X.Y.Z-R.rpm].
30-
The installation copies the XLIO library to: /usr/lib[64]/libxlio.so
31-
The XLIO monitoring utility is installed at: /usr/bin/xlio_stats
32-
The XLIO extra socket API is located at: /usr/include/mellanox/xlio_extra.h
33-
34-
Upgrading:
35-
Use rpm update procedure: # rpm -U libxlio.X.Y.Z-R.rpm
36-
You can upgrade by uninstalling (rpm -e) the previously installed package
37-
before starting to install the new library rpm.
38-
39-
Uninstalling:
40-
When uninstalling remember to uninstall (rpm -e) the package before you
41-
uninstall ofed.
11+
XLIO execution modes
12+
====================
13+
XLIO supports two execution modes.
14+
1 - Run to completion (R2C)
15+
2 - Worker Threads
4216

43-
Running:
44-
Set the environment variable LD_PRELOAD to libxlio.so and run your application.
45-
Example: # LD_PRELOAD=libxlio.so iperf -uc 224.22.22.22 -t 5
17+
Run to completion
18+
-----------------
19+
By default, XLIO works in R2C mode, meaning, the execution context is
20+
provided to XLIO by the application. In particular, XLIO code such as reading/writing packets,
21+
polling CQs, handling sockets, etc, is performed as part of POSIX socket calls or Ultra API calls,
22+
on the same thread which called the API.
23+
In terms of performance this mode is the preferred one, however,
24+
this mode requires from the application to work with sockets in an efficient way,
25+
by avoiding sharing sockets between threads, provide enough execution time to XLIO, use per thread epoll and more.
26+
In case of listen sockets, each thread should have its own listen socket.
27+
28+
Worker Threads
29+
--------------
30+
In this mode XLIO spawns XLIO worker threads. These threads run in the background and perform network operations.
31+
This mode requires minimal network awareness from the aplication,
32+
i.e applications may share sockets between threads, use single listening thread,
33+
use single epoll context or rarely call socket APIs.
34+
While R2C mode provides best performance, Worker Threads mode provides greater flexibility.
35+
The number of XLIO worker threads is controlled by the performance.threading.worker_threads parameter.
36+
XLIO Ultra API is not supported with this mode.
37+
Please see User Manual for additional details and current limitations.
4638

4739
Configuration Subsystem
4840
=======================
@@ -986,8 +978,22 @@ automatically to reach a desired rate of interrupts.
986978
4. Disable CQ moderation with XLIO_CQ_MODERATION_ENABLE=0
987979
5. Disable Adaptive CQ moderation with XLIO_CQ_AIM_INTERVAL_MSEC=0
988980

981+
Install library from rpm or debian
982+
=================================
989983

984+
Installing:
985+
Install the package as any other rpm or debian package [rpm -i libxlio.X.Y.Z-R.rpm].
986+
The installation copies the XLIO library to: /usr/lib[64]/libxlio.so
987+
The XLIO monitoring utility is installed at: /usr/bin/xlio_stats
988+
The XLIO extra socket API is located at: /usr/include/mellanox/xlio_extra.h
989+
990+
Upgrading:
991+
Use rpm update procedure: # rpm -U libxlio.X.Y.Z-R.rpm
992+
You can upgrade by uninstalling (rpm -e) the previously installed package
993+
before starting to install the new library rpm.
990994

995+
Uninstalling:
996+
When uninstalling remember to uninstall (rpm -e) the package before you uninstall DOCA.
991997

992998
Troubleshooting
993999
===============
@@ -1004,7 +1010,6 @@ This warning message means that you are using XLIO with high log level:
10041010
XLIO_TRACELEVEL variable value is set to 4 or more.
10051011
In order to fix it - set XLIO_TRACELEVEL to it's default value: 3
10061012

1007-
10081013
* CAP_NET_RAW and root access
10091014

10101015
XLIO_WARNING: ******************************************************************************

README.md

Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
# XLIO - Accelerated IO SW library
22

3-
The NVIDIA® Accelerated IO (XLIO) SW library boosts the performance of TCP/IP applications based on NGINX (CDN, DoH Etc.) and storage solutions as part of the SPDK. XLIO is a user-space software library that exposes standard socket APIs with kernel-bypass architecture, enabling a hardware-based direct copy between an application’s user-space memory and the network interface.
3+
The NVIDIA® Accelerated IO (XLIO) SW library boosts the performance of TCP/IP network applications providing high bandwidth and low CPU usage.
4+
XLIO is a user-space software library which exposes standard POSIX and XLIO Ultra socket APIs with kernel-bypass architecture, enabling a hardware-based direct copy between an application user-space memory and the network interface.
45

5-
Coupling XLIO with NVIDIA ConnectX®-6 Dx, NVIDIA ConnectX®-7 or NVIDIA BlueField®-2 data processing unit (DPU) acceleration capabilities provides breakthrough performance of Transport Layer Security (TLS) encryption/decryption. It also enables working with features such as HW LRO/TSO and Striding-RQ which increase TCP performance, without application code changes and using a standard socket API.
6+
Coupling XLIO with Crypto Enabled NVIDIA ConnectX, NVIDIA BlueField data processing unit (DPU) acceleration capabilities, provides a breakthrough performance of Transport Layer Security (TLS) encryption and decryption.
7+
XLIO is capable of utilizing HW features such as LRO/TSO and Striding-RQ which increase TCP performance, without application code changes for both
8+
POSIX socket and XLIO Ultra APIs.
69

7-
Please visit our [documentation site](https://docs.nvidia.com/networking/category/xlio) for more details.
10+
Please visit our [documentation website](https://docs.nvidia.com/networking/category/xlio) for more details.
811

912
<hr>
1013

@@ -16,24 +19,28 @@ Please visit our [documentation site](https://docs.nvidia.com/networking/categor
1619
* [Licenses](#licenses)
1720
* [Information](#information)
1821
* [Contribution](#contribution)
19-
* [Configuration](#configuration)
2022

2123
<hr>
2224

2325
## Getting Started
2426

25-
### Prerequisits
27+
### Installing XLIO
2628

27-
#### Driver Stack
29+
XLIO is available as part of DOCA Software Stack.
30+
Please visit [DOCA website](https://developer.nvidia.com/networking/doca) for more details.
2831

29-
XLIO can work on top of both MLNX_OFED driver stack that supports Ethernet and on a lighter driver stack, MLNX_EN that supports only Ethernet.
32+
### Building XLIO
33+
34+
#### Prerequisits
3035

31-
[MLNX_OFED](https://network.nvidia.com/products/infiniband-drivers/linux/mlnx_ofed/)
32-
[MLNX_EN](https://network.nvidia.com/products/ethernet-drivers/linux/mlnx_en/)
36+
##### DOCA Software stack
3337

34-
#### DPCP
38+
XLIO requires NVIDIA DOCA-Host software stack or NVIDIA Bluefiled bundle to be installed on the system.
39+
Please visit [DOCA website](https://developer.nvidia.com/networking/doca) for more details.
3540

36-
DPCP (Direct Packet Control Plane) is mandatory to enable advanced HW features for supported NVIDIA HW.
41+
##### DPCP
42+
43+
DPCP (Direct Packet Control Plane) is mandatory to run XLIO.
3744
Repository: [libdpcp](https://github.com/Mellanox/libdpcp.git)
3845

3946
```sh
@@ -43,7 +50,11 @@ $ make -j
4350
$ make install
4451
```
4552

46-
### Building XLIO
53+
##### Tools
54+
55+
Autoconf, Automake, libtool, unzip, patch, libnl-devel (netlink 3)
56+
57+
#### Compiling XLIO
4758

4859
Run the following commands from within the directory at the top of the tree:
4960

@@ -55,7 +66,7 @@ $ make install
5566
```
5667
--enable-utls : Enables uTLS HW offload for supported NVIDIA HW.
5768

58-
### Building XLIO using preinstalled dpcp
69+
#### Compiling XLIO using preinstalled dpcp
5970

6071
```sh
6172
$ ./autogen.sh
@@ -64,6 +75,9 @@ $ make -j
6475
$ make install
6576
```
6677

78+
#### Configure
79+
See more [Options](./docs/configuration.md)
80+
6781
### Usage Examples
6882

6983
#### Sockperf
@@ -88,26 +102,20 @@ N - Number of Nginx workers.
88102
* TCP
89103
* UDP
90104

91-
## Supported CPU Architectures
105+
## Supported CPU Architecturess
92106

93107
* [x86_64](https://en.wikipedia.org/wiki/X86-64)
94108
* [Arm](https://www.arm.com/)
95109

96-
## Supported NICs
110+
## Supported HW
97111

98-
* NVIDIA ConnectX®-6
99-
* NVIDIA ConnectX®-7
100-
* NVIDIA BlueField®-2
101-
* NVIDIA BlueField®-3
112+
* Please refer to the [User Manual](https://docs.nvidia.com/networking/software/accelerator-software/index.html#xlio) for supported device list.
102113

103114
## Licenses
104115
See [LICENSE](./LICENSE) file
105116

106117
## Information
107-
See [README](./README) file
118+
See [README](./README) file for XLIO features and parameters.
108119

109120
## Contribution
110121
[Contribution](./docs/contributing.md) guidelines for this project
111-
112-
## Configuration
113-
[Configuration](./docs/configuration.md) options description

docs/arch.png

25.1 KB
Loading

0 commit comments

Comments
 (0)