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 BCACF4326E; Thu, 2 Nov 2023 13:34:12 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8C3CA40282; Thu, 2 Nov 2023 13:34:12 +0100 (CET) Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by mails.dpdk.org (Postfix) with ESMTP id 7A3CF40262 for ; Thu, 2 Nov 2023 13:34:10 +0100 (CET) Received: from kwepemi500020.china.huawei.com (unknown [172.30.72.55]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4SLjws6HyyzvQVC; Thu, 2 Nov 2023 20:34:05 +0800 (CST) Received: from [10.67.121.175] (10.67.121.175) by kwepemi500020.china.huawei.com (7.221.188.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.31; Thu, 2 Nov 2023 20:34:07 +0800 Message-ID: Date: Thu, 2 Nov 2023 20:34:07 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 Subject: Re: [EXT] [PATCH 27/36] net/octeontx: fix Rx and Tx queue state To: Harman Kalra , "dev@dpdk.org" , Chengwen Feng , Lijun Ou , Thomas Monjalon , Ferruh Yigit , Konstantin Ananyev <"konstantin.v.ananyev@yandex.rukonstantin.ananyev"@huawei.com> CC: "lihuisong@huawei.com" References: <20230908112901.1169869-1-haijie1@huawei.com> <20230908112901.1169869-28-haijie1@huawei.com> From: Jie Hai In-Reply-To: Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.67.121.175] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) To kwepemi500020.china.huawei.com (7.221.188.8) X-CFilter-Loop: Reflected 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 On 2023/11/2 17:59, Harman Kalra wrote: > Hi Jie, > > What issue did you observe which the following patch resolves? Can you please provide steps. > Because we are setting the respective queue state in octeontx_dev_tx_queue_start/stop() ethdev_ops > > Thanks > Harman > Hi, Harman, If dev_start are called, all queues except for the deferred one should forward packets. I have not tested for this driver, please try the following steps to see if there is any problem. For the original question, please see commit: 37b68fa1445c app/testpmd: fix primary process not polling all queues applied If applied this patch without drivers reporting their queue state in dev_start and dev_stop ops, perform the following opertation: step1: Start the testpmd app. dpdk-testpmd -a 0000:35:00.0 -l 0-3 -- -i --rxq=10 --txq=10 step2: Perform the following steps and send traffic. As expected, queue 7 does not send or receive packets, and other queues do. port 0 rxq 7 stop port 0 txq 7 stop set fwd mac start step3: Perform the following steps and send traffic. All queues are expected to send and receive packets normally, but that's not the case for queue 7. The queue may be enabled on hardware, but not allowed to participate in forwarding in app level for the wrong state. stop port stop all port start all start show port xstats all If drivers support checking queue state by command 'show rxq info 0 7' and 'show txq info 0 7', we see queue 7 is stopped as other queues are started. That makes queue 7 not forward. Please refer to https://inbox.dpdk.org/dev/20230721160422.3848154-1-ferruh.yigit@amd.com/ and https://inbox.dpdk.org/dev/20230928074305.2991100-9-haijie1@huawei.com/. Thanks, Jie Hai >> -----Original Message----- >> From: Jie Hai >> Sent: Friday, September 8, 2023 4:59 PM >> To: dev@dpdk.org; Harman Kalra ; Chengwen Feng >> ; Lijun Ou ; Thomas >> Monjalon ; Ferruh Yigit ; >> Konstantin Ananyev >> <"konstantin.v.ananyev@yandex.rukonstantin.ananyev"@huawei.com> >> Cc: haijie1@huawei.com; lihuisong@huawei.com >> Subject: [EXT] [PATCH 27/36] net/octeontx: fix Rx and Tx queue state >> >> External Email >> >> ---------------------------------------------------------------------- >> The DPDK framework reports the queue state, which is stored in >> dev->data->tx_queue_state and dev->data->rx_queue_state. The >> state is maintained by the driver. Users may determine whether a queue >> participates in packet forwarding based on the state. >> Therefore, the driver needs to modify the queue state in time according to >> the actual situation. >> >> Fixes: 9ad9ff476cac ("ethdev: add queue state in queried queue >> information") >> Cc: stable@dpdk.org >> >> Signed-off-by: Jie Hai >> --- >> drivers/net/octeontx/octeontx_ethdev.c | 11 +++++++++++ >> 1 file changed, 11 insertions(+) >> >> diff --git a/drivers/net/octeontx/octeontx_ethdev.c >> b/drivers/net/octeontx/octeontx_ethdev.c >> index a6ae51a42c4e..2a8378a33ea2 100644 >> --- a/drivers/net/octeontx/octeontx_ethdev.c >> +++ b/drivers/net/octeontx/octeontx_ethdev.c >> @@ -732,6 +732,11 @@ octeontx_dev_start(struct rte_eth_dev *dev) >> } >> >> /* Success */ >> + for (i = 0; i < dev->data->nb_rx_queues; i++) >> + dev->data->rx_queue_state[i] = >> RTE_ETH_QUEUE_STATE_STARTED; >> + for (i = 0; i < dev->data->nb_tx_queues; i++) >> + dev->data->tx_queue_state[i] = >> RTE_ETH_QUEUE_STATE_STARTED; >> + >> return ret; >> >> pki_port_stop_error: >> @@ -746,6 +751,7 @@ static int >> octeontx_dev_stop(struct rte_eth_dev *dev) { >> struct octeontx_nic *nic = octeontx_pmd_priv(dev); >> + uint16_t i; >> int ret; >> >> PMD_INIT_FUNC_TRACE(); >> @@ -772,6 +778,11 @@ octeontx_dev_stop(struct rte_eth_dev *dev) >> return ret; >> } >> >> + for (i = 0; i < dev->data->nb_rx_queues; i++) >> + dev->data->rx_queue_state[i] = >> RTE_ETH_QUEUE_STATE_STOPPED; >> + for (i = 0; i < dev->data->nb_tx_queues; i++) >> + dev->data->tx_queue_state[i] = >> RTE_ETH_QUEUE_STATE_STOPPED; >> + >> return 0; >> } >> >> -- >> 2.30.0 > > .