From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8671441CB1 for ; Thu, 16 Feb 2023 14:00:01 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 02B1740EE3; Thu, 16 Feb 2023 14:00:01 +0100 (CET) Received: from CNSHPPMGWESA01.NOKIA-SBELL.COM (unknown [116.246.26.71]) by mails.dpdk.org (Postfix) with ESMTP id 1AC8440A8B for ; Thu, 16 Feb 2023 13:59:58 +0100 (CET) X-IronPort-AV: E=Sophos;i="5.97,302,1669046400"; d="scan'208,217";a="10909137" Received: from unknown (HELO CNSHPPEXCH1603.nsn-intra.net) ([135.251.51.103]) by CNSHPPMGWESA01.NOKIA-SBELL.COM with ESMTP; 16 Feb 2023 20:59:57 +0800 Received: from CNSHPPEXCH1601.nsn-intra.net (135.251.51.101) by CNSHPPEXCH1603.nsn-intra.net (135.251.51.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.34; Thu, 16 Feb 2023 20:59:57 +0800 Received: from CNSHPPEXCH1601.nsn-intra.net ([135.251.51.101]) by CNSHPPEXCH1601.nsn-intra.net ([135.251.51.101]) with mapi id 15.01.2375.034; Thu, 16 Feb 2023 20:59:57 +0800 From: "Xiaoping Yan (NSB)" To: "users@dpdk.org" Subject: why rte_power_ethdev_pmgmt_queue_enable need to check if other queues are stopped Thread-Topic: why rte_power_ethdev_pmgmt_queue_enable need to check if other queues are stopped Thread-Index: AdlCBFLV8QoElG47QfeDBKVxvG5wig== Date: Thu, 16 Feb 2023 12:59:56 +0000 Message-ID: <0c6664b4318142df94531165fb2acf94@nokia-sbell.com> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [135.251.51.115] Content-Type: multipart/alternative; boundary="_000_0c6664b4318142df94531165fb2acf94nokiasbellcom_" MIME-Version: 1.0 X-BeenThere: users@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK usage discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: users-bounces@dpdk.org --_000_0c6664b4318142df94531165fb2acf94nokiasbellcom_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi experts, I'm trying to use dpdk power pmd management APIs in my dpdk application. My application uses several ports, each have one rx queue, and it goes like= this 1. Init first port, setup rx queue, call rte_power_ethdev_pmgmt_queue_e= nable, and start the first port 2. Init second port, setup rx queue, call rte_power_ethdev_pmgmt_queue_= enable, and start the second port 3. ... Now for the first port & queue, rte_power_ethdev_pmgmt_queue_enable return = success, but for the second port & queue, it returns -16 >From rte_power_ethdev_pmgmt_queue_enable code, I think it fails when checki= ng if other queues are stopped as well. /* check if other queues are stopped as well */ ret =3D cfg_queues_stopped(lcore_cfg); if (ret !=3D 1) { /* error means invalid queue, 0 means queue wasn't stopped */ ret =3D ret < 0 ? -EINVAL : -EBUSY; goto end; } This seems quite strange for me, why other queues have to be in stopped sta= te? Can anyone help to explain? Thank you. Br, Xiaoping --_000_0c6664b4318142df94531165fb2acf94nokiasbellcom_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Hi experts,

 

I’m trying to use dpdk po= wer pmd management APIs in my dpdk application.

My application uses several por= ts, each have one rx queue, and it goes like this

1= .   &= nbsp; Init first port, setup = rx queue, call rte_power_ethdev_pmgmt_queue_enable, and start the first por= t

2= .   &= nbsp; Init second port, setup= rx queue, call rte_power_ethdev_pmgmt_queue_enable, and start the second p= ort

3= .   &= nbsp;

Now for the first port & qu= eue, rte_power_ethdev_pmgmt_queue_enable return success, but for the second= port & queue, it returns -16

From rte_power_ethdev_pmgmt_que= ue_enable code, I think it fails when checking if other queues are stopped = as well.

  &n= bsp; /* check if other queues are stopped as well */

  &n= bsp; ret =3D cf= g_queues_stopped(lcore_cfg);

  &n= bsp; if (ret !=3D 1) {

  &n= bsp;     /* error means invalid queue, 0 means queue wasn't stopp= ed */

  &n= bsp;     ret =3D re= t = < 0<= /span> ? = -EINVAL : -EBUSY;

  &n= bsp;     goto en= d;=

  &n= bsp; }

This seems quite strange for me= , why other queues have to be in stopped state?

Can anyone help to explain?

 

Thank you.

 

 

Br, Xiaoping<= /p>

 

--_000_0c6664b4318142df94531165fb2acf94nokiasbellcom_--