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 v4 16/19] net/ena: make ethdev references SMP safe
Date: Tue, 11 May 2021 08:45:51 +0200 [thread overview]
Message-ID: <20210511064554.10656-17-mk@semihalf.com> (raw)
In-Reply-To: <20210511064554.10656-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.
Switch this to extracting those structures via rte_eth_devices indexing
and remove pdev since it's not used outside of init.
Signed-off-by: Stanislaw Kardach <kda@semihalf.com>
Reviewed-by: Michal Krawczyk <mk@semihalf.com>
Reviewed-by: Igor Chauskin <igorch@amazon.com>
Reviewed-by: Shay Agroskin <shayagr@amazon.com>
---
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 | 72 ++++++++++++++++++------------------
drivers/net/ena/ena_ethdev.h | 5 +--
2 files changed, 38 insertions(+), 39 deletions(-)
diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c
index 9a43ab50fe..055fa6d514 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;
@@ -675,8 +676,7 @@ static int ena_rss_init_default(struct ena_adapter *adapter)
PMD_DRV_LOG(ERR, "Cannot flush the indirect table\n");
goto err_fill_indir;
}
- PMD_DRV_LOG(DEBUG, "RSS configured for port %d\n",
- adapter->rte_dev->data->port_id);
+ PMD_DRV_LOG(DEBUG, "RSS configured for port %d\n", adapter->port_id);
return 0;
@@ -847,10 +847,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 +1070,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 +1084,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;
@@ -1511,6 +1511,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)
{
@@ -1528,9 +1529,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 */
@@ -1601,12 +1600,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)
@@ -1639,8 +1639,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);
@@ -1781,11 +1781,10 @@ 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;
+ adapter->port_id = eth_dev->data->port_id;
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,
@@ -1805,7 +1804,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;
@@ -1819,7 +1819,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;
@@ -1902,7 +1902,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);
@@ -2681,7 +2681,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)
@@ -2730,7 +2730,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;
@@ -2955,14 +2955,12 @@ RTE_LOG_REGISTER(ena_logtype_com, pmd.net.ena.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;
@@ -2971,10 +2969,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)
@@ -2997,7 +2996,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..925e71f642 100644
--- a/drivers/net/ena/ena_ethdev.h
+++ b/drivers/net/ena/ena_ethdev.h
@@ -210,9 +210,8 @@ 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;
+ int port_id;
struct ena_com_dev ena_dev __rte_cache_aligned;
--
2.25.1
next prev parent reply other threads:[~2021-05-11 6:48 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 ` Michal Krawczyk [this message]
2021-05-11 12:22 ` [dpdk-dev] [PATCH v4 16/19] net/ena: make ethdev references SMP safe 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 ` [dpdk-dev] [PATCH v5 2/3] net/ena: make ethdev references multiprocess safe Michal Krawczyk
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=20210511064554.10656-17-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).