DPDK patches and discussions
 help / color / mirror / Atom feed
From: Michal Krawczyk <mk@semihalf.com>
To: ferruh.yigit@intel.com
Cc: dev@dpdk.org, ndagan@amazon.com, gtzalik@amazon.com,
	igorch@amazon.com, upstream@semihalf.com,
	Stanislaw Kardach <kda@semihalf.com>,
	Michal Krawczyk <mk@semihalf.com>,
	Shay Agroskin <shayagr@amazon.com>
Subject: [dpdk-dev] [PATCH v5 2/3] net/ena: make ethdev references multiprocess safe
Date: Wed, 12 May 2021 12:13:45 +0200	[thread overview]
Message-ID: <20210512101346.24803-3-mk@semihalf.com> (raw)
In-Reply-To: <20210512101346.24803-1-mk@semihalf.com>

From: Stanislaw Kardach <kda@semihalf.com>

rte_pci_device and rte_eth_dev are process-local structures. Therefore
ena_adapter::pdev and ena_adapter::rte_dev cannot be used universally.

Both ena_timer_wd_callback and ena_interrupt_handler_rte needs access to
the rte_eth_dev, but as they are being setup and executed in the primary
process, it is safe to pass there the same pointer, which is used for
the device configuration.

In all other cases, except the eth_ena_dev_init(), the rte_eth_dev_data
is used instead.

Signed-off-by: Stanislaw Kardach <kda@semihalf.com>
Signed-off-by: Michal Krawczyk <mk@semihalf.com>
Reviewed-by: Igor Chauskin <igorch@amazon.com>
Reviewed-by: Shay Agroskin <shayagr@amazon.com>
---
v5:
* Remove adapter::port_id field.
* Update commit log.

v4:
* Remove access to the "rte_eth_devices" and instead pass rte_eth_dev as an
  argument to all the primary process callbacks.
* Fix commit heading style.

 drivers/net/ena/ena_ethdev.c | 70 ++++++++++++++++++------------------
 drivers/net/ena/ena_ethdev.h |  4 +--
 2 files changed, 36 insertions(+), 38 deletions(-)

diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c
index fb2b19cfdb..e310e7ae8c 100644
--- a/drivers/net/ena/ena_ethdev.c
+++ b/drivers/net/ena/ena_ethdev.c
@@ -164,6 +164,7 @@ static const struct rte_pci_id pci_id_ena_map[] = {
 static struct ena_aenq_handlers aenq_handlers;
 
 static int ena_device_init(struct ena_com_dev *ena_dev,
+			   struct rte_pci_device *pdev,
 			   struct ena_com_dev_get_features_ctx *get_feat_ctx,
 			   bool *wd_state);
 static int ena_dev_configure(struct rte_eth_dev *dev);
@@ -457,11 +458,11 @@ static void ena_config_host_info(struct ena_com_dev *ena_dev)
 }
 
 /* This function calculates the number of xstats based on the current config */
-static unsigned int ena_xstats_calc_num(struct rte_eth_dev *dev)
+static unsigned int ena_xstats_calc_num(struct rte_eth_dev_data *data)
 {
 	return ENA_STATS_ARRAY_GLOBAL + ENA_STATS_ARRAY_ENI +
-		(dev->data->nb_tx_queues * ENA_STATS_ARRAY_TX) +
-		(dev->data->nb_rx_queues * ENA_STATS_ARRAY_RX);
+		(data->nb_tx_queues * ENA_STATS_ARRAY_TX) +
+		(data->nb_rx_queues * ENA_STATS_ARRAY_RX);
 }
 
 static void ena_config_debug_area(struct ena_adapter *adapter)
@@ -469,7 +470,7 @@ static void ena_config_debug_area(struct ena_adapter *adapter)
 	u32 debug_area_size;
 	int rc, ss_count;
 
-	ss_count = ena_xstats_calc_num(adapter->rte_dev);
+	ss_count = ena_xstats_calc_num(adapter->edev_data);
 
 	/* allocate 32 bytes for each string and 64bit for the value */
 	debug_area_size = ss_count * ETH_GSTRING_LEN + sizeof(u64) * ss_count;
