From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com [66.111.4.29]) by dpdk.org (Postfix) with ESMTP id 0B9351B1C8 for ; Fri, 16 Feb 2018 14:01:19 +0100 (CET) Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 5D23820A9E; Fri, 16 Feb 2018 08:01:16 -0500 (EST) Received: from frontend2 ([10.202.2.161]) by compute1.internal (MEProxy); Fri, 16 Feb 2018 08:01:16 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fridaylinux.org; h=cc:content-transfer-encoding:content-type:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=otI3+Eoq0C8Z8PqB0 /Iq2kovB37QHr2HHL6230zlVyU=; b=iqHSfN/7jZc/rk3jNofZimtXu0qrrFrgi KUURg2hegBVswpUrO3rx0MPALJKfmgrJLIqnLK92+t6Usk6l9J9Vem9zfC1A/J1w G9+1j0ihPXpF4vYwgqvD0GxZ6T82YwEXT0ZQzRYadaK8QsflchuY+JTi8QVfCxMi CMR3h9y/ZTfG1dBahisWHN+yajQ9oAsXDVsHdTU084P1lomijb4lLhRfKmnhlVZs MyVR0N08tDxYm/GIS7h6PSPEoQKk0V9ar4YGAoA0QGTo9XUiux7x3ZujPyL19nix ZehVPwEu383QK1cvjxUS8pC8i4trLsCNbNb5eHlwN3glbSQ1aJ1tA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=otI3+E oq0C8Z8PqB0/Iq2kovB37QHr2HHL6230zlVyU=; b=e9U02jm36W2KxIrxv1snRO spF2+7vn7sB5ZS1y7QzEW8e6QfOEjqQPpNrSe6gfBWIklVSFMitozzcP+bqo874J Ce/6BO29HsimoPkXASnFc6C0o3Jx01/83A2V+yG+f+BIXUqdmGgYips4gwK9KW4i 47OEYSNx3L3UBEhPKvz4Mqoam+buw6T1zCkMD13PhsyBOkFDi3YeOYWZ9F3UZFpT 3OCNF6kzAC+XrbCngS29iJ2toKPj3p39ry/o8MfFEE2HrGYArCOl5/a2dbfUf3vI XwH08QFTar51R9iYNnFPUSzYCacGtNszNPuiVrsj9cHKUWXg+1/2t9PyK4sgKwqg == X-ME-Sender: Received: from yliu-mob (unknown [182.84.161.1]) by mail.messagingengine.com (Postfix) with ESMTPA id E8A8E240DB; Fri, 16 Feb 2018 08:01:14 -0500 (EST) Date: Fri, 16 Feb 2018 21:01:09 +0800 From: Yuanhan Liu To: Nelio Laranjeiro Cc: stable@dpdk.org, Adrien Mazarguil , Yongseok Koh Message-ID: <20180216130109.GC2152@yliu-mob> References: <20180207093155.GA31542@yliu-mob> <9e4118bfe3df2a78d9cf6d5ca74efe4ece730799.1518598604.git.nelio.laranjeiro@6wind.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <9e4118bfe3df2a78d9cf6d5ca74efe4ece730799.1518598604.git.nelio.laranjeiro@6wind.com> User-Agent: Mutt/1.5.24 (2015-08-30) Subject: Re: [dpdk-stable] [PATCH 1/3] net/mlx5: fix secondary process verification X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Feb 2018 13:01:20 -0000 On Wed, Feb 14, 2018 at 09:58:29AM +0100, Nelio Laranjeiro wrote: > From: Nélio Laranjeiro > > [ backported from upstream commit 51e7fa8d20876cb221b11013cd23b1881cc9b75c ] All 3 patches are applied to dpdk-stable/17.11. Thanks! --yliu > > Since the secondary process has its own devops, function which cannot be > called by the secondary don't need anymore to verify which process is > calling it. > > Fixes: 87ec44ce1651 ("net/mlx5: add operations for secondary process") > Cc: stable@dpdk.org > > Signed-off-by: Nelio Laranjeiro > Acked-by: Yongseok Koh > --- > drivers/net/mlx5/mlx5.c | 4 +--- > drivers/net/mlx5/mlx5_ethdev.c | 25 ------------------------- > drivers/net/mlx5/mlx5_mac.c | 6 ------ > drivers/net/mlx5/mlx5_rss.c | 1 - > drivers/net/mlx5/mlx5_rxmode.c | 8 -------- > drivers/net/mlx5/mlx5_rxq.c | 6 ------ > drivers/net/mlx5/mlx5_trigger.c | 6 ------ > drivers/net/mlx5/mlx5_txq.c | 6 ------ > 8 files changed, 1 insertion(+), 61 deletions(-) > > diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c > index 47ac8af48..45e0e8dba 100644 > --- a/drivers/net/mlx5/mlx5.c > +++ b/drivers/net/mlx5/mlx5.c > @@ -158,7 +158,6 @@ mlx5_alloc_verbs_buf(size_t size, void *data) > size_t alignment = sysconf(_SC_PAGESIZE); > > assert(data != NULL); > - assert(!mlx5_is_secondary()); > ret = rte_malloc_socket(__func__, size, alignment, > priv->dev->device->numa_node); > DEBUG("Extern alloc size: %lu, align: %lu: %p", size, alignment, ret); > @@ -177,7 +176,6 @@ static void > mlx5_free_verbs_buf(void *ptr, void *data __rte_unused) > { > assert(data != NULL); > - assert(!mlx5_is_secondary()); > DEBUG("Extern free request: %p", ptr); > rte_free(ptr); > } > @@ -692,7 +690,7 @@ mlx5_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev) > > mlx5_dev[idx].ports |= test; > > - if (mlx5_is_secondary()) { > + if (rte_eal_process_type() == RTE_PROC_SECONDARY) { > eth_dev = rte_eth_dev_attach_secondary(name); > if (eth_dev == NULL) { > ERROR("can not attach rte ethdev"); > diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c > index fc0860fbc..ffe1cdd64 100644 > --- a/drivers/net/mlx5/mlx5_ethdev.c > +++ b/drivers/net/mlx5/mlx5_ethdev.c > @@ -134,18 +134,6 @@ mlx5_get_priv(struct rte_eth_dev *dev) > } > > /** > - * Check if running as a secondary process. > - * > - * @return > - * Nonzero if running as a secondary process. > - */ > -inline int > -mlx5_is_secondary(void) > -{ > - return rte_eal_process_type() == RTE_PROC_SECONDARY; > -} > - > -/** > * Get interface name from private structure. > * > * @param[in] priv > @@ -649,9 +637,6 @@ mlx5_dev_configure(struct rte_eth_dev *dev) > struct priv *priv = dev->data->dev_private; > int ret; > > - if (mlx5_is_secondary()) > - return -E_RTE_SECONDARY; > - > priv_lock(priv); > ret = dev_configure(dev); > assert(ret >= 0); > @@ -1059,9 +1044,6 @@ mlx5_dev_set_mtu(struct rte_eth_dev *dev, uint16_t mtu) > uint16_t kern_mtu; > int ret = 0; > > - if (mlx5_is_secondary()) > - return -E_RTE_SECONDARY; > - > priv_lock(priv); > ret = priv_get_mtu(priv, &kern_mtu); > if (ret) > @@ -1109,9 +1091,6 @@ mlx5_dev_get_flow_ctrl(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf) > }; > int ret; > > - if (mlx5_is_secondary()) > - return -E_RTE_SECONDARY; > - > ifr.ifr_data = (void *)ðpause; > priv_lock(priv); > if (priv_ifreq(priv, SIOCETHTOOL, &ifr)) { > @@ -1160,9 +1139,6 @@ mlx5_dev_set_flow_ctrl(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf) > }; > int ret; > > - if (mlx5_is_secondary()) > - return -E_RTE_SECONDARY; > - > ifr.ifr_data = (void *)ðpause; > ethpause.autoneg = fc_conf->autoneg; > if (((fc_conf->mode & RTE_FC_FULL) == RTE_FC_FULL) || > @@ -1429,7 +1405,6 @@ priv_dev_interrupt_handler_install(struct priv *priv, struct rte_eth_dev *dev) > { > int rc, flags; > > - assert(!mlx5_is_secondary()); > assert(priv->ctx->async_fd > 0); > flags = fcntl(priv->ctx->async_fd, F_GETFL); > rc = fcntl(priv->ctx->async_fd, F_SETFL, flags | O_NONBLOCK); > diff --git a/drivers/net/mlx5/mlx5_mac.c b/drivers/net/mlx5/mlx5_mac.c > index d17b991e4..9fb5ba5e7 100644 > --- a/drivers/net/mlx5/mlx5_mac.c > +++ b/drivers/net/mlx5/mlx5_mac.c > @@ -93,8 +93,6 @@ priv_get_mac(struct priv *priv, uint8_t (*mac)[ETHER_ADDR_LEN]) > void > mlx5_mac_addr_remove(struct rte_eth_dev *dev, uint32_t index) > { > - if (mlx5_is_secondary()) > - return; > assert(index < MLX5_MAX_MAC_ADDRESSES); > memset(&dev->data->mac_addrs[index], 0, sizeof(struct ether_addr)); > if (!dev->data->promiscuous && !dev->data->all_multicast) > @@ -124,8 +122,6 @@ mlx5_mac_addr_add(struct rte_eth_dev *dev, struct ether_addr *mac, > int ret = 0; > > (void)vmdq; > - if (mlx5_is_secondary()) > - return 0; > assert(index < MLX5_MAX_MAC_ADDRESSES); > /* First, make sure this address isn't already configured. */ > for (i = 0; (i != MLX5_MAX_MAC_ADDRESSES); ++i) { > @@ -154,8 +150,6 @@ mlx5_mac_addr_add(struct rte_eth_dev *dev, struct ether_addr *mac, > void > mlx5_mac_addr_set(struct rte_eth_dev *dev, struct ether_addr *mac_addr) > { > - if (mlx5_is_secondary()) > - return; > DEBUG("%p: setting primary MAC address", (void *)dev); > mlx5_mac_addr_add(dev, mac_addr, 0, 0); > } > diff --git a/drivers/net/mlx5/mlx5_rss.c b/drivers/net/mlx5/mlx5_rss.c > index 7c0cf4de8..f47bda667 100644 > --- a/drivers/net/mlx5/mlx5_rss.c > +++ b/drivers/net/mlx5/mlx5_rss.c > @@ -279,7 +279,6 @@ mlx5_dev_rss_reta_update(struct rte_eth_dev *dev, > int ret; > struct priv *priv = dev->data->dev_private; > > - assert(!mlx5_is_secondary()); > priv_lock(priv); > ret = priv_dev_rss_reta_update(priv, reta_conf, reta_size); > priv_unlock(priv); > diff --git a/drivers/net/mlx5/mlx5_rxmode.c b/drivers/net/mlx5/mlx5_rxmode.c > index 0ef2cdf09..6fb245ba1 100644 > --- a/drivers/net/mlx5/mlx5_rxmode.c > +++ b/drivers/net/mlx5/mlx5_rxmode.c > @@ -60,8 +60,6 @@ > void > mlx5_promiscuous_enable(struct rte_eth_dev *dev) > { > - if (mlx5_is_secondary()) > - return; > dev->data->promiscuous = 1; > mlx5_traffic_restart(dev); > } > @@ -75,8 +73,6 @@ mlx5_promiscuous_enable(struct rte_eth_dev *dev) > void > mlx5_promiscuous_disable(struct rte_eth_dev *dev) > { > - if (mlx5_is_secondary()) > - return; > dev->data->promiscuous = 0; > mlx5_traffic_restart(dev); > } > @@ -90,8 +86,6 @@ mlx5_promiscuous_disable(struct rte_eth_dev *dev) > void > mlx5_allmulticast_enable(struct rte_eth_dev *dev) > { > - if (mlx5_is_secondary()) > - return; > dev->data->all_multicast = 1; > mlx5_traffic_restart(dev); > } > @@ -105,8 +99,6 @@ mlx5_allmulticast_enable(struct rte_eth_dev *dev) > void > mlx5_allmulticast_disable(struct rte_eth_dev *dev) > { > - if (mlx5_is_secondary()) > - return; > dev->data->all_multicast = 0; > mlx5_traffic_restart(dev); > } > diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c > index 85399eff5..20f3ec6c9 100644 > --- a/drivers/net/mlx5/mlx5_rxq.c > +++ b/drivers/net/mlx5/mlx5_rxq.c > @@ -242,8 +242,6 @@ mlx5_rx_queue_setup(struct rte_eth_dev *dev, uint16_t idx, uint16_t desc, > int ret = 0; > > (void)conf; > - if (mlx5_is_secondary()) > - return -E_RTE_SECONDARY; > priv_lock(priv); > if (!rte_is_power_of_2(desc)) { > desc = 1 << log2above(desc); > @@ -294,9 +292,6 @@ mlx5_rx_queue_release(void *dpdk_rxq) > struct mlx5_rxq_ctrl *rxq_ctrl; > struct priv *priv; > > - if (mlx5_is_secondary()) > - return; > - > if (rxq == NULL) > return; > rxq_ctrl = container_of(rxq, struct mlx5_rxq_ctrl, rxq); > @@ -327,7 +322,6 @@ priv_rx_intr_vec_enable(struct priv *priv) > unsigned int count = 0; > struct rte_intr_handle *intr_handle = priv->dev->intr_handle; > > - assert(!mlx5_is_secondary()); > if (!priv->dev->data->dev_conf.intr_conf.rxq) > return 0; > priv_rx_intr_vec_disable(priv); > diff --git a/drivers/net/mlx5/mlx5_trigger.c b/drivers/net/mlx5/mlx5_trigger.c > index bbb7b531b..d682ea2c9 100644 > --- a/drivers/net/mlx5/mlx5_trigger.c > +++ b/drivers/net/mlx5/mlx5_trigger.c > @@ -135,9 +135,6 @@ mlx5_dev_start(struct rte_eth_dev *dev) > struct mlx5_mr *mr = NULL; > int err; > > - if (mlx5_is_secondary()) > - return -E_RTE_SECONDARY; > - > dev->data->dev_started = 1; > priv_lock(priv); > err = priv_flow_create_drop_queue(priv); > @@ -207,9 +204,6 @@ mlx5_dev_stop(struct rte_eth_dev *dev) > struct priv *priv = dev->data->dev_private; > struct mlx5_mr *mr; > > - if (mlx5_is_secondary()) > - return; > - > priv_lock(priv); > dev->data->dev_started = 0; > /* Prevent crashes when queues are still in use. */ > diff --git a/drivers/net/mlx5/mlx5_txq.c b/drivers/net/mlx5/mlx5_txq.c > index 31110a732..7ca99f5aa 100644 > --- a/drivers/net/mlx5/mlx5_txq.c > +++ b/drivers/net/mlx5/mlx5_txq.c > @@ -142,9 +142,6 @@ mlx5_tx_queue_setup(struct rte_eth_dev *dev, uint16_t idx, uint16_t desc, > container_of(txq, struct mlx5_txq_ctrl, txq); > int ret = 0; > > - if (mlx5_is_secondary()) > - return -E_RTE_SECONDARY; > - > priv_lock(priv); > if (desc <= MLX5_TX_COMP_THRESH) { > WARN("%p: number of descriptors requested for TX queue %u" > @@ -203,9 +200,6 @@ mlx5_tx_queue_release(void *dpdk_txq) > struct priv *priv; > unsigned int i; > > - if (mlx5_is_secondary()) > - return; > - > if (txq == NULL) > return; > txq_ctrl = container_of(txq, struct mlx5_txq_ctrl, txq); > -- > 2.11.0