← Documents Documentation/networking/device_drivers/ethernet/neterion/s2io.rst GitHub 원문 ↗

Linux 6.18.37 · Networking

Neterion Xframe I/II PCI-X 10GbE Driver

s2io Xframe I/II의 기능, module parameter와 PCI-X·MTU·TCP window·NAPI 성능 설정을 설명합니다.

Source pathDocumentation/networking/device_drivers/ethernet/neterion/s2io.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약·해설

s2io.rst:1-196

이 문서는 오래된 PCI-X 10GbE 어댑터를 다루므로 일반 네트워크 튜닝뿐 아니라 bus transaction 설정이 성능에 큰 영향을 줍니다. 먼저 MTU, TCP window, checksum/TSO와 NAPI를 맞춘 뒤 플랫폼별 MOST/MMRBC를 시험해야 합니다.

성능 조정 순서
순서설정기준
1MTUswitch 9000, 직접 연결 9600
2TCP windowMTU 1500 예시 210 KiB, MTU 9000 권장 10 MB
3offload / NAPITX·RX checksum, TSO, NAPI
4queue/ring1~8, 메모리와 workload 고려
5PCI-XMOST/MMRBC와 latency timer; chipset errata 우선

위험이 낮은 설정부터 플랫폼별 PCI-X 조정으로 진행합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 .. SPDX-License-Identifier: GPL-2.0
2
3 =========================================================
4 Neterion's (Formerly S2io) Xframe I/II PCI-X 10GbE driver
5 =========================================================
6
7 Release notes for Neterion's (Formerly S2io) Xframe I/II PCI-X 10GbE driver.
8
9 .. Contents
10 - 1. Introduction
11 - 2. Identifying the adapter/interface
12 - 3. Features supported
13 - 4. Command line parameters
14 - 5. Performance suggestions
15 - 6. Available Downloads
16
17
18 1. Introduction
19 ===============
20 This Linux driver supports Neterion's Xframe I PCI-X 1.0 and
21 Xframe II PCI-X 2.0 adapters. It supports several features
22 such as jumbo frames, MSI/MSI-X, checksum offloads, TSO, UFO and so on.
23 See below for complete list of features.
24
25 All features are supported for both IPv4 and IPv6.
26
27 2. Identifying the adapter/interface
28 ====================================
29
30 a. Insert the adapter(s) in your system.
31 b. Build and load driver::
32
33 # insmod s2io.ko
34
35 c. View log messages::
36
37 # dmesg | tail -40
38
39 You will see messages similar to::
40
41 eth3: Neterion Xframe I 10GbE adapter (rev 3), Version 2.0.9.1, Intr type INTA
42 eth4: Neterion Xframe II 10GbE adapter (rev 2), Version 2.0.9.1, Intr type INTA
43 eth4: Device is on 64 bit 133MHz PCIX(M1) bus
44
45 The above messages identify the adapter type(Xframe I/II), adapter revision,
46 driver version, interface name(eth3, eth4), Interrupt type(INTA, MSI, MSI-X).
47 In case of Xframe II, the PCI/PCI-X bus width and frequency are displayed
48 as well.
49
50 To associate an interface with a physical adapter use "ethtool -p <ethX>".
51 The corresponding adapter's LED will blink multiple times.
52
53 3. Features supported
54 =====================
55 a. Jumbo frames. Xframe I/II supports MTU up to 9600 bytes,
56 modifiable using ip command.
57
58 b. Offloads. Supports checksum offload(TCP/UDP/IP) on transmit
59 and receive, TSO.
60
61 c. Multi-buffer receive mode. Scattering of packet across multiple
62 buffers. Currently driver supports 2-buffer mode which yields
63 significant performance improvement on certain platforms(SGI Altix,
64 IBM xSeries).
65
66 d. MSI/MSI-X. Can be enabled on platforms which support this feature
67 resulting in noticeable performance improvement (up to 7% on certain
68 platforms).
69
70 e. Statistics. Comprehensive MAC-level and software statistics displayed
71 using "ethtool -S" option.
72
73 f. Multi-FIFO/Ring. Supports up to 8 transmit queues and receive rings,
74 with multiple steering options.
75
76 4. Command line parameters
77 ==========================
78
79 a. tx_fifo_num
80 Number of transmit queues
81
82 Valid range: 1-8
83
84 Default: 1
85
86 b. rx_ring_num
87 Number of receive rings
88
89 Valid range: 1-8
90
91 Default: 1
92
93 c. tx_fifo_len
94 Size of each transmit queue
95
96 Valid range: Total length of all queues should not exceed 8192
97
98 Default: 4096
99
100 d. rx_ring_sz
101 Size of each receive ring(in 4K blocks)
102
103 Valid range: Limited by memory on system
104
105 Default: 30
106
107 e. intr_type
108 Specifies interrupt type. Possible values 0(INTA), 2(MSI-X)
109
110 Valid values: 0, 2
111
112 Default: 2
113
114 5. Performance suggestions
115 ==========================
116
117 General:
118
119 a. Set MTU to maximum(9000 for switch setup, 9600 in back-to-back configuration)
120 b. Set TCP windows size to optimal value.
121
122 For instance, for MTU=1500 a value of 210K has been observed to result in
123 good performance::
124
125 # sysctl -w net.ipv4.tcp_rmem="210000 210000 210000"
126 # sysctl -w net.ipv4.tcp_wmem="210000 210000 210000"
127
128 For MTU=9000, TCP window size of 10 MB is recommended::
129
130 # sysctl -w net.ipv4.tcp_rmem="10000000 10000000 10000000"
131 # sysctl -w net.ipv4.tcp_wmem="10000000 10000000 10000000"
132
133 Transmit performance:
134
135 a. By default, the driver respects BIOS settings for PCI bus parameters.
136 However, you may want to experiment with PCI bus parameters
137 max-split-transactions(MOST) and MMRBC (use setpci command).
138
139 A MOST value of 2 has been found optimal for Opterons and 3 for Itanium.
140
141 It could be different for your hardware.
142
143 Set MMRBC to 4K**.
144
145 For example you can set
146
147 For opteron::
148
149 #setpci -d 17d5:* 62=1d
150
151 For Itanium::
152
153 #setpci -d 17d5:* 62=3d
154
155 For detailed description of the PCI registers, please see Xframe User Guide.
156
157 b. Ensure Transmit Checksum offload is enabled. Use ethtool to set/verify this
158 parameter.
159
160 c. Turn on TSO(using "ethtool -K")::
161
162 # ethtool -K <ethX> tso on
163
164 Receive performance:
165
166 a. By default, the driver respects BIOS settings for PCI bus parameters.
167 However, you may want to set PCI latency timer to 248::
168
169 #setpci -d 17d5:* LATENCY_TIMER=f8
170
171 For detailed description of the PCI registers, please see Xframe User Guide.
172
173 b. Use 2-buffer mode. This results in large performance boost on
174 certain platforms(eg. SGI Altix, IBM xSeries).
175
176 c. Ensure Receive Checksum offload is enabled. Use "ethtool -K ethX" command to
177 set/verify this option.
178
179 d. Enable NAPI feature(in kernel configuration Device Drivers ---> Network
180 device support ---> Ethernet (10000 Mbit) ---> S2IO 10Gbe Xframe NIC) to
181 bring down CPU utilization.
182
183 .. note::
184
185 For AMD opteron platforms with 8131 chipset, MMRBC=1 and MOST=1 are
186 recommended as safe parameters.
187
188 For more information, please review the AMD8131 errata at
189 http://vip.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/
190 26310_AMD-8131_HyperTransport_PCI-X_Tunnel_Revision_Guide_rev_3_18.pdf
191
192 6. Support
193 ==========
194
195 For further support please contact either your 10GbE Xframe NIC vendor (IBM,
196 HP, SGI etc.)
197

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

