Lines Matching +full:tx +full:- +full:queue +full:- +full:0

1 .\" SPDX-License-Identifier: BSD-2-Clause
3 .\" Copyright (c) 2015-2024 Amazon.com, Inc. or its affiliates.
40 .Bd -ragged -offset indent
47 .Bd -literal -offset indent
56 through an Admin Queue.
58 The driver supports a range of ENA devices, is link-speed independent
62 Some ENA devices support SR-IOV.
63 This driver is used for both the SR-IOV Physical Function (PF) and Virtual
67 processing by providing multiple Tx/Rx queue pairs (the maximum number
68 is advertised by the device via the Admin Queue), a dedicated MSI-X
69 interrupt vector per Tx/Rx queue pair, and CPU cacheline optimized
72 When RSS is enabled, each Tx/Rx queue pair is bound to a corresponding
77 Receive-side scaling (RSS) is supported for multi-core scaling.
86 Some of the ENA devices support a working mode called Low-latency
87 Queue (LLQ), which saves several more microseconds.
100 .Bl -bullet -compact
102 1d0f:0ec2 - ENA PF
104 1d0f:1ec2 - ENA PF with LLQ support
106 1d0f:ec20 - ENA VF
108 1d0f:ec21 - ENA VF with LLQ support
113 driver's behavior can be changed using run-time or boot-time sysctl
115 The boot-time arguments can be set at the
119 The run-time arguments can be set using the
123 Boot-time tunables:
124 .Bl -tag -width indent
127 The default is 0.
129 If set to 0, page size mbufs will be used instead.
141 If the node value is set to 0, the regular size LLQ header will be used, which
143 In some cases, the packet header can be bigger than this (for example -
151 Increasing LLQ header size reduces the size of the Tx queue by half, so it may
152 affect the number of dropped Tx packets.
155 Run-time tunables:
156 .Bl -tag -width indent
160 The higher the logging level, the more logs will be printed out. 0 means all
167 .Bl -bullet -compact
169 0 - ENA_ERR - Enable driver error messages and ena_com error logs.
171 1 - ENA_WARN - Enable logs for non-critical errors.
173 2 - ENA_INFO - Make the driver more verbose about its actions.
175 3 - ENA_DBG - Enable debug logs.
178 NOTE: In order to enable logging on the Tx/Rx data path, driver must be compiled
183 .Bd -literal -offset indent
189 Controls the number of IO queue pairs (Tx/Rx). As this call has to reallocate
190 the queues, it will reset the interface and restart all the queues - this means
191 that everything, which was currently held in the queue, will be lost, leading to
201 To use only 2 Tx and Rx queues for the device ena1, the following command should
203 .Bd -literal -offset indent
207 Size of the Rx queue.
209 Controls the number of IO descriptors for each Rx queue.
210 The user may want to increase the Rx queue size if they observe a high number of
212 For performance reasons, the Rx queue size must be a power of 2.
223 .Bd -literal -offset indent
224 sysctl dev.ena.0.rx_queue_size=8192
227 Size of the Tx buffer ring (drbr).
230 Controls the number of mbufs that can be held in the Tx buffer ring.
231 The drbr is used as a multiple-producer, single-consumer lockless ring for
232 buffering extra mbufs coming from the stack in case the Tx procedure is busy
233 sending the packets, or the Tx ring is full.
234 Increasing the size of the buffer ring may reduce the number of Tx packets being
235 dropped in case of a big Tx burst, which cannot be handled by the IO queue
237 Each Tx queue has its own drbr.
249 .Bd -literal -offset indent
250 sysctl dev.ena.0.buf_ring_size=2048
254 The default is 0.
257 avoid admin queue overload by sysctl node reading.
263 Value 0 turns off the update completely.
270 .Bd -literal -offset indent
280 .Bd -literal -offset indent
281 sysctl dev.ena.0.rss.indir_table_size
285 The default is x:y key-pairs of indir_table_size length.
297 0 to queue 5 and then index 5 to queue 0, the following command should be used:
298 .Bd -literal -offset indent
299 sysctl dev.ena.0.rss.indir_table="0:5 5:0"
311 0x6d, 0x5a, 0x56, 0xda, 0x25, 0x5b, 0x0e, 0xc2,
313 0x41, 0x67, 0x25, 0x3d, 0x43, 0xa3, 0x8f, 0xb0,
315 0xd0, 0xca, 0x2b, 0xcb, 0xae, 0x7b, 0x30, 0xb4,
317 0x77, 0xcb, 0x2d, 0xa3, 0x80, 0x30, 0xf2, 0x0c,
319 0x6a, 0x42, 0xb7, 0x3b, 0xbe, 0xac, 0x01, 0xfa
322 .Bd -literal -offset indent
323 sysctl dev.ena.0.rss.key=6d5a56da255b0ec24167253d43a38fb0d0ca2bcbae7b30b477cb2da38030f20c6a42b73bbe…
328 .Bl -diag
345 .It ena%d: Can not initialize ena admin queue with device
347 Initialization of the Admin Queue failed.
359 .Bl -diag
365 .It ena%d: Error, MSI-X is already enabled
367 .It ena%d: Not enough number of MSI-X allocated: %d
368 .It ena%d: Error with MSI-X enablement
384 Error occurred when trying to register Admin Queue interrupt handler.
385 .It ena%d: Cannot setup mgmnt queue intr
387 Error occurred during configuration of the Admin Queue interrupts.
388 .It ena%d: Enable MSI-X failed
390 Configuration of the MSI-X for Admin Queue failed.
401 .It ena%d: Unmapped TX DMA tag associations
403 Error occurred when trying to destroy RX/TX DMA tag.
413 passed to queue 0 and there will be no hash information.
418 Error occurred during Low-latency Queue mode setup.
429 .Bl -diag
440 .It ena%d: Found a Tx that wasn't completed on time, qid %d, index %d.
444 It may be caused by hang of the IO queue.
445 .It ena%d: The number of lost tx completion is above the threshold (%d > %d). Reset the device
447 If too many Tx weren't completed on time the device is going to be reset.
449 It may be caused by hanged queue or device.
454 Reset is triggered either by watchdog or if too many TX packets were not
468 .It ena%d: Enable MSI-X failed
476 .It ena%d: Allocation for Tx Queue %u failed
477 .It ena%d: Allocation for Rx Queue %u failed
479 .It ena%d: Failed to create io TX queue #%d rc: %d
480 .It ena%d: Failed to get TX queue handlers. TX queue num %d rc: %d
481 .It ena%d: Failed to create io RX queue[%d] rc: %d
482 .It ena%d: Failed to get RX queue handlers. RX queue num %d rc: %d
492 .It ena%d: failed to alloc buffer for rx queue
493 .It ena%d: failed to add buffer for rx queue %d
498 If happened during initialization of the IO queue, the interface will not be
505 .It ena%d: failed to prepare tx bufs