@@ -518,7 +519,7 @@ static int ena_close(struct rte_eth_dev *dev)
 	rte_intr_disable(intr_handle);
 	rte_intr_callback_unregister(intr_handle,
 				     ena_interrupt_handler_rte,
-				     adapter);
+				     dev);
 
 	/*
 	 * MAC is not allocated dynamically. Setting NULL should prevent from
@@ -593,7 +594,7 @@ static int ena_rss_reta_update(struct rte_eth_dev *dev,
 	}
 
 	PMD_DRV_LOG(DEBUG, "%s(): RSS configured %d entries  for port %d\n",
-		__func__, reta_size, adapter->rte_dev->data->port_id);
+		__func__, reta_size, dev->data->port_id);
 
 	return 0;
 }
@@ -637,7 +638,7 @@ static int ena_rss_reta_query(struct rte_eth_dev *dev,
 static int ena_rss_init_default(struct ena_adapter *adapter)
 {
 	struct ena_com_dev *ena_dev = &adapter->ena_dev;
-	uint16_t nb_rx_queues = adapter->rte_dev->data->nb_rx_queues;
+	uint16_t nb_rx_queues = adapter->edev_data->nb_rx_queues;
 	int rc, i;
 	u32 val;
 
@@ -676,7 +677,7 @@ static int ena_rss_init_default(struct ena_adapter *adapter)
 		goto err_fill_indir;
 	}
 	PMD_DRV_LOG(DEBUG, "RSS configured for port %d\n",
-		adapter->rte_dev->data->port_id);
+		adapter->edev_data->port_id);
 
 	return 0;
 
@@ -847,10 +848,10 @@ static uint32_t ena_get_mtu_conf(struct ena_adapter *adapter)
 {
 	uint32_t max_frame_len = adapter->max_mtu;
 
-	if (adapter->rte_eth_dev_data->dev_conf.rxmode.offloads &
+	if (adapter->edev_data->dev_conf.rxmode.offloads &
 	    DEV_RX_OFFLOAD_JUMBO_FRAME)
 		max_frame_len =
-			adapter->rte_eth_dev_data->dev_conf.rxmode.max_rx_pkt_len;
+			adapter->edev_data->dev_conf.rxmode.max_rx_pkt_len;
 
 	return max_frame_len;
 }
@@ -1070,8 +1071,8 @@ static int ena_start(struct rte_eth_dev *dev)
 	if (rc)
 		goto err_start_tx;
 
-	if (adapter->rte_dev->data->dev_conf.rxmode.mq_mode &
-	    ETH_MQ_RX_RSS_FLAG && adapter->rte_dev->data->nb_rx_queues > 0) {
+	if (adapter->edev_data->dev_conf.rxmode.mq_mode &
+	    ETH_MQ_RX_RSS_FLAG && adapter->edev_data->nb_rx_queues > 0) {
 		rc = ena_rss_init_default(adapter);
 		if (rc)
 			goto err_rss_init;
@@ -1084,7 +1085,7 @@ static int ena_start(struct rte_eth_dev *dev)
 
 	ticks = rte_get_timer_hz();
 	rte_timer_reset(&adapter->timer_wd, ticks, PERIODICAL, rte_lcore_id(),
-			ena_timer_wd_callback, adapter);
+			ena_timer_wd_callback, dev);
 
 	++adapter->dev_stats.dev_start;
 	adapter->state = ENA_ADAPTER_STATE_RUNNING;
@@ -1505,6 +1506,7 @@ static int ena_populate_rx_queue(struct ena_ring *rxq, unsigned int count)
 }
 
 static int ena_device_init(struct ena_com_dev *ena_dev,
+			   struct rte_pci_device *pdev,
 			   struct ena_com_dev_get_features_ctx *get_feat_ctx,
 			   bool *wd_state)
 {
@@ -1522,9 +1524,7 @@ static int ena_device_init(struct ena_com_dev *ena_dev,
 	/* The PCIe configuration space revision id indicate if mmio reg
 	 * read is disabled.
 	 */