드라이버 개요, 식별과 기능

1-75

이 문서는 `GPL-2.0` 라이선스를 따릅니다.

Neterion(구 S2io) Xframe I/II PCI-X 10GbE 드라이버

이 Linux 드라이버는 Xframe I PCI-X 1.0과 Xframe II PCI-X 2.0 어댑터를 지원합니다. jumbo frame, MSI/MSI-X, checksum offload, TSO, UFO 등을 IPv4와 IPv6 모두에서 제공합니다.

어댑터와 인터페이스 식별

  • 어댑터를 시스템에 장착합니다.
  • `s2io.ko`를 빌드해 로드합니다.
  • 최근 커널 로그를 확인합니다.
# insmod s2io.ko
# dmesg | tail -40

로그는 다음과 비슷합니다.

eth3: Neterion Xframe I 10GbE adapter (rev 3), Version 2.0.9.1, Intr type INTA
eth4: Neterion Xframe II 10GbE adapter (rev 2), Version 2.0.9.1, Intr type INTA
eth4: Device is on 64 bit 133MHz PCIX(M1) bus

메시지에서 Xframe I/II 유형, revision, driver version, interface name과 interrupt type(INTA, MSI, MSI-X)을 확인합니다. Xframe II는 PCI/PCI-X bus width와 frequency도 표시합니다. `ethtool -p <ethX>`를 실행하면 대응 어댑터의 LED가 여러 번 깜박입니다.

