From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id DBFE7A0526; Fri, 24 Jul 2020 22:23:44 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id BD7CC1C038; Fri, 24 Jul 2020 22:23:35 +0200 (CEST) Received: from mail-qk1-f196.google.com (mail-qk1-f196.google.com [209.85.222.196]) by dpdk.org (Postfix) with ESMTP id 5F7621C030 for ; Fri, 24 Jul 2020 22:23:33 +0200 (CEST) Received: by mail-qk1-f196.google.com with SMTP id l6so9837721qkc.6 for ; Fri, 24 Jul 2020 13:23:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=radio-canada-ca.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=aVyAg4dqd0OS+9KW6F8yVjmtF/I7QUySF01v+nol8b8=; b=r8pGnndy1OF2aqXFezvAAaQDsx4poxKTAmMTGxxDxT1c9ZYgT5zZYpyNBajfEPSh6O 8L4xwpzKRBL+SCfeCHad2bhvKJ1Cgq86fE5/5DkGwECdurZQ9yyZeWSJajEwqpI5FLy1 8rpPy+dWqb6JFYHDrhuaYUEAJch2r/SWjAIrkhxLR/9mXGp6qG35Qqi5cBVfe4MjLgMN IGgtU+clx58uSkZXAji8mf3RLwTFmdR6eIkjZqk09C+qJ4JZU55awLNq1oH1FeToG4f8 zxrGn50vsVDiixeTjJi0315sgu7Q4HdyXHeTbNHCPVZj7cGAmhzKwezsKG4yBYoHQFuP /RsA== 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=aVyAg4dqd0OS+9KW6F8yVjmtF/I7QUySF01v+nol8b8=; b=HoFAbECmn4w8BwTXOZRxDbPP3kWMW5rYis/0OXmFWU3eB205aMM2e1SAVJdCC5vN6r nH7jmB4l+XV4NCt3QRBdQG46iryotJpuwg8QBBZbO3pvYmeccSY8U2Gxe+1eX8oK4wfs 4mFfyBw9jd6JSsCHIogif9I01RDKYxEni/tRi3OlmJegOEqLkgoHpHamN3lY7R1Fj3b/ ivO33QiblZy5Qz0AtbJZjeey30hS6HKont5jsIrr5r2ZuKdW5c/EUPP4UqoUWtwqqqYG Q7ywccFtPn7kD9A/OPyiVWh+uvoOLReeh2kbxyTy34osARs5ZDXEUfvwj/DNuJPPq9ZH 0nKQ== X-Gm-Message-State: AOAM533/zm2Yfp8IH4A3Oieab8jK82Myd96sSAKd+vXvCHH3HndAFEJL 5hySWX7CfTodoMbY9YTpdvTlz6r+/TI= X-Google-Smtp-Source: ABdhPJzubse5x4Iyz9ODIF8pqviN9deqOojAZtdyXatT2W4n+hj4dHJ6Fgj6MAYzq7oiQf27Uqxusg== X-Received: by 2002:a05:620a:699:: with SMTP id f25mr11529895qkh.200.1595622212606; Fri, 24 Jul 2020 13:23:32 -0700 (PDT) Received: from localhost.localdomain (modemcable246.10-73-45.static.videotron.ca. [45.73.10.246]) by smtp.gmail.com with ESMTPSA id f7sm5216089qkj.32.2020.07.24.13.23.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Jul 2020 13:23:32 -0700 (PDT) From: Patrick Keroulas To: dev@dpdk.org Cc: Patrick Keroulas Date: Fri, 24 Jul 2020 16:23:12 -0400 Message-Id: <20200724202315.19533-2-patrick.keroulas@radio-canada.ca> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200724202315.19533-1-patrick.keroulas@radio-canada.ca> References: <20200724202315.19533-1-patrick.keroulas@radio-canada.ca> Subject: [dpdk-dev] [[PATCH v3 1/4] net/mlx5: query device frequency 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Get clock frequency (constant) from HCA attributes and add an accessor. Signed-off-by: Patrick Keroulas --- drivers/common/mlx5/mlx5_devx_cmds.c | 2 ++ drivers/common/mlx5/mlx5_devx_cmds.h | 1 + drivers/net/mlx5/linux/mlx5_ethdev_os.c | 22 ++++++++++++++++++++++ drivers/net/mlx5/linux/mlx5_os.c | 1 + drivers/net/mlx5/mlx5.h | 1 + 5 files changed, 27 insertions(+) diff --git a/drivers/common/mlx5/mlx5_devx_cmds.c b/drivers/common/mlx5/mlx5_devx_cmds.c index d1c674c7cf..e6671e3122 100644 --- a/drivers/common/mlx5/mlx5_devx_cmds.c +++ b/drivers/common/mlx5/mlx5_devx_cmds.c @@ -673,6 +673,8 @@ mlx5_devx_cmd_query_hca_attr(void *ctx, MLX5_GET(cmd_hca_cap, hcattr, flow_counter_bulk_alloc); attr->flow_counters_dump = MLX5_GET(cmd_hca_cap, hcattr, flow_counters_dump); + attr->device_frequency_khz = MLX5_GET(cmd_hca_cap, hcattr, + device_frequency_khz); attr->log_max_rqt_size = MLX5_GET(cmd_hca_cap, hcattr, log_max_rqt_size); attr->eswitch_manager = MLX5_GET(cmd_hca_cap, hcattr, eswitch_manager); diff --git a/drivers/common/mlx5/mlx5_devx_cmds.h b/drivers/common/mlx5/mlx5_devx_cmds.h index 528cb7bdd1..cbe450c4b1 100644 --- a/drivers/common/mlx5/mlx5_devx_cmds.h +++ b/drivers/common/mlx5/mlx5_devx_cmds.h @@ -87,6 +87,7 @@ struct mlx5_hca_attr { uint32_t lro_timer_supported_periods[MLX5_LRO_NUM_SUPP_PERIODS]; uint32_t flex_parser_protocols; uint32_t hairpin:1; + uint32_t device_frequency_khz:20; uint32_t log_max_hairpin_queues:5; uint32_t log_max_hairpin_wq_data_sz:5; uint32_t log_max_hairpin_num_packets:5; diff --git a/drivers/net/mlx5/linux/mlx5_ethdev_os.c b/drivers/net/mlx5/linux/mlx5_ethdev_os.c index 3d3dd2e862..628a909c8d 100644 --- a/drivers/net/mlx5/linux/mlx5_ethdev_os.c +++ b/drivers/net/mlx5/linux/mlx5_ethdev_os.c @@ -301,6 +301,28 @@ mlx5_read_clock(struct rte_eth_dev *dev, uint64_t *clock) return 0; } +/** + * Get the clock frequency of ethernet device, in Hz + * + * @param dev + * Pointer to Ethernet device structure. + * @param[out] freq + * Pointer to the device clock frequency. + * + * @return + * 0 if the clock has correctly been read + * The value of errno in case of error + */ +int +mlx5_get_clock_freq(struct rte_eth_dev *dev, uint64_t *freq) +{ + struct mlx5_priv *priv = dev->data->dev_private; + + *freq = priv->config.hca_attr.device_frequency_khz * 1000; + + return 0; +} + /** * Retrieve the master device for representor in the same switch domain. * diff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c index fa3b02787e..234e95dbb1 100644 --- a/drivers/net/mlx5/linux/mlx5_os.c +++ b/drivers/net/mlx5/linux/mlx5_os.c @@ -2342,6 +2342,7 @@ const struct eth_dev_ops mlx5_os_dev_ops = { .fw_version_get = mlx5_fw_version_get, .dev_infos_get = mlx5_dev_infos_get, .read_clock = mlx5_txpp_read_clock, + .get_clock_freq = mlx5_get_clock_freq, .dev_supported_ptypes_get = mlx5_dev_supported_ptypes_get, .vlan_filter_set = mlx5_vlan_filter_set, .rx_queue_setup = mlx5_rx_queue_setup, diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h index a92194d2dd..0ccfb6b8d9 100644 --- a/drivers/net/mlx5/mlx5.h +++ b/drivers/net/mlx5/mlx5.h @@ -820,6 +820,7 @@ int mlx5_get_mac(struct rte_eth_dev *dev, uint8_t (*mac)[RTE_ETHER_ADDR_LEN]); int mlx5_get_mtu(struct rte_eth_dev *dev, uint16_t *mtu); int mlx5_set_mtu(struct rte_eth_dev *dev, uint16_t mtu); int mlx5_read_clock(struct rte_eth_dev *dev, uint64_t *clock); +int mlx5_get_clock_freq(struct rte_eth_dev *dev, uint64_t *freq); int mlx5_link_update(struct rte_eth_dev *dev, int wait_to_complete); int mlx5_dev_get_flow_ctrl(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf); -- 2.17.1