diff options
author | Sameeh Jubran <sameehj@amazon.com> | 2019-06-03 17:43:19 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-06-03 13:30:38 -0700 |
commit | 05d62ca218f8425c70389d0416c15bd0d455b416 (patch) | |
tree | d2da27a35202005d05f44ace04638fcc585ea0b9 /drivers/net/ethernet/amazon/ena/ena_admin_defs.h | |
parent | net: dsa: mv88e6xxx: make mv88e6xxx_g1_stats_wait static (diff) | |
download | linux-dev-05d62ca218f8425c70389d0416c15bd0d455b416.tar.xz linux-dev-05d62ca218f8425c70389d0416c15bd0d455b416.zip |
net: ena: add handling of llq max tx burst size
There is a maximum TX burst size that the ENA device can handle.
It is exposed by the device to the driver and the driver
needs to comply with it to avoid bugs.
In this commit we:
1. Add ena_com_is_doorbell_needed(), which calculates the number of
llq entries that will be used to hold a packet, and will return
true if they exceed the number of allowed entries in a burst.
If the function returns true, a doorbell needs to be invoked
to send this packet in the next burst.
2. Follow the available entries in the current burst:
- Every doorbell a new burst begins
- With each write of an llq entry, the available entries in the
current burst are decreased by 1.
Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/amazon/ena/ena_admin_defs.h')
-rw-r--r-- | drivers/net/ethernet/amazon/ena/ena_admin_defs.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/ethernet/amazon/ena/ena_admin_defs.h b/drivers/net/ethernet/amazon/ena/ena_admin_defs.h index 9f80b73f90b1..82cff1e120f8 100644 --- a/drivers/net/ethernet/amazon/ena/ena_admin_defs.h +++ b/drivers/net/ethernet/amazon/ena/ena_admin_defs.h @@ -524,6 +524,11 @@ struct ena_admin_feature_llq_desc { /* the stride control the driver selected to use */ u16 descriptors_stride_ctrl_enabled; + + /* Maximum size in bytes taken by llq entries in a single tx burst. + * Set to 0 when there is no such limit. + */ + u32 max_tx_burst_size; }; struct ena_admin_queue_feature_desc { |