Xframe I/II 지원 기능
기능지원 범위설명
Jumbo frameMTU 최대 9600`ip` 명령으로 변경
OffloadTX/RX checksum, TSOTCP/UDP/IP checksum
Multi-buffer RX2-buffer modeSGI Altix, IBM xSeries 등에서 성능 향상
MSI/MSI-X지원 플랫폼일부 플랫폼에서 최대 약 7% 향상
통계MAC·software`ethtool -S`로 표시
Multi-FIFO/RingTX queue·RX ring 최대 8개여러 steering 방식 지원

원문의 기능 목록과 한계를 정리했습니다.

.. SPDX-License-Identifier: GPL-2.0

=========================================================
Neterion's (Formerly S2io) Xframe I/II PCI-X 10GbE driver
=========================================================

Release notes for Neterion's (Formerly S2io) Xframe I/II PCI-X 10GbE driver.

.. Contents
  - 1.  Introduction
  - 2.  Identifying the adapter/interface
  - 3.  Features supported
  - 4.  Command line parameters
  - 5.  Performance suggestions
  - 6.  Available Downloads


1. Introduction
===============
This Linux driver supports Neterion's Xframe I PCI-X 1.0 and
Xframe II PCI-X 2.0 adapters. It supports several features
such as jumbo frames, MSI/MSI-X, checksum offloads, TSO, UFO and so on.
See below for complete list of features.

All features are supported for both IPv4 and IPv6.

2. Identifying the adapter/interface
====================================

a. Insert the adapter(s) in your system.
b. Build and load driver::

        # insmod s2io.ko

c. View log messages::

        # dmesg | tail -40

You will see messages similar to::

        eth3: Neterion Xframe I 10GbE adapter (rev 3), Version 2.0.9.1, Intr type INTA
        eth4: Neterion Xframe II 10GbE adapter (rev 2), Version 2.0.9.1, Intr type INTA
        eth4: Device is on 64 bit 133MHz PCIX(M1) bus

The above messages identify the adapter type(Xframe I/II), adapter revision,
driver version, interface name(eth3, eth4), Interrupt type(INTA, MSI, MSI-X).
In case of Xframe II, the PCI/PCI-X bus width and frequency are displayed
as well.

To associate an interface with a physical adapter use "ethtool -p <ethX>".
The corresponding adapter's LED will blink multiple times.

3. Features supported
=====================
a. Jumbo frames. Xframe I/II supports MTU up to 9600 bytes,
   modifiable using ip command.

b. Offloads. Supports checksum offload(TCP/UDP/IP) on transmit
   and receive, TSO.

c. Multi-buffer receive mode. Scattering of packet across multiple
   buffers. Currently driver supports 2-buffer mode which yields
   significant performance improvement on certain platforms(SGI Altix,
   IBM xSeries).

d. MSI/MSI-X. Can be enabled on platforms which support this feature
   resulting in noticeable performance improvement (up to 7% on certain
   platforms).

e. Statistics. Comprehensive MAC-level and software statistics displayed
   using "ethtool -S" option.

f. Multi-FIFO/Ring. Supports up to 8 transmit queues and receive rings,
   with multiple steering options.

명령줄 매개변수

76-113

명령줄 매개변수

s2io module parameter
매개변수의미유효 범위기본값
`tx_fifo_num`송신 큐 수1~81
`rx_ring_num`수신 링 수1~81
`tx_fifo_len`각 송신 큐 크기모든 큐 합계 8192 이하4096
`rx_ring_sz`각 수신 링 크기(4K block)시스템 메모리 한도30
`intr_type`interrupt 유형0(INTA), 2(MSI-X)2

유효 범위와 기본값을 원문 그대로 보존했습니다.

4. Command line parameters
==========================

a. tx_fifo_num
        Number of transmit queues

Valid range: 1-8

Default: 1

b. rx_ring_num
        Number of receive rings

Valid range: 1-8

Default: 1

c. tx_fifo_len
        Size of each transmit queue

Valid range: Total length of all queues should not exceed 8192

Default: 4096

d. rx_ring_sz
        Size of each receive ring(in 4K blocks)

Valid range: Limited by memory on system

Default: 30

e. intr_type
        Specifies interrupt type. Possible values 0(INTA), 2(MSI-X)

Valid values: 0, 2

Default: 2

성능 권장 사항과 지원

114-196

성능 권장 사항

일반적으로 MTU를 최대로 설정합니다. switch 구성은 9000, 직접 연결(back-to-back)은 9600을 사용하고 TCP window를 알맞게 조정합니다.

