From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 70503C07E99 for ; Mon, 12 Jul 2021 08:35:39 +0000 (UTC) Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by mail.kernel.org (Postfix) with ESMTP id 0C25C610D0 for ; Mon, 12 Jul 2021 08:35:38 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 0C25C610D0 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=dev-bounces@dpdk.org Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2240F4069E; Mon, 12 Jul 2021 10:35:38 +0200 (CEST) Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) by mails.dpdk.org (Postfix) with ESMTP id D226940685 for ; Mon, 12 Jul 2021 10:35:36 +0200 (CEST) Received: by mail-pl1-f173.google.com with SMTP id p4so4536339plo.11 for ; Mon, 12 Jul 2021 01:35:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=kIdfWDW03uRP+1uHbZGNVTNL2mOfsxyxJKE5igUfAys=; b=ILnIkXoSh2yFaB29oYdo7xBOfLIHGi+Mg3Zh3VSgeNTcC0hpTJp7UIi/w6NANqWMX7 2riE3Plcl/LU4qUemPMrMkiGu51vvB1UBt3/XgIDkgdUQ1sN3d1Lpn4XTIHk3cwn6W7R aWv8qYxedcyVTrk5ybfj0O3aUwBU4+LHzJd98Rux3m4v9O45XeMTRZMvtW4DKvd1sgOy jYu7KGoet2/yY/yJaTQ9lyE9AKbTZMRuMoleucvfg2FVbxyKRAMpyvXxUWsfheNh5fmR ADUm06ol1kUmjKDoJ8vbaGZ6Mr+LJWeMKERO4yXKw/qNdo/1+ZMzGrQmlhs3wve+jeh0 IlCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=kIdfWDW03uRP+1uHbZGNVTNL2mOfsxyxJKE5igUfAys=; b=WUwihm0P6kjjtHo6lQuDSypnv2nIUuoXi5NwyWkh0PMZ2uBT+M/EXkejdpMmcMpEhO crDe+pUKtEYuVlq+gnxCkSQSPgjCuVjYFbQI1qNjiwci8so9vVno47vAanq4k9WbcTFQ npYRT1b/esmaRxJ9fgly6zVr6zxCFrDyvo9z3NXvlb9z6LGZcjzpOD6AWe0qS4v21Z0k CFqWi7rFBMesCbfrnrc7uSGYfJHYNV08IDfkvwCDgLwot8USbJ2UzpqBnSy5rVboa+Ck cs2eTxDoSdPKRTJoj3mcxPHK7QWt7Zx6ku6ONAbpFDo5Goby35u82cFxXhUEZ6ItstTv uGTw== X-Gm-Message-State: AOAM533mBzE0qsVZ4QhhHOz4bMFeRJGBQ+a8SR8UZchjfwUoG4oqcYhv xJrFIL+XzaKn4y1pUWVXjozkKEnk9yU+MC8Uvgs= X-Google-Smtp-Source: ABdhPJzxCFzxX5D8ngyV91RFwRsKZgOEg76v/1X6/8aIWsv69v50jrRgfnzbYX3C0Erpo+S2GYo/XS4eu+U8GqiXxCg= X-Received: by 2002:a17:902:7488:b029:129:c9cd:67ec with SMTP id h8-20020a1709027488b0290129c9cd67ecmr22737531pll.58.1626078935937; Mon, 12 Jul 2021 01:35:35 -0700 (PDT) MIME-Version: 1.0 References: <20210711131249.11940-1-danat@marvell.com> In-Reply-To: <20210711131249.11940-1-danat@marvell.com> From: Jerin Jacob Date: Mon, 12 Jul 2021 14:05:10 +0530 Message-ID: To: Dana Vardi Cc: Jerin Jacob , dpdk-dev , Liron Himi , Tomasz Duszynski Content-Type: text/plain; charset="UTF-8" Subject: Re: [dpdk-dev] [PATCH] net/mvpp2: config and commit tm after port configured X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Sun, Jul 11, 2021 at 6:42 PM wrote: > > From: Dana Vardi > > Need to set configure flag to allow create and commit mrvl tm > hierarchy tree. tm configuration depends on parameters that are > being set in port configure stage, e.g. nb_tx_queues. > This also aligned with the tm api description. > > Fixes: 429c394417 ("net/mvpp2: support traffic manager") > Cc: tdu@semihalf.com > > Signed-off-by: Dana Vardi > Reviewed-by: Liron Himi Change the subject to net/mvpp2: fix configured state dependency Applied to dpdk-next-net-mrvl/for-next-net. Thanks > --- > drivers/net/mvpp2/mrvl_ethdev.c | 10 ++++- > drivers/net/mvpp2/mrvl_ethdev.h | 2 + > drivers/net/mvpp2/mrvl_tm.c | 65 +++++++++++++++++++++++++++++++++ > 3 files changed, 75 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/mvpp2/mrvl_ethdev.c b/drivers/net/mvpp2/mrvl_ethdev.c > index 63d348e279..1802695a0e 100644 > --- a/drivers/net/mvpp2/mrvl_ethdev.c > +++ b/drivers/net/mvpp2/mrvl_ethdev.c > @@ -533,12 +533,18 @@ mrvl_dev_configure(struct rte_eth_dev *dev) > dev->data->dev_conf.rxmode.mq_mode == ETH_MQ_RX_RSS) { > MRVL_LOG(WARNING, "Disabling hash for 1 rx queue"); > priv->ppio_params.inqs_params.hash_type = PP2_PPIO_HASH_T_NONE; > - > + priv->configured = 1; > return 0; > } > > - return mrvl_configure_rss(priv, > + ret = mrvl_configure_rss(priv, > &dev->data->dev_conf.rx_adv_conf.rss_conf); > + if (ret < 0) > + return ret; > + > + priv->configured = 1; > + > + return 0; > } > > /** > diff --git a/drivers/net/mvpp2/mrvl_ethdev.h b/drivers/net/mvpp2/mrvl_ethdev.h > index fda239a53c..426cf33548 100644 > --- a/drivers/net/mvpp2/mrvl_ethdev.h > +++ b/drivers/net/mvpp2/mrvl_ethdev.h > @@ -186,6 +186,8 @@ struct mrvl_priv { > > uint8_t forward_bad_frames; > uint32_t fill_bpool_buffs; > + > + uint8_t configured; /** indicates if device has been configured */ > }; > > /** Flow operations forward declaration. */ > diff --git a/drivers/net/mvpp2/mrvl_tm.c b/drivers/net/mvpp2/mrvl_tm.c > index 4d75f8e915..efab7852e5 100644 > --- a/drivers/net/mvpp2/mrvl_tm.c > +++ b/drivers/net/mvpp2/mrvl_tm.c > @@ -146,6 +146,11 @@ mrvl_node_type_get(struct rte_eth_dev *dev, uint32_t node_id, int *is_leaf, > struct mrvl_priv *priv = dev->data->dev_private; > struct mrvl_tm_node *node; > > + if (!priv->configured) > + return -rte_tm_error_set(error, ENODEV, > + RTE_TM_ERROR_TYPE_UNSPECIFIED, > + NULL, "Port didn't configured\n"); > + > if (!is_leaf) > return -rte_tm_error_set(error, EINVAL, > RTE_TM_ERROR_TYPE_UNSPECIFIED, > @@ -177,6 +182,11 @@ mrvl_capabilities_get(struct rte_eth_dev *dev, > { > struct mrvl_priv *priv = dev->data->dev_private; > > + if (!priv->configured) > + return -rte_tm_error_set(error, ENODEV, > + RTE_TM_ERROR_TYPE_UNSPECIFIED, > + NULL, "Port didn't configured\n"); > + > if (!cap) > return -rte_tm_error_set(error, EINVAL, > RTE_TM_ERROR_TYPE_UNSPECIFIED, > @@ -228,6 +238,11 @@ mrvl_level_capabilities_get(struct rte_eth_dev *dev, > { > struct mrvl_priv *priv = dev->data->dev_private; > > + if (!priv->configured) > + return -rte_tm_error_set(error, ENODEV, > + RTE_TM_ERROR_TYPE_UNSPECIFIED, > + NULL, "Port didn't configured\n"); > + > if (!cap) > return -rte_tm_error_set(error, EINVAL, > RTE_TM_ERROR_TYPE_UNSPECIFIED, > @@ -294,6 +309,11 @@ mrvl_node_capabilities_get(struct rte_eth_dev *dev, uint32_t node_id, > struct mrvl_priv *priv = dev->data->dev_private; > struct mrvl_tm_node *node; > > + if (!priv->configured) > + return -rte_tm_error_set(error, ENODEV, > + RTE_TM_ERROR_TYPE_UNSPECIFIED, > + NULL, "Port didn't configured\n"); > + > if (!cap) > return -rte_tm_error_set(error, EINVAL, > RTE_TM_ERROR_TYPE_UNSPECIFIED, > @@ -366,6 +386,11 @@ mrvl_shaper_profile_add(struct rte_eth_dev *dev, uint32_t shaper_profile_id, > struct mrvl_priv *priv = dev->data->dev_private; > struct mrvl_tm_shaper_profile *profile; > > + if (!priv->configured) > + return -rte_tm_error_set(error, ENODEV, > + RTE_TM_ERROR_TYPE_UNSPECIFIED, > + NULL, "Port didn't configured\n"); > + > if (!params) > return -rte_tm_error_set(error, EINVAL, > RTE_TM_ERROR_TYPE_UNSPECIFIED, > @@ -434,6 +459,11 @@ mrvl_shaper_profile_delete(struct rte_eth_dev *dev, uint32_t shaper_profile_id, > struct mrvl_priv *priv = dev->data->dev_private; > struct mrvl_tm_shaper_profile *profile; > > + if (!priv->configured) > + return -rte_tm_error_set(error, ENODEV, > + RTE_TM_ERROR_TYPE_UNSPECIFIED, > + NULL, "Port didn't configured\n"); > + > profile = mrvl_shaper_profile_from_id(priv, shaper_profile_id); > if (!profile) > return -rte_tm_error_set(error, ENODEV, > @@ -580,6 +610,11 @@ mrvl_node_add(struct rte_eth_dev *dev, uint32_t node_id, > struct mrvl_tm_node *node, *parent = NULL; > int ret; > > + if (!priv->configured) > + return -rte_tm_error_set(error, ENODEV, > + RTE_TM_ERROR_TYPE_UNSPECIFIED, > + NULL, "Port didn't configured\n"); > + > if (priv->ppio) > return -rte_tm_error_set(error, EPERM, > RTE_TM_ERROR_TYPE_UNSPECIFIED, > @@ -665,6 +700,11 @@ mrvl_node_delete(struct rte_eth_dev *dev, uint32_t node_id, > struct mrvl_priv *priv = dev->data->dev_private; > struct mrvl_tm_node *node; > > + if (!priv->configured) > + return -rte_tm_error_set(error, ENODEV, > + RTE_TM_ERROR_TYPE_UNSPECIFIED, > + NULL, "Port didn't configured\n"); > + > if (priv->ppio) { > return -rte_tm_error_set(error, EPERM, > RTE_TM_ERROR_TYPE_UNSPECIFIED, > @@ -729,6 +769,11 @@ mrvl_node_suspend(struct rte_eth_dev *dev, uint32_t node_id, > struct mrvl_tm_node *node, *tmp; > int ret; > > + if (!priv->configured) > + return -rte_tm_error_set(error, ENODEV, > + RTE_TM_ERROR_TYPE_UNSPECIFIED, > + NULL, "Port didn't configured\n"); > + > node = mrvl_node_from_id(priv, node_id); > if (!node) > return -rte_tm_error_set(error, ENODEV, > @@ -770,6 +815,11 @@ mrvl_node_resume(struct rte_eth_dev *dev, uint32_t node_id, > struct mrvl_tm_node *node; > int ret; > > + if (!priv->configured) > + return -rte_tm_error_set(error, ENODEV, > + RTE_TM_ERROR_TYPE_UNSPECIFIED, > + NULL, "Port didn't configured\n"); > + > node = mrvl_node_from_id(priv, node_id); > if (!node) > return -rte_tm_error_set(error, ENODEV, > @@ -806,6 +856,11 @@ mrvl_hierarchy_commit(struct rte_eth_dev *dev, int clear_on_fail, > struct mrvl_tm_node *node; > int ret; > > + if (!priv->configured) > + return -rte_tm_error_set(error, ENODEV, > + RTE_TM_ERROR_TYPE_UNSPECIFIED, > + NULL, "Port didn't configured\n"); > + > if (priv->ppio) { > ret = -rte_tm_error_set(error, EPERM, > RTE_TM_ERROR_TYPE_UNSPECIFIED, > @@ -912,6 +967,11 @@ mrvl_node_stats_read(struct rte_eth_dev *dev, uint32_t node_id, > struct mrvl_tm_node *node; > int ret; > > + if (!priv->configured) > + return -rte_tm_error_set(error, ENODEV, > + RTE_TM_ERROR_TYPE_UNSPECIFIED, > + NULL, "Port didn't configured\n"); > + > if (!priv->ppio) { > return -rte_tm_error_set(error, EPERM, > RTE_TM_ERROR_TYPE_UNSPECIFIED, > @@ -981,6 +1041,11 @@ mrvl_node_stats_update(struct rte_eth_dev *dev, uint32_t node_id, > struct mrvl_priv *priv = dev->data->dev_private; > struct mrvl_tm_node *node; > > + if (!priv->configured) > + return -rte_tm_error_set(error, ENODEV, > + RTE_TM_ERROR_TYPE_UNSPECIFIED, > + NULL, "Port didn't configured\n"); > + > node = mrvl_node_from_id(priv, node_id); > if (!node) > return -rte_tm_error_set(error, ENODEV, > -- > 2.17.1 >