Fix ENA manual issues

The issues were pointed in community review:
https://reviews.freebsd.org/D10427#inline-67587

Also, fix other issues found by the igor tool.

Submitted by:  Michal Krawczyk <mk@semihalf.com>
Obtained from: Semihalf
Sponsored by:  Amazon, Inc.
This commit is contained in:
Marcin Wojtas 2019-05-30 13:50:45 +00:00
parent 858659f752
commit e44f5c81b8

View File

@ -27,7 +27,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd May 04, 2017
.Dd August 16, 2017
.Dt ENA 4
.Os
.Sh NAME
@ -35,7 +35,7 @@
.Nd "FreeBSD kernel driver for Elastic Network Adapter (ENA) family"
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following line in your
place the following line in the
kernel configuration file:
.Bd -ragged -offset indent
.Cd "device ena"
@ -59,8 +59,9 @@ The driver supports a range of ENA devices, is link-speed independent
(i.e., the same driver is used for 10GbE, 25GbE, 40GbE, etc.), and has
a negotiated and extendable feature set.
.Pp
Some ENA devices support SR-IOV. This driver is used for both the
SR-IOV Physical Function (PF) and Virtual Function (VF) devices.
Some ENA devices support SR-IOV.
This driver is used for both the SR-IOV Physical Function (PF) and Virtual
Function (VF) devices.
.Pp
The ENA devices enable high speed and low overhead network traffic
processing by providing multiple Tx/Rx queue pairs (the maximum number
@ -82,8 +83,8 @@ to recover in a manner transparent to the application, as well as
debug logs.
.Pp
Some of the ENA devices support a working mode called Low-latency
Queue (LLQ), which saves several more microseconds. This feature will
be implemented for driver in future releases.
Queue (LLQ), which saves several more microseconds.
This feature will be implemented for driver in future releases.
.Sh HARDWARE
Supported PCI vendor ID/device IDs:
.Pp
@ -105,19 +106,23 @@ Supported PCI vendor ID/device IDs:
Error occurred during initialization of the mmio register read request.
.It ena%d: Can not reset device
.Pp
Device could not be reset; device may not be responding or is already
during reset.
Device could not be reset.
.br
Device may not be responding or is already during reset.
.It ena%d: device version is too low
.Pp
Version of the controller is too low and it is not supported by the driver.
Version of the controller is too old and it is not supported by the driver.
.It ena%d: Invalid dma width value %d
.Pp
The controller is able to request dma transcation width. Device stopped
responding or it demanded invalid value.
The controller is able to request dma transaction width.
.br
Device stopped responding or it demanded invalid value.
.It ena%d: Can not initialize ena admin queue with device
.Pp
Initialization of the Admin Queue failed; device may not be responding or there
was a problem with initialization of the resources.
Initialization of the Admin Queue failed.
.br
Device may not be responding or there was a problem with initialization of
the resources.
.It ena%d: Cannot get attribute for ena device rc: %d
.Pp
Failed to get attributes of the device from the controller.
@ -141,11 +146,14 @@ Errors occurred when trying to configure AENQ groups.
.It ena%d: could not allocate irq vector: %d
.It ena%d: Unable to allocate bus resource: registers
.Pp
Resource allocation failed when initializing the device; driver will not
be attached.
Resource allocation failed when initializing the device.
.br
Driver will not be attached.
.It ena%d: ENA device init failed (err: %d)
.Pp
Device initialization failed; driver will not be attached.
Device initialization failed.
.br
Driver will not be attached.
.It ena%d: could not activate irq vector: %d
.Pp
Error occurred when trying to activate interrupt vectors for Admin Queue.
@ -157,13 +165,16 @@ Error occurred when trying to register Admin Queue interrupt handler.
Error occurred during configuration of the Admin Queue interrupts.
.It ena%d: Enable MSI-X failed
.Pp
Configuration of the MSI-X for Admin Queue failed; there could be lack
of resources or interrupts could not have been configured; driver will
not be attached.
Configuration of the MSI-X for Admin Queue failed.
.br
There could be lack of resources or interrupts could not have been configured.
.br
Driver will not be attached.
.It ena%d: VLAN is in use, detach first
.Pp
VLANs are being used when trying to detach the driver; VLANs should be detached
first and then detach routine should be called again.
VLANs are being used when trying to detach the driver.
.br
VLANs must be detached first and then detach routine have to be called again.
.It ena%d: Unmapped RX DMA tag associations
.It ena%d: Unmapped TX DMA tag associations
.Pp
@ -175,8 +186,9 @@ Error occurred when trying to destroy RX/TX DMA tag.
.It ena%d: Cannot fill hash control
.It ena%d: WARNING: RSS was not properly initialized, it will affect bandwidth
.Pp
Error occurred during initialization of one of RSS resources; device is still
going to work but it will affect performance because all RX packets will be
Error occurred during initialization of one of RSS resources.
.br
The device will work with reduced performance because all RX packets will be
passed to queue 0 and there will be no hash information.
.It ena%d: failed to tear down irq: %d
.It ena%d: dev has no parent while releasing res for irq: %d
@ -196,16 +208,20 @@ Requested MTU value is not supported and will not be set.
Device stopped responding and will be reset.
.It ena%d: Found a Tx that wasn't completed on time, qid %d, index %d.
.Pp
Packet was pushed to the NIC but not sent within given time limit; it may
be caused by hang of the IO queue.
Packet was pushed to the NIC but not sent within given time limit.
.br
It may be caused by hang of the IO queue.
.It ena%d: The number of lost tx completion is aboce the threshold (%d > %d). Reset the device
.Pp
If too many Tx wasn't completed on time the device is going to be reset; it may
be caused by hanged queue or device.
If too many Tx wasn't completed on time the device is going to be reset.
.br
It may be caused by hanged queue or device.
.It ena%d: trigger reset is on
.Pp
Device will be reset; reset is triggered either by watchdog or if too many TX
packets were not completed on time.
Device will be reset.
.br
Reset is triggered either by watchdog or if too many TX packets were not
completed on time.
.It ena%d: invalid value recvd
.Pp
Link status received from the device in the AENQ handler is invalid.
@ -220,7 +236,9 @@ Link status received from the device in the AENQ handler is invalid.
.It ena%d: could not allocate irq vector: %d
.It ena%d: failed to register interrupt handler for irq %ju: %d
.Pp
IO resources initialization failed. Interface will not be brought up.
IO resources initialization failed.
.br
Interface will not be brought up.
.It ena%d: LRO[%d] Initialization failed!
.Pp
Initialization of the LRO for the RX ring failed.
@ -228,21 +246,26 @@ Initialization of the LRO for the RX ring failed.
.It ena%d: failed to add buffer for rx queue %d
.It ena%d: refilled rx queue %d with %d pages only
.Pp
Allocation of resources used on RX path failed; if happened during
initialization of the IO queue, the interface will not be brought up.
Allocation of resources used on RX path failed.
.br
If happened during initialization of the IO queue, the interface will not be
brought up.
.It ena%d: ioctl promisc/allmulti
.Pp
IOCTL request for the device to work in promiscuous/allmulti mode; see
IOCTL request for the device to work in promiscuous/allmulti mode.
.br
See
.Xr ifconfig 8
for more details.
.It ena%d: too many fragments. Last fragment: %d!
.Pp
Packet with unsupported number of segments was queued for sending to the
device; packet will be dropped.
.El
device.
.br
Packet will be dropped.
.Sh SUPPORT
If an issue is identified with the released source code with a supported adapter
email the specific information related to the issue to
If an issue is identified with the released source code with a supported
adapter, please email the specific information related to the issue to
.Aq Mt mk@semihalf.com
and
.Aq Mt mw@semihalf.com .