network: increase transmit/receive queues size to 16384 (#41289)
A 10G Marvell AQC113 included in an ASRock TRX50WS motherboard NIC claims to support tx/rx queues as large as 8184. After boot 'ethtool -g eth0' outputs: Ring parameters for eth0: RX: 8184 RX Mini: n/a RX Jumbo: n/a TX: 8184 TX push buff len: n/a HDS thresh: n/a RX: 2048 RX Mini: n/a RX Jumbo: n/a TX: 4096 RX Buf Len: n/a CQE Size: n/a TX Push: off RX Push: off TX push buff len: n/a TCP data split: n/a HDS thresh: n/a 'ethtool --set-ring eth0 rx 8184 tx 8184 && ethtool -g eth0' yields: Ring parameters for eth0: RX: 8184 RX Mini: n/a RX Jumbo: n/a TX: 8184 TX push buff len: n/a HDS thresh: n/a RX: 8184 RX Mini: n/a RX Jumbo: n/a TX: 8184 RX Buf Len: n/a CQE Size: n/a TX Push: off RX Push: off TX push buff len: n/a TCP data split: n/a HDS thresh: n/a I can measure a throughput difference between using using buffer sizes 4096 and 8184 on my hardware, so it really seems that this is doing something beyond buggy firmware. Original PR https://github.com/systemd/systemd/pull/17635 didn't give any explanation for the limit of 4096, but that's probably what was supported by the kernel drivers at the time. A web search shows that CISCO VIC 15000 supports 16k, so allow up to that. [zjs: edited the message]
This commit is contained in:
@@ -666,7 +666,7 @@
|
||||
<varlistentry>
|
||||
<term><varname>TransmitQueues=</varname></term>
|
||||
<listitem>
|
||||
<para>Specifies the device's number of transmit queues. An integer in the range 1…4096.
|
||||
<para>Specifies the device's number of transmit queues. An integer in the range 1…16384.
|
||||
When unset, the kernel's default will be used.</para>
|
||||
|
||||
<xi:include href="version-info.xml" xpointer="v248"/>
|
||||
@@ -675,7 +675,7 @@
|
||||
<varlistentry>
|
||||
<term><varname>ReceiveQueues=</varname></term>
|
||||
<listitem>
|
||||
<para>Specifies the device's number of receive queues. An integer in the range 1…4096.
|
||||
<para>Specifies the device's number of receive queues. An integer in the range 1…16384.
|
||||
When unset, the kernel's default will be used.</para>
|
||||
|
||||
<xi:include href="version-info.xml" xpointer="v248"/>
|
||||
|
||||
@@ -1271,7 +1271,7 @@ int config_parse_rx_tx_queues(
|
||||
log_syntax(unit, LOG_WARNING, filename, line, r, "Failed to parse %s=, ignoring assignment: %s.", lvalue, rvalue);
|
||||
return 0;
|
||||
}
|
||||
if (k == 0 || k > 4096) {
|
||||
if (k == 0 || k > 16384) {
|
||||
log_syntax(unit, LOG_WARNING, filename, line, 0, "Invalid %s=, ignoring assignment: %s.", lvalue, rvalue);
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user