From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-f67.google.com (mail-wr1-f67.google.com [209.85.221.67]) by dpdk.org (Postfix) with ESMTP id D56C81B484 for ; Wed, 11 Jul 2018 09:23:20 +0200 (CEST) Received: by mail-wr1-f67.google.com with SMTP id c13-v6so16974327wrt.1 for ; Wed, 11 Jul 2018 00:23:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=qjBo8v3AxKvoiPxec9Q3pQKBaqGYlE1KG6Z5NSIWHgI=; b=RJrvCjcmK6rz5w/Zp9w3O8OrkYS2FAr5GQUPmUclsndNy/jbOnwO11phfyaIryIdt1 Pm6hQtNwYm/PTfEkZ0OU0AxN3Q3gycDiMT0kIloWVZmRXqq/W+nU0dukrdt8xOYI9mCv U9nDEzB0Q7aazCN2iDKlg7DWHFamRc1D+5rss0oH8VmkylPwZK8avK+mkZsaNgX+C0TQ /uKSqbKwHhSIiM/i+KkyYzy1zx7PyBPxs0HKk4SRkAzGclObnBterhagWudkBBNED8yd cRzcemS3iZ5Pfs1XCNWlIT18v+ybLBj/sPsuFzaNJoBnLgY6pIM24CDTnFDFt7StV99O GKHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=qjBo8v3AxKvoiPxec9Q3pQKBaqGYlE1KG6Z5NSIWHgI=; b=KvMy7CK3+i4FtZqJqdDLyP6qU1GLZZeUBJuZx8xeNGutnaKNZAWKJ6Ad0fnbXkL910 F6b+q4QYm2xdU9d0SNGBd3AdJCy4nnO9JNxTlMn53GHOO/Irs63sCPi436gMGT5/563j 5t8OChZ+M5+GM0Wxdb7jv+/msnqLaE5C8CLmi5XUYE1kVH2LKxH6gApvMQ5pH8fDHu7Y oaGRME78umLZyj7C+Ge4z3MIAbD+k/eGIomXN6ct6uNtquiRmxSTgVZJpYYvFCxeYQa2 nlQsfUA0JM5zECqSNnHxAwfg4HXWUX3vqUJGswhz/OV3vxbaudGk4n9j2KgrWeUu/eX0 ipCw== X-Gm-Message-State: APt69E0dzZEm8x9FH5hyslLG7eLvABWtgXrIgdvq3kMjVovCvsu7skrn ZASKlVgywuz/TRBKDnNE4UKWOLyfKA== X-Google-Smtp-Source: AAOMgpdfWmX2q7iahavop6rbdCKNHS/5HVCSlOAsZhfpIkkaE198ImLKFZzNmC68kdvxdN4Dozs2Iw== X-Received: by 2002:a5d:4e49:: with SMTP id r9-v6mr18529439wrt.27.1531293800446; Wed, 11 Jul 2018 00:23:20 -0700 (PDT) Received: from laranjeiro-vm.dev.6wind.com (host.78.145.23.62.rev.coltfrance.com. [62.23.145.78]) by smtp.gmail.com with ESMTPSA id t10-v6sm31314212wre.95.2018.07.11.00.23.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 11 Jul 2018 00:23:18 -0700 (PDT) From: Nelio Laranjeiro To: dev@dpdk.org, Yongseok Koh Cc: Adrien Mazarguil Date: Wed, 11 Jul 2018 09:22:36 +0200 Message-Id: <03092689aa33878a03193348a69bfbf0aeb091dd.1531293415.git.nelio.laranjeiro@6wind.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: References: Subject: [dpdk-dev] [PATCH v3 03/21] net/mlx5: replace verbs priorities by flow X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 Jul 2018 07:23:21 -0000 Previous work introduce verbs priorities, whereas the PMD is making translation between Flow priority into Verbs. Rename this to make more sense on what the PMD has to translate. Signed-off-by: Nelio Laranjeiro Acked-by: Yongseok Koh --- drivers/net/mlx5/mlx5.c | 15 ++++----------- drivers/net/mlx5/mlx5.h | 4 ++-- drivers/net/mlx5/mlx5_flow.c | 24 ++++++++++++------------ 3 files changed, 18 insertions(+), 25 deletions(-) diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index e9780ac8f..74248f098 100644 --- a/drivers/net/mlx5/mlx5.c +++ b/drivers/net/mlx5/mlx5.c @@ -717,7 +717,6 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev, unsigned int tunnel_en = 0; unsigned int mpls_en = 0; unsigned int swp = 0; - unsigned int verb_priorities = 0; unsigned int mprq = 0; unsigned int mprq_min_stride_size_n = 0; unsigned int mprq_max_stride_size_n = 0; @@ -1139,16 +1138,10 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev, /* Store device configuration on private structure. */ priv->config = config; /* Supported Verbs flow priority number detection. */ - if (verb_priorities == 0) { - err = mlx5_verbs_max_prio(eth_dev); - if (err < 0) { - DRV_LOG(ERR, "port %u wrong Verbs flow priorities", - eth_dev->data->port_id); - goto error; - } - verb_priorities = err; - } - priv->config.max_verbs_prio = verb_priorities; + err = mlx5_flow_discover_priorities(eth_dev); + if (err < 0) + goto error; + priv->config.flow_prio = err; /* * Once the device is added to the list of memory event * callback, its global MR cache table cannot be expanded diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h index 227429848..9949cd3fa 100644 --- a/drivers/net/mlx5/mlx5.h +++ b/drivers/net/mlx5/mlx5.h @@ -122,7 +122,7 @@ struct mlx5_dev_config { unsigned int min_rxqs_num; /* Rx queue count threshold to enable MPRQ. */ } mprq; /* Configurations for Multi-Packet RQ. */ - unsigned int max_verbs_prio; /* Number of Verb flow priorities. */ + unsigned int flow_prio; /* Number of flow priorities. */ unsigned int tso_max_payload_sz; /* Maximum TCP payload for TSO. */ unsigned int ind_table_max_size; /* Maximum indirection table size. */ int txq_inline; /* Maximum packet size for inlining. */ @@ -317,7 +317,7 @@ int mlx5_traffic_restart(struct rte_eth_dev *dev); /* mlx5_flow.c */ -int mlx5_verbs_max_prio(struct rte_eth_dev *dev); +int mlx5_flow_discover_priorities(struct rte_eth_dev *dev); void mlx5_flow_print(struct rte_flow *flow); int mlx5_flow_validate(struct rte_eth_dev *dev, const struct rte_flow_attr *attr, diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c index 5e325be37..8fdc6d7bb 100644 --- a/drivers/net/mlx5/mlx5_flow.c +++ b/drivers/net/mlx5/mlx5_flow.c @@ -76,17 +76,17 @@ struct ibv_spec_header { }; /** - * Get the maximum number of priority available. + * Discover the maximum number of priority available. * * @param[in] dev * Pointer to Ethernet device. * * @return - * number of supported Verbs flow priority on success, a negative errno - * value otherwise and rte_errno is set. + * number of supported flow priority on success, a negative errno value + * otherwise and rte_errno is set. */ int -mlx5_verbs_max_prio(struct rte_eth_dev *dev) +mlx5_flow_discover_priorities(struct rte_eth_dev *dev) { struct { struct ibv_flow_attr attr; @@ -106,25 +106,25 @@ mlx5_verbs_max_prio(struct rte_eth_dev *dev) }, }; struct ibv_flow *flow; - uint32_t verb_priorities; struct mlx5_hrxq *drop = mlx5_hrxq_drop_new(dev); + uint16_t vprio[] = { 8, 16 }; + int i; if (!drop) { rte_errno = ENOTSUP; return -rte_errno; } - for (verb_priorities = 0; 1; verb_priorities++) { - flow_attr.attr.priority = verb_priorities; - flow = mlx5_glue->create_flow(drop->qp, - &flow_attr.attr); + for (i = 0; i != RTE_DIM(vprio); i++) { + flow_attr.attr.priority = vprio[i] - 1; + flow = mlx5_glue->create_flow(drop->qp, &flow_attr.attr); if (!flow) break; claim_zero(mlx5_glue->destroy_flow(flow)); } mlx5_hrxq_drop_release(dev); DRV_LOG(INFO, "port %u flow maximum priority: %d", - dev->data->port_id, verb_priorities); - return verb_priorities; + dev->data->port_id, vprio[i - 1]); + return vprio[i - 1]; } /** @@ -318,7 +318,7 @@ mlx5_ctrl_flow_vlan(struct rte_eth_dev *dev, struct priv *priv = dev->data->dev_private; const struct rte_flow_attr attr = { .ingress = 1, - .priority = priv->config.max_verbs_prio - 1, + .priority = priv->config.flow_prio - 1, }; struct rte_flow_item items[] = { { -- 2.18.0