MTU 1500에서는 210 KiB가 좋은 결과를 보인 예가 있습니다.

# sysctl -w net.ipv4.tcp_rmem="210000 210000 210000"
# sysctl -w net.ipv4.tcp_wmem="210000 210000 210000"

MTU 9000에서는 TCP window 10 MB를 권장합니다.

# sysctl -w net.ipv4.tcp_rmem="10000000 10000000 10000000"
# sysctl -w net.ipv4.tcp_wmem="10000000 10000000 10000000"

송신 성능

  • 기본적으로 PCI bus parameter의 BIOS 설정을 따릅니다. 필요하면 `setpci`로 max-split-transactions(MOST)와 MMRBC를 실험할 수 있습니다.
  • 관측된 최적 MOST 값은 Opteron에서 2, Itanium에서 3이지만 하드웨어마다 다를 수 있습니다.
  • MMRBC는 4K로 설정합니다.
  • TX checksum offload가 켜져 있는지 ethtool로 확인합니다.
  • `ethtool -K`로 TSO를 켭니다.
#setpci -d 17d5:* 62=1d
#setpci -d 17d5:* 62=3d
# ethtool -K <ethX> tso on

수신 성능

  • 필요하면 PCI latency timer를 248(`f8`)로 설정합니다.
  • 일부 SGI Altix와 IBM xSeries 플랫폼에서 큰 향상을 주는 2-buffer mode를 사용합니다.
  • `ethtool -K ethX`로 RX checksum offload가 켜졌는지 확인합니다.
  • 커널 구성의 S2IO 10GbE Xframe NIC에서 NAPI를 활성화해 CPU 사용량을 낮춥니다.
#setpci -d 17d5:* LATENCY_TIMER=f8

AMD Opteron과 8131 chipset 조합에서는 안전한 값으로 MMRBC=1, MOST=1을 권장합니다. 자세한 내용은 원문의 AMD8131 errata 링크를 참고하십시오.

추가 지원은 IBM, HP, SGI 등 사용 중인 10GbE Xframe NIC 공급업체에 문의하십시오.

5. Performance suggestions
==========================

General:

a. Set MTU to maximum(9000 for switch setup, 9600 in back-to-back configuration)
b. Set TCP windows size to optimal value.

For instance, for MTU=1500 a value of 210K has been observed to result in
good performance::

        # sysctl -w net.ipv4.tcp_rmem="210000 210000 210000"
        # sysctl -w net.ipv4.tcp_wmem="210000 210000 210000"

For MTU=9000, TCP window size of 10 MB is recommended::

        # sysctl -w net.ipv4.tcp_rmem="10000000 10000000 10000000"
        # sysctl -w net.ipv4.tcp_wmem="10000000 10000000 10000000"

Transmit performance:

a. By default, the driver respects BIOS settings for PCI bus parameters.
   However, you may want to experiment with PCI bus parameters
   max-split-transactions(MOST) and MMRBC (use setpci command).

   A MOST value of 2 has been found optimal for Opterons and 3 for Itanium.

   It could be different for your hardware.

   Set MMRBC to 4K**.

   For example you can set

   For opteron::

        #setpci -d 17d5:* 62=1d

   For Itanium::

        #setpci -d 17d5:* 62=3d

   For detailed description of the PCI registers, please see Xframe User Guide.

b. Ensure Transmit Checksum offload is enabled. Use ethtool to set/verify this
   parameter.

c. Turn on TSO(using "ethtool -K")::

        # ethtool -K <ethX> tso on

Receive performance:

a. By default, the driver respects BIOS settings for PCI bus parameters.
   However, you may want to set PCI latency timer to 248::

        #setpci -d 17d5:* LATENCY_TIMER=f8

   For detailed description of the PCI registers, please see Xframe User Guide.

b. Use 2-buffer mode. This results in large performance boost on
   certain platforms(eg. SGI Altix, IBM xSeries).

c. Ensure Receive Checksum offload is enabled. Use "ethtool -K ethX" command to
   set/verify this option.

d. Enable NAPI feature(in kernel configuration Device Drivers ---> Network
   device support --->  Ethernet (10000 Mbit) ---> S2IO 10Gbe Xframe NIC) to
   bring down CPU utilization.

.. note::

   For AMD opteron platforms with 8131 chipset, MMRBC=1 and MOST=1 are
   recommended as safe parameters.

For more information, please review the AMD8131 errata at
http://vip.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/
26310_AMD-8131_HyperTransport_PCI-X_Tunnel_Revision_Guide_rev_3_18.pdf

6. Support
==========

For further support please contact either your 10GbE Xframe NIC vendor (IBM,
HP, SGI etc.)