freebsd-skq/sys/dev/ena
Marcin Wojtas 7d8c4fee95 Rework ENA Rx queue size configuration
This patch reworks how the Rx queue size is being reconfigured and how
the information from the device is being processed.

Reconfiguration of the queues and reset of the device in order to make
the changes alive isn't the best approach. It can be done synchronously
and it will let to pass information if the reconfiguration was
successful to the user. It now is done in the ena_update_queue_size()
function.

To avoid reallocation of the ring buffer, statistic counters and the
reinitialization of the mutexes when only new size has to be assigned,
the io queues initialization function has been split into 2 stages:
basic, which is just copying appropriate fields and the advanced, which
allocates and inits more advanced structures for the IO rings.

Moreover, now the max allowed Rx and Tx ring size is being kept
statically in the adapter and the size of the variables holding those
values has been changed to uint32_t everywhere.

Information about IO queues size is now being logged in the up routine
instead of the attach.

Submitted by:  Michal Krawczyk <mk@semihalf.com>
Obtained from: Semihalf
Sponsored by:  Amazon, Inc.
2020-05-26 15:48:06 +00:00
..
ena_datapath.c Rework ENA Rx queue size configuration 2020-05-26 15:48:06 +00:00
ena_datapath.h Expose argument names for non static ENA driver functions 2020-05-26 15:41:53 +00:00
ena_netmap.c Rework ENA Rx queue size configuration 2020-05-26 15:48:06 +00:00
ena_netmap.h Expose argument names for non static ENA driver functions 2020-05-26 15:41:53 +00:00
ena_sysctl.c Rework ENA Rx queue size configuration 2020-05-26 15:48:06 +00:00
ena_sysctl.h Expose argument names for non static ENA driver functions 2020-05-26 15:41:53 +00:00
ena.c Rework ENA Rx queue size configuration 2020-05-26 15:48:06 +00:00
ena.h Rework ENA Rx queue size configuration 2020-05-26 15:48:06 +00:00