-	readless_supported =
-		!(((struct rte_pci_device *)ena_dev->dmadev)->id.class_id
-			       & ENA_MMIO_DISABLE_REG_READ);
+	readless_supported = !(pdev->id.class_id & ENA_MMIO_DISABLE_REG_READ);
 	ena_com_set_mmio_read_mode(ena_dev, readless_supported);
 
 	/* reset device */
@@ -1595,12 +1595,13 @@ static int ena_device_init(struct ena_com_dev *ena_dev,
 
 static void ena_interrupt_handler_rte(void *cb_arg)
 {
-	struct ena_adapter *adapter = cb_arg;
+	struct rte_eth_dev *dev = cb_arg;
+	struct ena_adapter *adapter = dev->data->dev_private;
 	struct ena_com_dev *ena_dev = &adapter->ena_dev;
 
 	ena_com_admin_q_comp_intr_handler(ena_dev);
 	if (likely(adapter->state != ENA_ADAPTER_STATE_CLOSED))
-		ena_com_aenq_intr_handler(ena_dev, adapter);
+		ena_com_aenq_intr_handler(ena_dev, dev);
 }
 
 static void check_for_missing_keep_alive(struct ena_adapter *adapter)
@@ -1633,8 +1634,8 @@ static void check_for_admin_com_state(struct ena_adapter *adapter)
 static void ena_timer_wd_callback(__rte_unused struct rte_timer *timer,
 				  void *arg)
 {
-	struct ena_adapter *adapter = arg;
-	struct rte_eth_dev *dev = adapter->rte_dev;
+	struct rte_eth_dev *dev = arg;
+	struct ena_adapter *adapter = dev->data->dev_private;
 
 	check_for_missing_keep_alive(adapter);
 	check_for_admin_com_state(adapter);
@@ -1775,11 +1776,9 @@ static int eth_ena_dev_init(struct rte_eth_dev *eth_dev)
 	memset(adapter, 0, sizeof(struct ena_adapter));
 	ena_dev = &adapter->ena_dev;
 
-	adapter->rte_eth_dev_data = eth_dev->data;
-	adapter->rte_dev = eth_dev;
+	adapter->edev_data = eth_dev->data;
 
 	pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
-	adapter->pdev = pci_dev;
 
 	PMD_INIT_LOG(INFO, "Initializing %x:%x:%x.%d",
 		     pci_dev->addr.domain,
@@ -1799,7 +1798,8 @@ static int eth_ena_dev_init(struct rte_eth_dev *eth_dev)
 	}
 
 	ena_dev->reg_bar = adapter->regs;
-	ena_dev->dmadev = adapter->pdev;
+	/* This is a dummy pointer for ena_com functions. */
+	ena_dev->dmadev = adapter;
 
 	adapter->id_number = adapters_found;
 
@@ -1813,7 +1813,7 @@ static int eth_ena_dev_init(struct rte_eth_dev *eth_dev)
 	}
 
 	/* device specific initialization routine */
-	rc = ena_device_init(ena_dev, &get_feat_ctx, &wd_state);
+	rc = ena_device_init(ena_dev, pci_dev, &get_feat_ctx, &wd_state);
 	if (rc) {
 		PMD_INIT_LOG(CRIT, "Failed to init ENA device");
 		goto err;
@@ -1896,7 +1896,7 @@ static int eth_ena_dev_init(struct rte_eth_dev *eth_dev)
 
 	rte_intr_callback_register(intr_handle,
 				   ena_interrupt_handler_rte,
-				   adapter);
+				   eth_dev);
 	rte_intr_enable(intr_handle);
 	ena_com_set_admin_polling_mode(ena_dev, false);
 	ena_com_admin_aenq_enable(ena_dev);
@@ -2679,7 +2679,7 @@ static int ena_xstats_get_names(struct rte_eth_dev *dev,
 				struct rte_eth_xstat_name *xstats_names,
 				unsigned int n)
 {
-	unsigned int xstats_count = ena_xstats_calc_num(dev);
+	unsigned int xstats_count = ena_xstats_calc_num(dev->data);
 	unsigned int stat, i, count = 0;
 
 	if (n < xstats_count || !xstats_names)
@@ -2728,7 +2728,7 @@ static int ena_xstats_get(struct rte_eth_dev *dev,
 			  unsigned int n)
 {
 	struct ena_adapter *adapter = dev->data->dev_private;
-	unsigned int xstats_count = ena_xstats_calc_num(dev);
+	unsigned int xstats_count = ena_xstats_calc_num(dev->data);
 	unsigned int stat, i, count = 0;
 	int stat_offset;
 	void *stats_begin;
@@ -2953,14 +2953,12 @@ RTE_LOG_REGISTER_SUFFIX(ena_logtype_com, com, NOTICE);
 static void ena_update_on_link_change(void *adapter_data,
 				      struct ena_admin_aenq_entry *aenq_e)
 {
-	struct rte_eth_dev *eth_dev;
-	struct ena_adapter *adapter;
+	struct rte_eth_dev *eth_dev = adapter_data;
+	struct ena_adapter *adapter = eth_dev->data->dev_private;
 	struct ena_admin_aenq_link_change_desc *aenq_link_desc;
 	uint32_t status;
 
-	adapter = adapter_data;
 	aenq_link_desc = (struct ena_admin_aenq_link_change_desc *)aenq_e;
-	eth_dev = adapter->rte_dev;
 
 	status = get_ena_admin_aenq_link_change_desc_link_status(aenq_link_desc);
 	adapter->link_status = status;
@@ -2969,10 +2967,11 @@ static void ena_update_on_link_change(void *adapter_data,
 	rte_eth_dev_callback_process(eth_dev, RTE_ETH_EVENT_INTR_LSC, NULL);
 }
 
-static void ena_notification(void *data,
+static void ena_notification(void *adapter_data,
 			     struct ena_admin_aenq_entry *aenq_e)
 {
-	struct ena_adapter *adapter = data;
+	struct rte_eth_dev *eth_dev = adapter_data;
+	struct ena_adapter *adapter = eth_dev->data->dev_private;
 	struct ena_admin_ena_hw_hints *hints;
 
 	if (aenq_e->aenq_common_desc.group != ENA_ADMIN_NOTIFICATION)
@@ -2995,7 +2994,8 @@ static void ena_notification(void *data,
 static void ena_keep_alive(void *adapter_data,
 			   __rte_unused struct ena_admin_aenq_entry *aenq_e)
 {
-	struct ena_adapter *adapter = adapter_data;
+	struct rte_eth_dev *eth_dev = adapter_data;
+	struct ena_adapter *adapter = eth_dev->data->dev_private;
 	struct ena_admin_aenq_keep_alive_desc *desc;
 	uint64_t rx_drops;
 	uint64_t tx_drops;
diff --git a/drivers/net/ena/ena_ethdev.h b/drivers/net/ena/ena_ethdev.h
index ae235897ee..78718b759b 100644
--- a/drivers/net/ena/ena_ethdev.h
+++ b/drivers/net/ena/ena_ethdev.h
@@ -210,9 +210,7 @@ struct ena_offloads {
 /* board specific private data structure */
 struct ena_adapter {
 	/* OS defined structs */
-	struct rte_pci_device *pdev;
-	struct rte_eth_dev_data *rte_eth_dev_data;
-	struct rte_eth_dev *rte_dev;
+	struct rte_eth_dev_data *edev_data;
 
 	struct ena_com_dev ena_dev __rte_cache_aligned;
 
-- 
2.25.1


  parent reply	other threads:[~2021-05-12 10:14 UTC|newest]

Thread overview: 121+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-30 12:57 [dpdk-dev] [PATCH 00/22] net/ena: update ENA PMD to v2.3.0 Michal Krawczyk
2021-04-30 12:57 ` [dpdk-dev] [PATCH 01/22] net/ena: switch memcpy to dpdk-optimized version Michal Krawczyk
2021-04-30 12:57 ` [dpdk-dev] [PATCH 02/22] net/ena/base: unify arg names for the functions Michal Krawczyk
2021-04-30 12:57 ` [dpdk-dev] [PATCH 03/22] net/ena/base: add dev arg to the logging macros Michal Krawczyk
2021-04-30 12:57 ` [dpdk-dev] [PATCH 04/22] net/ena/base: typos, style and comments improvements Michal Krawczyk
2021-04-30 12:57 ` [dpdk-dev] [PATCH 05/22] net/ena/base: fix issues from the static code scan Michal Krawczyk
2021-04-30 12:57 ` [dpdk-dev] [PATCH 06/22] net/ena/base: destroy multiple "wait events" Michal Krawczyk
2021-04-30 12:57 ` [dpdk-dev] [PATCH 07/22] net/ena/base: remove indir table from ENA feat ctx Michal Krawczyk
2021-04-30 12:57 ` [dpdk-dev] [PATCH 08/22] net/ena/base: remove mutable RSS from the host info Michal Krawczyk
2021-04-30 12:57 ` [dpdk-dev] [PATCH 09/22] net/ena/base: update generation date and commit Michal Krawczyk
2021-04-30 12:57 ` [dpdk-dev] [PATCH 10/22] net/ena/base: use rte_prefetch0_write Michal Krawczyk
2021-04-30 12:57 ` [dpdk-dev] [PATCH 11/22] net/ena/base: adjust changes to lastest ena-com Michal Krawczyk
2021-04-30 12:57 ` [dpdk-dev] [PATCH 12/22] net/ena: fix parsing of large_llq_hdr argument Michal Krawczyk
2021-04-30 12:57 ` [dpdk-dev] [PATCH 13/22] net/ena: terminate devargs allowed keys with NULL Michal Krawczyk
2021-04-30 12:57 ` [dpdk-dev] [PATCH 14/22] net/ena: indicate Rx RSS hash presence Michal Krawczyk
2021-04-30 12:57 ` [dpdk-dev] [PATCH 15/22] net/ena: remove endian swap functions Michal Krawczyk
2021-04-30 12:57 ` [dpdk-dev] [PATCH 16/22] net/ena: handle spurious wakeups in ENA_WAIT_EVENT Michal Krawczyk
2021-04-30 12:57 ` [dpdk-dev] [PATCH 17/22] net/ena: support SMP for mz alloc counter Michal Krawczyk
2021-04-30 12:57 ` [dpdk-dev] [PATCH 18/22] net/ena: move default RSS key to shared mem Michal Krawczyk
2021-04-30 12:57 ` [dpdk-dev] [PATCH 19/22] net/ena: make ethdev references smp safe Michal Krawczyk
2021-04-30 12:57 ` [dpdk-dev] [PATCH 20/22] net/ena: disable dev_ops not supported in SMP Michal Krawczyk
2021-04-30 12:57 ` [dpdk-dev] [PATCH 21/22] net/ena: report default ring size Michal Krawczyk
2021-04-30 12:57 ` [dpdk-dev] [PATCH 22/22] net/ena: update version to v2.3.0 Michal Krawczyk
2021-05-05  7:33 ` [dpdk-dev] [PATCH v2 00/22] net/ena: update ENA PMD " Michal Krawczyk
2021-05-05  7:33   ` [dpdk-dev] [PATCH v2 01/22] net/ena: switch memcpy to dpdk-optimized version Michal Krawczyk
2021-05-05  7:33   ` [dpdk-dev] [PATCH v2 02/22] net/ena/base: unify arg names for the functions Michal Krawczyk
2021-05-05  7:33   ` [dpdk-dev] [PATCH v2 03/22] net/ena/base: add dev arg to the logging macros Michal Krawczyk
2021-05-05  7:33   ` [dpdk-dev] [PATCH v2 04/22] net/ena/base: typos, style and comments improvements Michal Krawczyk
2021-05-05  7:33   ` [dpdk-dev] [PATCH v2 05/22] net/ena/base: fix issues from the static code scan Michal Krawczyk
2021-05-05  7:33   ` [dpdk-dev] [PATCH v2 06/22] net/ena/base: destroy multiple "wait events" Michal Krawczyk
2021-05-05  7:33   ` [dpdk-dev] [PATCH v2 07/22] net/ena/base: remove indir table from ENA feat ctx Michal Krawczyk
2021-05-05  7:33   ` [dpdk-dev] [PATCH v2 08/22] net/ena/base: remove mutable RSS from the host info Michal Krawczyk
2021-05-05  7:33   ` [dpdk-dev] [PATCH v2 09/22] net/ena/base: update generation date and commit Michal Krawczyk
2021-05-05  7:33   ` [dpdk-dev] [PATCH v2 10/22] net/ena/base: use rte_prefetch0_write Michal Krawczyk
2021-05-05  7:33   ` [dpdk-dev] [PATCH v2 11/22] net/ena/base: adjust changes to lastest ena-com Michal Krawczyk
2021-05-05  7:33   ` [dpdk-dev] [PATCH v2 12/22] net/ena: fix parsing of large_llq_hdr argument Michal Krawczyk
2021-05-05  7:33   ` [dpdk-dev] [PATCH v2 13/22] net/ena: terminate devargs allowed keys with NULL Michal Krawczyk
2021-05-05  7:33   ` [dpdk-dev] [PATCH v2 14/22] net/ena: indicate Rx RSS hash presence Michal Krawczyk
2021-05-05  7:33   ` [dpdk-dev] [PATCH v2 15/22] net/ena: remove endian swap functions Michal Krawczyk
2021-05-05  7:33   ` [dpdk-dev] [PATCH v2 16/22] net/ena: handle spurious wakeups in ENA_WAIT_EVENT Michal Krawczyk
2021-05-05  7:33   ` [dpdk-dev] [PATCH v2 17/22] net/ena: support SMP for mz alloc counter Michal Krawczyk
2021-05-05  7:33   ` [dpdk-dev] [PATCH v2 18/22] net/ena: move default RSS key to shared mem Michal Krawczyk
2021-05-05  7:33   ` [dpdk-dev] [PATCH v2 19/22] net/ena: make ethdev references smp safe Michal Krawczyk
2021-05-05  7:33   ` [dpdk-dev] [PATCH v2 20/22] net/ena: disable dev_ops not supported in SMP Michal Krawczyk
2021-05-05  7:33   ` [dpdk-dev] [PATCH v2 21/22] net/ena: report default ring size Michal Krawczyk
2021-05-05  7:33   ` [dpdk-dev] [PATCH v2 22/22] net/ena: update version to v2.3.0 Michal Krawczyk
2021-05-06 14:25   ` [dpdk-dev] [PATCH v3 00/22] net/ena: update ENA PMD " Michal Krawczyk
2021-05-06 14:25     ` [dpdk-dev] [PATCH v3 01/22] net/ena: switch memcpy to dpdk-optimized version Michal Krawczyk
2021-05-06 14:25     ` [dpdk-dev] [PATCH v3 02/22] net/ena/base: unify arg names for the functions Michal Krawczyk
2021-05-06 14:25     ` [dpdk-dev] [PATCH v3 03/22] net/ena/base: add dev arg to the logging macros Michal Krawczyk
2021-05-06 14:25     ` [dpdk-dev] [PATCH v3 04/22] net/ena/base: typos, style and comments improvements Michal Krawczyk
2021-05-06 14:25     ` [dpdk-dev] [PATCH v3 05/22] net/ena/base: fix issues from the static code scan Michal Krawczyk
2021-05-06 14:25     ` [dpdk-dev] [PATCH v3 06/22] net/ena/base: destroy multiple "wait events" Michal Krawczyk
2021-05-07 16:47       ` Ferruh Yigit
2021-05-09 14:17         ` Michał Krawczyk
2021-05-06 14:25     ` [dpdk-dev] [PATCH v3 07/22] net/ena/base: remove indir table from ENA feat ctx Michal Krawczyk
2021-05-06 14:25     ` [dpdk-dev] [PATCH v3 08/22] net/ena/base: remove mutable RSS from the host info Michal Krawczyk
2021-05-06 14:25     ` [dpdk-dev] [PATCH v3 09/22] net/ena/base: update generation date and commit Michal Krawczyk
2021-05-06 14:25     ` [dpdk-dev] [PATCH v3 10/22] net/ena/base: use rte_prefetch0_write Michal Krawczyk
2021-05-06 14:25     ` [dpdk-dev] [PATCH v3 11/22] net/ena/base: adjust changes to lastest ena-com Michal Krawczyk
2021-05-06 14:25     ` [dpdk-dev] [PATCH v3 12/22] net/ena: fix parsing of large_llq_hdr argument Michal Krawczyk
2021-05-06 14:25     ` [dpdk-dev] [PATCH v3 13/22] net/ena: terminate devargs allowed keys with NULL Michal Krawczyk
2021-05-07 16:47       ` [dpdk-dev] [dpdk-stable] " Ferruh Yigit
2021-05-06 14:25     ` [dpdk-dev] [PATCH v3 14/22] net/ena: indicate Rx RSS hash presence Michal Krawczyk
2021-05-07 16:47       ` [dpdk-dev] [dpdk-stable] " Ferruh Yigit
2021-05-09 14:20         ` Michał Krawczyk
2021-05-06 14:25     ` [dpdk-dev] [PATCH v3 15/22] net/ena: remove endian swap functions Michal Krawczyk
2021-05-06 14:25     ` [dpdk-dev] [PATCH v3 16/22] net/ena: handle spurious wakeups in ENA_WAIT_EVENT Michal Krawczyk
2021-05-07 16:55       ` Ferruh Yigit
2021-05-06 14:25     ` [dpdk-dev] [PATCH v3 17/22] net/ena: support SMP for mz alloc counter Michal Krawczyk
2021-05-07 16:48       ` Ferruh Yigit
2021-05-07 17:18         ` Stanislaw Kardach
2021-05-09 13:41           ` Ferruh Yigit
2021-05-10  8:18             ` Stanislaw Kardach
2021-05-06 14:25     ` [dpdk-dev] [PATCH v3 18/22] net/ena: move default RSS key to shared mem Michal Krawczyk
2021-05-10  8:27       ` Stanislaw Kardach
2021-05-06 14:25     ` [dpdk-dev] [PATCH v3 19/22] net/ena: make ethdev references smp safe Michal Krawczyk
2021-05-07 16:49       ` Ferruh Yigit
2021-05-09 14:40         ` Michał Krawczyk
2021-05-06 14:25     ` [dpdk-dev] [PATCH v3 20/22] net/ena: disable dev_ops not supported in SMP Michal Krawczyk
2021-05-06 14:25     ` [dpdk-dev] [PATCH v3 21/22] net/ena: report default ring size Michal Krawczyk
2021-05-06 14:25     ` [dpdk-dev] [PATCH v3 22/22] net/ena: update version to v2.3.0 Michal Krawczyk
2021-05-07 16:50       ` Ferruh Yigit
2021-05-09 14:33         ` Michał Krawczyk
2021-05-07 14:59     ` [dpdk-dev] [PATCH v3 00/22] net/ena: update ENA PMD " Ferruh Yigit
2021-05-07 15:07       ` Ferruh Yigit
2021-05-10 12:02       ` Michał Krawczyk
2021-05-10 12:27         ` Ferruh Yigit
2021-05-11  6:45           ` [dpdk-dev] [PATCH v4 00/19] " Michal Krawczyk
2021-05-11  6:45             ` [dpdk-dev] [PATCH v4 01/19] net/ena: switch memcpy to dpdk-optimized version Michal Krawczyk
2021-05-11  6:45             ` [dpdk-dev] [PATCH v4 02/19] net/ena/base: unify arg names for the functions Michal Krawczyk
2021-05-11  6:45             ` [dpdk-dev] [PATCH v4 03/19] net/ena/base: add dev arg to the logging macros Michal Krawczyk
2021-05-11  6:45             ` [dpdk-dev] [PATCH v4 04/19] net/ena/base: style and comments improvements Michal Krawczyk
2021-05-11  6:45             ` [dpdk-dev] [PATCH v4 05/19] net/ena/base: fix issues from the static code scan Michal Krawczyk
2021-05-11  6:45             ` [dpdk-dev] [PATCH v4 06/19] net/ena/base: destroy multiple "wait events" Michal Krawczyk
2021-05-11  6:45             ` [dpdk-dev] [PATCH v4 07/19] net/ena/base: remove indir table from ENA feat ctx Michal Krawczyk
2021-05-11  6:45             ` [dpdk-dev] [PATCH v4 08/19] net/ena/base: remove mutable RSS from the host info Michal Krawczyk
2021-05-11  6:45             ` [dpdk-dev] [PATCH v4 09/19] net/ena/base: use rte prefetch0 write Michal Krawczyk
2021-05-11  6:45             ` [dpdk-dev] [PATCH v4 10/19] net/ena/base: adjust changes to lastest ena-com Michal Krawczyk
2021-05-11  6:45             ` [dpdk-dev] [PATCH v4 11/19] net/ena: fix parsing of large LLQ header devarg Michal Krawczyk
2021-05-12 17:48               ` [dpdk-dev] [dpdk-stable] " Thomas Monjalon
2021-05-11  6:45             ` [dpdk-dev] [PATCH v4 12/19] net/ena: terminate devargs allowed keys with null Michal Krawczyk
2021-05-11  6:45             ` [dpdk-dev] [PATCH v4 13/19] net/ena: indicate Rx RSS hash presence Michal Krawczyk
2021-05-11 12:16               ` Ferruh Yigit
2021-05-11  6:45             ` [dpdk-dev] [PATCH v4 14/19] net/ena: remove endian swap functions Michal Krawczyk
2021-05-11  6:45             ` [dpdk-dev] [PATCH v4 15/19] net/ena: handle spurious wakeups in ENA wait event Michal Krawczyk
2021-05-11  6:45             ` [dpdk-dev] [PATCH v4 16/19] net/ena: make ethdev references SMP safe Michal Krawczyk
2021-05-11 12:22               ` Ferruh Yigit
2021-05-11  6:45             ` [dpdk-dev] [PATCH v4 17/19] net/ena: disable dev ops not supported in SMP Michal Krawczyk
2021-05-11 12:29               ` Ferruh Yigit
2021-05-11  6:45             ` [dpdk-dev] [PATCH v4 18/19] net/ena: report default ring size Michal Krawczyk
2021-05-11  6:45             ` [dpdk-dev] [PATCH v4 19/19] net/ena: update version to v2.3.0 Michal Krawczyk
2021-05-11 13:07             ` [dpdk-dev] [PATCH v4 00/19] net/ena: update ENA PMD " Ferruh Yigit
2021-05-11 13:34               ` Michał Krawczyk
2021-05-12 10:13                 ` [dpdk-dev] [PATCH v5 0/3] " Michal Krawczyk
2021-05-12 10:13                   ` [dpdk-dev] [PATCH v5 1/3] net/ena: indicate Rx RSS hash presence Michal Krawczyk
2021-05-12 10:13                   ` Michal Krawczyk [this message]
2021-05-12 10:13                   ` [dpdk-dev] [PATCH v5 3/3] net/ena: disable dev ops not supported by secondary process Michal Krawczyk
2021-05-12 12:20                   ` [dpdk-dev] [PATCH v5 0/3] net/ena: update ENA PMD to v2.3.0 Ferruh Yigit
2021-05-07 15:52     ` [dpdk-dev] [PATCH v3 00/22] " Ferruh Yigit
2021-05-09 14:15       ` Michał Krawczyk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210512101346.24803-3-mk@semihalf.com \
    --to=mk@semihalf.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=gtzalik@amazon.com \
    --cc=igorch@amazon.com \
    --cc=kda@semihalf.com \
    --cc=ndagan@amazon.com \
    --cc=shayagr@amazon.com \
    --cc=upstream@semihalf.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).