* [PATCH v2 net-next 0/5] ENA driver changes May 2024
@ 2024-05-12 13:46 darinzon
2024-05-12 13:46 ` [PATCH v2 net-next 1/5] net: ena: Add a counter for driver's reset failures darinzon
` (5 more replies)
0 siblings, 6 replies; 12+ messages in thread
From: darinzon @ 2024-05-12 13:46 UTC (permalink / raw)
To: David Miller, Jakub Kicinski, netdev
Cc: David Arinzon, Eric Dumazet, Paolo Abeni, Woodhouse, David,
Machulsky, Zorik, Matushevsky, Alexander, Saeed Bshara,
Wilson, Matt, Liguori, Anthony, Bshara, Nafea, Belgazal, Netanel,
Saidi, Ali, Herrenschmidt, Benjamin, Kiyanovski, Arthur,
Dagan, Noam, Agroskin, Shay, Itzko, Shahar, Abboud, Osama,
Ostrovsky, Evgeny, Tabachnik, Ofir
From: David Arinzon <darinzon@amazon.com>
This patchset contains several misc and minor
changes to the ENA driver.
Changes from v1:
- Removed interrupt moderation hint from the
patchset. The change is moved back to
development state and will be released as
part of a different patchset in the future.
David Arinzon (5):
net: ena: Add a counter for driver's reset failures
net: ena: Reduce holes in ena_com structures
net: ena: Add validation for completion descriptors consistency
net: ena: Changes around strscpy calls
net: ena: Change initial rx_usec interval
drivers/net/ethernet/amazon/ena/ena_com.h | 6 +--
drivers/net/ethernet/amazon/ena/ena_eth_com.c | 37 ++++++++++++++-----
drivers/net/ethernet/amazon/ena/ena_eth_com.h | 2 +-
drivers/net/ethernet/amazon/ena/ena_ethtool.c | 17 +++++++--
drivers/net/ethernet/amazon/ena/ena_netdev.c | 37 ++++++++++++++-----
drivers/net/ethernet/amazon/ena/ena_netdev.h | 1 +
.../net/ethernet/amazon/ena/ena_regs_defs.h | 1 +
7 files changed, 73 insertions(+), 28 deletions(-)
--
2.40.1
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v2 net-next 1/5] net: ena: Add a counter for driver's reset failures
2024-05-12 13:46 [PATCH v2 net-next 0/5] ENA driver changes May 2024 darinzon
@ 2024-05-12 13:46 ` darinzon
2024-05-13 9:34 ` Simon Horman
2024-05-12 13:46 ` [PATCH v2 net-next 2/5] net: ena: Reduce holes in ena_com structures darinzon
` (4 subsequent siblings)
5 siblings, 1 reply; 12+ messages in thread
From: darinzon @ 2024-05-12 13:46 UTC (permalink / raw)
To: David Miller, Jakub Kicinski, netdev
Cc: David Arinzon, Eric Dumazet, Paolo Abeni, Woodhouse, David,
Machulsky, Zorik, Matushevsky, Alexander, Saeed Bshara,
Wilson, Matt, Liguori, Anthony, Bshara, Nafea, Belgazal, Netanel,
Saidi, Ali, Herrenschmidt, Benjamin, Kiyanovski, Arthur,
Dagan, Noam, Agroskin, Shay, Itzko, Shahar, Abboud, Osama,
Ostrovsky, Evgeny, Tabachnik, Ofir
From: David Arinzon <darinzon@amazon.com>
This patch adds a counter to the ena_adapter struct in
order to keep track of reset failures.
The counter is incremented every time either ena_restore_device()
or ena_destroy_device() fail.
Signed-off-by: Osama Abboud <osamaabb@amazon.com>
Signed-off-by: David Arinzon <darinzon@amazon.com>
---
drivers/net/ethernet/amazon/ena/ena_ethtool.c | 1 +
drivers/net/ethernet/amazon/ena/ena_netdev.c | 18 ++++++++++++------
drivers/net/ethernet/amazon/ena/ena_netdev.h | 1 +
3 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/drivers/net/ethernet/amazon/ena/ena_ethtool.c b/drivers/net/ethernet/amazon/ena/ena_ethtool.c
index 0cb6cc1c..28583db8 100644
--- a/drivers/net/ethernet/amazon/ena/ena_ethtool.c
+++ b/drivers/net/ethernet/amazon/ena/ena_ethtool.c
@@ -49,6 +49,7 @@ static const struct ena_stats ena_stats_global_strings[] = {
ENA_STAT_GLOBAL_ENTRY(interface_up),
ENA_STAT_GLOBAL_ENTRY(interface_down),
ENA_STAT_GLOBAL_ENTRY(admin_q_pause),
+ ENA_STAT_GLOBAL_ENTRY(reset_fail),
};
static const struct ena_stats ena_stats_eni_strings[] = {
diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c b/drivers/net/ethernet/amazon/ena/ena_netdev.c
index 28eaedaf..6a9d1b6d 100644
--- a/drivers/net/ethernet/amazon/ena/ena_netdev.c
+++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c
@@ -42,7 +42,7 @@ MODULE_DEVICE_TABLE(pci, ena_pci_tbl);
static int ena_rss_init_default(struct ena_adapter *adapter);
static void check_for_admin_com_state(struct ena_adapter *adapter);
-static void ena_destroy_device(struct ena_adapter *adapter, bool graceful);
+static int ena_destroy_device(struct ena_adapter *adapter, bool graceful);
static int ena_restore_device(struct ena_adapter *adapter);
static void ena_tx_timeout(struct net_device *dev, unsigned int txqueue)
@@ -3235,14 +3235,15 @@ err_disable_msix:
return rc;
}
-static void ena_destroy_device(struct ena_adapter *adapter, bool graceful)
+static int ena_destroy_device(struct ena_adapter *adapter, bool graceful)
{
struct net_device *netdev = adapter->netdev;
struct ena_com_dev *ena_dev = adapter->ena_dev;
bool dev_up;
+ int rc = 0;
if (!test_bit(ENA_FLAG_DEVICE_RUNNING, &adapter->flags))
- return;
+ return 0;
netif_carrier_off(netdev);
@@ -3260,7 +3261,7 @@ static void ena_destroy_device(struct ena_adapter *adapter, bool graceful)
* and device is up, ena_down() already reset the device.
*/
if (!(test_bit(ENA_FLAG_TRIGGER_RESET, &adapter->flags) && dev_up))
- ena_com_dev_reset(adapter->ena_dev, adapter->reset_reason);
+ rc = ena_com_dev_reset(adapter->ena_dev, adapter->reset_reason);
ena_free_mgmnt_irq(adapter);
@@ -3279,6 +3280,8 @@ static void ena_destroy_device(struct ena_adapter *adapter, bool graceful)
clear_bit(ENA_FLAG_TRIGGER_RESET, &adapter->flags);
clear_bit(ENA_FLAG_DEVICE_RUNNING, &adapter->flags);
+
+ return rc;
}
static int ena_restore_device(struct ena_adapter *adapter)
@@ -3355,14 +3358,17 @@ err:
static void ena_fw_reset_device(struct work_struct *work)
{
+ int rc = 0;
+
struct ena_adapter *adapter =
container_of(work, struct ena_adapter, reset_task);
rtnl_lock();
if (likely(test_bit(ENA_FLAG_TRIGGER_RESET, &adapter->flags))) {
- ena_destroy_device(adapter, false);
- ena_restore_device(adapter);
+ rc |= ena_destroy_device(adapter, false);
+ rc |= ena_restore_device(adapter);
+ adapter->dev_stats.reset_fail += !!rc;
dev_err(&adapter->pdev->dev, "Device reset completed successfully\n");
}
diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.h b/drivers/net/ethernet/amazon/ena/ena_netdev.h
index 6d2cc202..d5950974 100644
--- a/drivers/net/ethernet/amazon/ena/ena_netdev.h
+++ b/drivers/net/ethernet/amazon/ena/ena_netdev.h
@@ -290,6 +290,7 @@ struct ena_stats_dev {
u64 admin_q_pause;
u64 rx_drops;
u64 tx_drops;
+ u64 reset_fail;
};
enum ena_flags_t {
--
2.40.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v2 net-next 2/5] net: ena: Reduce holes in ena_com structures
2024-05-12 13:46 [PATCH v2 net-next 0/5] ENA driver changes May 2024 darinzon
2024-05-12 13:46 ` [PATCH v2 net-next 1/5] net: ena: Add a counter for driver's reset failures darinzon
@ 2024-05-12 13:46 ` darinzon
2024-05-13 9:34 ` Simon Horman
2024-05-12 13:46 ` [PATCH v2 net-next 3/5] net: ena: Add validation for completion descriptors consistency darinzon
` (3 subsequent siblings)
5 siblings, 1 reply; 12+ messages in thread
From: darinzon @ 2024-05-12 13:46 UTC (permalink / raw)
To: David Miller, Jakub Kicinski, netdev
Cc: David Arinzon, Eric Dumazet, Paolo Abeni, Woodhouse, David,
Machulsky, Zorik, Matushevsky, Alexander, Saeed Bshara,
Wilson, Matt, Liguori, Anthony, Bshara, Nafea, Belgazal, Netanel,
Saidi, Ali, Herrenschmidt, Benjamin, Kiyanovski, Arthur,
Dagan, Noam, Agroskin, Shay, Itzko, Shahar, Abboud, Osama,
Ostrovsky, Evgeny, Tabachnik, Ofir
From: David Arinzon <darinzon@amazon.com>
This patch makes two changes in order to fill holes and
reduce ther overall size of the structures ena_com_dev
and ena_com_rx_ctx.
Signed-off-by: Shahar Itzko <itzko@amazon.com>
Signed-off-by: David Arinzon <darinzon@amazon.com>
---
drivers/net/ethernet/amazon/ena/ena_com.h | 4 ++--
drivers/net/ethernet/amazon/ena/ena_eth_com.h | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/amazon/ena/ena_com.h b/drivers/net/ethernet/amazon/ena/ena_com.h
index fea57eb8..fdae0cc9 100644
--- a/drivers/net/ethernet/amazon/ena/ena_com.h
+++ b/drivers/net/ethernet/amazon/ena/ena_com.h
@@ -305,6 +305,8 @@ struct ena_com_dev {
u16 stats_func; /* Selected function for extended statistic dump */
u16 stats_queue; /* Selected queue for extended statistic dump */
+ u32 ena_min_poll_delay_us;
+
struct ena_com_mmio_read mmio_read;
struct ena_rss rss;
@@ -325,8 +327,6 @@ struct ena_com_dev {
struct ena_intr_moder_entry *intr_moder_tbl;
struct ena_com_llq_info llq_info;
-
- u32 ena_min_poll_delay_us;
};
struct ena_com_dev_get_features_ctx {
diff --git a/drivers/net/ethernet/amazon/ena/ena_eth_com.h b/drivers/net/ethernet/amazon/ena/ena_eth_com.h
index 72b01975..449bc496 100644
--- a/drivers/net/ethernet/amazon/ena/ena_eth_com.h
+++ b/drivers/net/ethernet/amazon/ena/ena_eth_com.h
@@ -47,7 +47,7 @@ struct ena_com_rx_ctx {
bool frag;
u32 hash;
u16 descs;
- int max_bufs;
+ u16 max_bufs;
u8 pkt_offset;
};
--
2.40.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v2 net-next 3/5] net: ena: Add validation for completion descriptors consistency
2024-05-12 13:46 [PATCH v2 net-next 0/5] ENA driver changes May 2024 darinzon
2024-05-12 13:46 ` [PATCH v2 net-next 1/5] net: ena: Add a counter for driver's reset failures darinzon
2024-05-12 13:46 ` [PATCH v2 net-next 2/5] net: ena: Reduce holes in ena_com structures darinzon
@ 2024-05-12 13:46 ` darinzon
2024-05-13 9:34 ` Simon Horman
2024-05-12 13:46 ` [PATCH v2 net-next 4/5] net: ena: Changes around strscpy calls darinzon
` (2 subsequent siblings)
5 siblings, 1 reply; 12+ messages in thread
From: darinzon @ 2024-05-12 13:46 UTC (permalink / raw)
To: David Miller, Jakub Kicinski, netdev
Cc: David Arinzon, Eric Dumazet, Paolo Abeni, Woodhouse, David,
Machulsky, Zorik, Matushevsky, Alexander, Saeed Bshara,
Wilson, Matt, Liguori, Anthony, Bshara, Nafea, Belgazal, Netanel,
Saidi, Ali, Herrenschmidt, Benjamin, Kiyanovski, Arthur,
Dagan, Noam, Agroskin, Shay, Itzko, Shahar, Abboud, Osama,
Ostrovsky, Evgeny, Tabachnik, Ofir
From: David Arinzon <darinzon@amazon.com>
Validate that `first` flag is set only for the first
descriptor in multi-buffer packets.
In case of an invalid descriptor, a reset will occur.
A new reset reason for RX data corruption has been added.
Signed-off-by: Shahar Itzko <itzko@amazon.com>
Signed-off-by: David Arinzon <darinzon@amazon.com>
---
drivers/net/ethernet/amazon/ena/ena_eth_com.c | 37 ++++++++++++++-----
drivers/net/ethernet/amazon/ena/ena_netdev.c | 2 +
.../net/ethernet/amazon/ena/ena_regs_defs.h | 1 +
3 files changed, 30 insertions(+), 10 deletions(-)
diff --git a/drivers/net/ethernet/amazon/ena/ena_eth_com.c b/drivers/net/ethernet/amazon/ena/ena_eth_com.c
index 933e619b..4c6e07aa 100644
--- a/drivers/net/ethernet/amazon/ena/ena_eth_com.c
+++ b/drivers/net/ethernet/amazon/ena/ena_eth_com.c
@@ -229,30 +229,43 @@ static struct ena_eth_io_rx_cdesc_base *
idx * io_cq->cdesc_entry_size_in_bytes);
}
-static u16 ena_com_cdesc_rx_pkt_get(struct ena_com_io_cq *io_cq,
- u16 *first_cdesc_idx)
+static int ena_com_cdesc_rx_pkt_get(struct ena_com_io_cq *io_cq,
+ u16 *first_cdesc_idx,
+ u16 *num_descs)
{
+ u16 count = io_cq->cur_rx_pkt_cdesc_count, head_masked;
struct ena_eth_io_rx_cdesc_base *cdesc;
- u16 count = 0, head_masked;
u32 last = 0;
do {
+ u32 status;
+
cdesc = ena_com_get_next_rx_cdesc(io_cq);
if (!cdesc)
break;
+ status = READ_ONCE(cdesc->status);
ena_com_cq_inc_head(io_cq);
+ if (unlikely((status & ENA_ETH_IO_RX_CDESC_BASE_FIRST_MASK) >>
+ ENA_ETH_IO_RX_CDESC_BASE_FIRST_SHIFT && count != 0)) {
+ struct ena_com_dev *dev = ena_com_io_cq_to_ena_dev(io_cq);
+
+ netdev_err(dev->net_device,
+ "First bit is on in descriptor #%d on q_id: %d, req_id: %u\n",
+ count, io_cq->qid, cdesc->req_id);
+ return -EFAULT;
+ }
count++;
- last = (READ_ONCE(cdesc->status) & ENA_ETH_IO_RX_CDESC_BASE_LAST_MASK) >>
- ENA_ETH_IO_RX_CDESC_BASE_LAST_SHIFT;
+ last = (status & ENA_ETH_IO_RX_CDESC_BASE_LAST_MASK) >>
+ ENA_ETH_IO_RX_CDESC_BASE_LAST_SHIFT;
} while (!last);
if (last) {
*first_cdesc_idx = io_cq->cur_rx_pkt_cdesc_start_idx;
- count += io_cq->cur_rx_pkt_cdesc_count;
head_masked = io_cq->head & (io_cq->q_depth - 1);
+ *num_descs = count;
io_cq->cur_rx_pkt_cdesc_count = 0;
io_cq->cur_rx_pkt_cdesc_start_idx = head_masked;
@@ -260,11 +273,11 @@ static u16 ena_com_cdesc_rx_pkt_get(struct ena_com_io_cq *io_cq,
"ENA q_id: %d packets were completed. first desc idx %u descs# %d\n",
io_cq->qid, *first_cdesc_idx, count);
} else {
- io_cq->cur_rx_pkt_cdesc_count += count;
- count = 0;
+ io_cq->cur_rx_pkt_cdesc_count = count;
+ *num_descs = 0;
}
- return count;
+ return 0;
}
static int ena_com_create_meta(struct ena_com_io_sq *io_sq,
@@ -539,10 +552,14 @@ int ena_com_rx_pkt(struct ena_com_io_cq *io_cq,
u16 cdesc_idx = 0;
u16 nb_hw_desc;
u16 i = 0;
+ int rc;
WARN(io_cq->direction != ENA_COM_IO_QUEUE_DIRECTION_RX, "wrong Q type");
- nb_hw_desc = ena_com_cdesc_rx_pkt_get(io_cq, &cdesc_idx);
+ rc = ena_com_cdesc_rx_pkt_get(io_cq, &cdesc_idx, &nb_hw_desc);
+ if (unlikely(rc != 0))
+ return -EFAULT;
+
if (nb_hw_desc == 0) {
ena_rx_ctx->descs = nb_hw_desc;
return 0;
diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c b/drivers/net/ethernet/amazon/ena/ena_netdev.c
index 6a9d1b6d..7398bc61 100644
--- a/drivers/net/ethernet/amazon/ena/ena_netdev.c
+++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c
@@ -1347,6 +1347,8 @@ error:
if (rc == -ENOSPC) {
ena_increase_stat(&rx_ring->rx_stats.bad_desc_num, 1, &rx_ring->syncp);
ena_reset_device(adapter, ENA_REGS_RESET_TOO_MANY_RX_DESCS);
+ } else if (rc == -EFAULT) {
+ ena_reset_device(adapter, ENA_REGS_RESET_RX_DESCRIPTOR_MALFORMED);
} else {
ena_increase_stat(&rx_ring->rx_stats.bad_req_id, 1,
&rx_ring->syncp);
diff --git a/drivers/net/ethernet/amazon/ena/ena_regs_defs.h b/drivers/net/ethernet/amazon/ena/ena_regs_defs.h
index 2c3d6a77..a2efebaf 100644
--- a/drivers/net/ethernet/amazon/ena/ena_regs_defs.h
+++ b/drivers/net/ethernet/amazon/ena/ena_regs_defs.h
@@ -22,6 +22,7 @@ enum ena_regs_reset_reason_types {
ENA_REGS_RESET_GENERIC = 13,
ENA_REGS_RESET_MISS_INTERRUPT = 14,
ENA_REGS_RESET_SUSPECTED_POLL_STARVATION = 15,
+ ENA_REGS_RESET_RX_DESCRIPTOR_MALFORMED = 16,
};
/* ena_registers offsets */
--
2.40.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v2 net-next 4/5] net: ena: Changes around strscpy calls
2024-05-12 13:46 [PATCH v2 net-next 0/5] ENA driver changes May 2024 darinzon
` (2 preceding siblings ...)
2024-05-12 13:46 ` [PATCH v2 net-next 3/5] net: ena: Add validation for completion descriptors consistency darinzon
@ 2024-05-12 13:46 ` darinzon
2024-05-13 9:35 ` Simon Horman
2024-05-12 13:46 ` [PATCH v2 net-next 5/5] net: ena: Change initial rx_usec interval darinzon
2024-05-13 21:50 ` [PATCH v2 net-next 0/5] ENA driver changes May 2024 patchwork-bot+netdevbpf
5 siblings, 1 reply; 12+ messages in thread
From: darinzon @ 2024-05-12 13:46 UTC (permalink / raw)
To: David Miller, Jakub Kicinski, netdev
Cc: David Arinzon, Eric Dumazet, Paolo Abeni, Woodhouse, David,
Machulsky, Zorik, Matushevsky, Alexander, Saeed Bshara,
Wilson, Matt, Liguori, Anthony, Bshara, Nafea, Belgazal, Netanel,
Saidi, Ali, Herrenschmidt, Benjamin, Kiyanovski, Arthur,
Dagan, Noam, Agroskin, Shay, Itzko, Shahar, Abboud, Osama,
Ostrovsky, Evgeny, Tabachnik, Ofir
From: David Arinzon <darinzon@amazon.com>
strscpy copies as much of the string as possible,
meaning that the destination string will be truncated
in case of no space. As this is a non-critical error in
our case, adding a debug level print for indication.
This patch also removes a -1 which was added to ensure
enough space for NUL, but strscpy destination string is
guaranteed to be NUL-terminted, therefore, the -1 is
not needed.
Signed-off-by: David Arinzon <darinzon@amazon.com>
---
drivers/net/ethernet/amazon/ena/ena_ethtool.c | 16 ++++++++++++----
drivers/net/ethernet/amazon/ena/ena_netdev.c | 17 +++++++++++++----
2 files changed, 25 insertions(+), 8 deletions(-)
diff --git a/drivers/net/ethernet/amazon/ena/ena_ethtool.c b/drivers/net/ethernet/amazon/ena/ena_ethtool.c
index 28583db8..b24cc3f0 100644
--- a/drivers/net/ethernet/amazon/ena/ena_ethtool.c
+++ b/drivers/net/ethernet/amazon/ena/ena_ethtool.c
@@ -460,10 +460,18 @@ static void ena_get_drvinfo(struct net_device *dev,
struct ethtool_drvinfo *info)
{
struct ena_adapter *adapter = netdev_priv(dev);
-
- strscpy(info->driver, DRV_MODULE_NAME, sizeof(info->driver));
- strscpy(info->bus_info, pci_name(adapter->pdev),
- sizeof(info->bus_info));
+ ssize_t ret = 0;
+
+ ret = strscpy(info->driver, DRV_MODULE_NAME, sizeof(info->driver));
+ if (ret < 0)
+ netif_dbg(adapter, drv, dev,
+ "module name will be truncated, status = %zd\n", ret);
+
+ ret = strscpy(info->bus_info, pci_name(adapter->pdev),
+ sizeof(info->bus_info));
+ if (ret < 0)
+ netif_dbg(adapter, drv, dev,
+ "bus info will be truncated, status = %zd\n", ret);
}
static void ena_get_ringparam(struct net_device *netdev,
diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c b/drivers/net/ethernet/amazon/ena/ena_netdev.c
index 7398bc61..184b6e6c 100644
--- a/drivers/net/ethernet/amazon/ena/ena_netdev.c
+++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c
@@ -2703,6 +2703,7 @@ static void ena_config_host_info(struct ena_com_dev *ena_dev, struct pci_dev *pd
{
struct device *dev = &pdev->dev;
struct ena_admin_host_info *host_info;
+ ssize_t ret;
int rc;
/* Allocate only the host info */
@@ -2717,11 +2718,19 @@ static void ena_config_host_info(struct ena_com_dev *ena_dev, struct pci_dev *pd
host_info->bdf = pci_dev_id(pdev);
host_info->os_type = ENA_ADMIN_OS_LINUX;
host_info->kernel_ver = LINUX_VERSION_CODE;
- strscpy(host_info->kernel_ver_str, utsname()->version,
- sizeof(host_info->kernel_ver_str) - 1);
+ ret = strscpy(host_info->kernel_ver_str, utsname()->version,
+ sizeof(host_info->kernel_ver_str));
+ if (ret < 0)
+ dev_dbg(dev,
+ "kernel version string will be truncated, status = %zd\n", ret);
+
host_info->os_dist = 0;
- strscpy(host_info->os_dist_str, utsname()->release,
- sizeof(host_info->os_dist_str));
+ ret = strscpy(host_info->os_dist_str, utsname()->release,
+ sizeof(host_info->os_dist_str));
+ if (ret < 0)
+ dev_dbg(dev,
+ "OS distribution string will be truncated, status = %zd\n", ret);
+
host_info->driver_version =
(DRV_MODULE_GEN_MAJOR) |
(DRV_MODULE_GEN_MINOR << ENA_ADMIN_HOST_INFO_MINOR_SHIFT) |
--
2.40.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v2 net-next 5/5] net: ena: Change initial rx_usec interval
2024-05-12 13:46 [PATCH v2 net-next 0/5] ENA driver changes May 2024 darinzon
` (3 preceding siblings ...)
2024-05-12 13:46 ` [PATCH v2 net-next 4/5] net: ena: Changes around strscpy calls darinzon
@ 2024-05-12 13:46 ` darinzon
2024-05-13 9:35 ` Simon Horman
2024-05-13 21:50 ` [PATCH v2 net-next 0/5] ENA driver changes May 2024 patchwork-bot+netdevbpf
5 siblings, 1 reply; 12+ messages in thread
From: darinzon @ 2024-05-12 13:46 UTC (permalink / raw)
To: David Miller, Jakub Kicinski, netdev
Cc: David Arinzon, Eric Dumazet, Paolo Abeni, Woodhouse, David,
Machulsky, Zorik, Matushevsky, Alexander, Saeed Bshara,
Wilson, Matt, Liguori, Anthony, Bshara, Nafea, Belgazal, Netanel,
Saidi, Ali, Herrenschmidt, Benjamin, Kiyanovski, Arthur,
Dagan, Noam, Agroskin, Shay, Itzko, Shahar, Abboud, Osama,
Ostrovsky, Evgeny, Tabachnik, Ofir
From: David Arinzon <darinzon@amazon.com>
For the purpose of obtaining better CPU utilization,
minimum rx moderation interval is set to 20 usec.
Signed-off-by: Osama Abboud <osamaabb@amazon.com>
Signed-off-by: David Arinzon <darinzon@amazon.com>
---
drivers/net/ethernet/amazon/ena/ena_com.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/amazon/ena/ena_com.h b/drivers/net/ethernet/amazon/ena/ena_com.h
index fdae0cc9..924f03f5 100644
--- a/drivers/net/ethernet/amazon/ena/ena_com.h
+++ b/drivers/net/ethernet/amazon/ena/ena_com.h
@@ -47,7 +47,7 @@
/* ENA adaptive interrupt moderation settings */
#define ENA_INTR_INITIAL_TX_INTERVAL_USECS 64
-#define ENA_INTR_INITIAL_RX_INTERVAL_USECS 0
+#define ENA_INTR_INITIAL_RX_INTERVAL_USECS 20
#define ENA_DEFAULT_INTR_DELAY_RESOLUTION 1
#define ENA_HASH_KEY_SIZE 40
--
2.40.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH v2 net-next 1/5] net: ena: Add a counter for driver's reset failures
2024-05-12 13:46 ` [PATCH v2 net-next 1/5] net: ena: Add a counter for driver's reset failures darinzon
@ 2024-05-13 9:34 ` Simon Horman
0 siblings, 0 replies; 12+ messages in thread
From: Simon Horman @ 2024-05-13 9:34 UTC (permalink / raw)
To: darinzon
Cc: David Miller, Jakub Kicinski, netdev, Eric Dumazet, Paolo Abeni,
Woodhouse, David, Machulsky, Zorik, Matushevsky, Alexander,
Saeed Bshara, Wilson, Matt, Liguori, Anthony, Bshara, Nafea,
Belgazal, Netanel, Saidi, Ali, Herrenschmidt, Benjamin,
Kiyanovski, Arthur, Dagan, Noam, Agroskin, Shay, Itzko, Shahar,
Abboud, Osama, Ostrovsky, Evgeny, Tabachnik, Ofir
On Sun, May 12, 2024 at 01:46:33PM +0000, darinzon@amazon.com wrote:
> From: David Arinzon <darinzon@amazon.com>
>
> This patch adds a counter to the ena_adapter struct in
> order to keep track of reset failures.
> The counter is incremented every time either ena_restore_device()
> or ena_destroy_device() fail.
>
> Signed-off-by: Osama Abboud <osamaabb@amazon.com>
> Signed-off-by: David Arinzon <darinzon@amazon.com>
Reviewed-by: Simon Horman <horms@kernel.org>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 net-next 2/5] net: ena: Reduce holes in ena_com structures
2024-05-12 13:46 ` [PATCH v2 net-next 2/5] net: ena: Reduce holes in ena_com structures darinzon
@ 2024-05-13 9:34 ` Simon Horman
0 siblings, 0 replies; 12+ messages in thread
From: Simon Horman @ 2024-05-13 9:34 UTC (permalink / raw)
To: darinzon
Cc: David Miller, Jakub Kicinski, netdev, Eric Dumazet, Paolo Abeni,
Woodhouse, David, Machulsky, Zorik, Matushevsky, Alexander,
Saeed Bshara, Wilson, Matt, Liguori, Anthony, Bshara, Nafea,
Belgazal, Netanel, Saidi, Ali, Herrenschmidt, Benjamin,
Kiyanovski, Arthur, Dagan, Noam, Agroskin, Shay, Itzko, Shahar,
Abboud, Osama, Ostrovsky, Evgeny, Tabachnik, Ofir
On Sun, May 12, 2024 at 01:46:34PM +0000, darinzon@amazon.com wrote:
> From: David Arinzon <darinzon@amazon.com>
>
> This patch makes two changes in order to fill holes and
> reduce ther overall size of the structures ena_com_dev
> and ena_com_rx_ctx.
>
> Signed-off-by: Shahar Itzko <itzko@amazon.com>
> Signed-off-by: David Arinzon <darinzon@amazon.com>
Reviewed-by: Simon Horman <horms@kernel.org>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 net-next 3/5] net: ena: Add validation for completion descriptors consistency
2024-05-12 13:46 ` [PATCH v2 net-next 3/5] net: ena: Add validation for completion descriptors consistency darinzon
@ 2024-05-13 9:34 ` Simon Horman
0 siblings, 0 replies; 12+ messages in thread
From: Simon Horman @ 2024-05-13 9:34 UTC (permalink / raw)
To: darinzon
Cc: David Miller, Jakub Kicinski, netdev, Eric Dumazet, Paolo Abeni,
Woodhouse, David, Machulsky, Zorik, Matushevsky, Alexander,
Saeed Bshara, Wilson, Matt, Liguori, Anthony, Bshara, Nafea,
Belgazal, Netanel, Saidi, Ali, Herrenschmidt, Benjamin,
Kiyanovski, Arthur, Dagan, Noam, Agroskin, Shay, Itzko, Shahar,
Abboud, Osama, Ostrovsky, Evgeny, Tabachnik, Ofir
On Sun, May 12, 2024 at 01:46:35PM +0000, darinzon@amazon.com wrote:
> From: David Arinzon <darinzon@amazon.com>
>
> Validate that `first` flag is set only for the first
> descriptor in multi-buffer packets.
> In case of an invalid descriptor, a reset will occur.
> A new reset reason for RX data corruption has been added.
>
> Signed-off-by: Shahar Itzko <itzko@amazon.com>
> Signed-off-by: David Arinzon <darinzon@amazon.com>
Reviewed-by: Simon Horman <horms@kernel.org>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 net-next 4/5] net: ena: Changes around strscpy calls
2024-05-12 13:46 ` [PATCH v2 net-next 4/5] net: ena: Changes around strscpy calls darinzon
@ 2024-05-13 9:35 ` Simon Horman
0 siblings, 0 replies; 12+ messages in thread
From: Simon Horman @ 2024-05-13 9:35 UTC (permalink / raw)
To: darinzon
Cc: David Miller, Jakub Kicinski, netdev, Eric Dumazet, Paolo Abeni,
Woodhouse, David, Machulsky, Zorik, Matushevsky, Alexander,
Saeed Bshara, Wilson, Matt, Liguori, Anthony, Bshara, Nafea,
Belgazal, Netanel, Saidi, Ali, Herrenschmidt, Benjamin,
Kiyanovski, Arthur, Dagan, Noam, Agroskin, Shay, Itzko, Shahar,
Abboud, Osama, Ostrovsky, Evgeny, Tabachnik, Ofir
On Sun, May 12, 2024 at 01:46:36PM +0000, darinzon@amazon.com wrote:
> From: David Arinzon <darinzon@amazon.com>
>
> strscpy copies as much of the string as possible,
> meaning that the destination string will be truncated
> in case of no space. As this is a non-critical error in
> our case, adding a debug level print for indication.
>
> This patch also removes a -1 which was added to ensure
> enough space for NUL, but strscpy destination string is
> guaranteed to be NUL-terminted, therefore, the -1 is
> not needed.
>
> Signed-off-by: David Arinzon <darinzon@amazon.com>
Reviewed-by: Simon Horman <horms@kernel.org>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 net-next 5/5] net: ena: Change initial rx_usec interval
2024-05-12 13:46 ` [PATCH v2 net-next 5/5] net: ena: Change initial rx_usec interval darinzon
@ 2024-05-13 9:35 ` Simon Horman
0 siblings, 0 replies; 12+ messages in thread
From: Simon Horman @ 2024-05-13 9:35 UTC (permalink / raw)
To: darinzon
Cc: David Miller, Jakub Kicinski, netdev, Eric Dumazet, Paolo Abeni,
Woodhouse, David, Machulsky, Zorik, Matushevsky, Alexander,
Saeed Bshara, Wilson, Matt, Liguori, Anthony, Bshara, Nafea,
Belgazal, Netanel, Saidi, Ali, Herrenschmidt, Benjamin,
Kiyanovski, Arthur, Dagan, Noam, Agroskin, Shay, Itzko, Shahar,
Abboud, Osama, Ostrovsky, Evgeny, Tabachnik, Ofir
On Sun, May 12, 2024 at 01:46:37PM +0000, darinzon@amazon.com wrote:
> From: David Arinzon <darinzon@amazon.com>
>
> For the purpose of obtaining better CPU utilization,
> minimum rx moderation interval is set to 20 usec.
>
> Signed-off-by: Osama Abboud <osamaabb@amazon.com>
> Signed-off-by: David Arinzon <darinzon@amazon.com>
Reviewed-by: Simon Horman <horms@kernel.org>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v2 net-next 0/5] ENA driver changes May 2024
2024-05-12 13:46 [PATCH v2 net-next 0/5] ENA driver changes May 2024 darinzon
` (4 preceding siblings ...)
2024-05-12 13:46 ` [PATCH v2 net-next 5/5] net: ena: Change initial rx_usec interval darinzon
@ 2024-05-13 21:50 ` patchwork-bot+netdevbpf
5 siblings, 0 replies; 12+ messages in thread
From: patchwork-bot+netdevbpf @ 2024-05-13 21:50 UTC (permalink / raw)
To: Arinzon, David
Cc: davem, kuba, netdev, edumazet, pabeni, dwmw, zorik, matua, saeedb,
msw, aliguori, nafea, netanel, alisaidi, benh, akiyano, ndagan,
shayagr, itzko, osamaabb, evostrov, ofirt
Hello:
This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Sun, 12 May 2024 13:46:32 +0000 you wrote:
> From: David Arinzon <darinzon@amazon.com>
>
> This patchset contains several misc and minor
> changes to the ENA driver.
>
> Changes from v1:
> - Removed interrupt moderation hint from the
> patchset. The change is moved back to
> development state and will be released as
> part of a different patchset in the future.
>
> [...]
Here is the summary with links:
- [v2,net-next,1/5] net: ena: Add a counter for driver's reset failures
https://git.kernel.org/netdev/net-next/c/62a261f6c1dd
- [v2,net-next,2/5] net: ena: Reduce holes in ena_com structures
https://git.kernel.org/netdev/net-next/c/48673ef44431
- [v2,net-next,3/5] net: ena: Add validation for completion descriptors consistency
https://git.kernel.org/netdev/net-next/c/b37b98a3a0c1
- [v2,net-next,4/5] net: ena: Changes around strscpy calls
https://git.kernel.org/netdev/net-next/c/97776caf6c6e
- [v2,net-next,5/5] net: ena: Change initial rx_usec interval
https://git.kernel.org/netdev/net-next/c/1cc0a47daa7a
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2024-05-13 21:50 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-12 13:46 [PATCH v2 net-next 0/5] ENA driver changes May 2024 darinzon
2024-05-12 13:46 ` [PATCH v2 net-next 1/5] net: ena: Add a counter for driver's reset failures darinzon
2024-05-13 9:34 ` Simon Horman
2024-05-12 13:46 ` [PATCH v2 net-next 2/5] net: ena: Reduce holes in ena_com structures darinzon
2024-05-13 9:34 ` Simon Horman
2024-05-12 13:46 ` [PATCH v2 net-next 3/5] net: ena: Add validation for completion descriptors consistency darinzon
2024-05-13 9:34 ` Simon Horman
2024-05-12 13:46 ` [PATCH v2 net-next 4/5] net: ena: Changes around strscpy calls darinzon
2024-05-13 9:35 ` Simon Horman
2024-05-12 13:46 ` [PATCH v2 net-next 5/5] net: ena: Change initial rx_usec interval darinzon
2024-05-13 9:35 ` Simon Horman
2024-05-13 21:50 ` [PATCH v2 net-next 0/5] ENA driver changes May 2024 patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).