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 7CEF7A0C4C; Thu, 2 Sep 2021 20:03:42 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6903E4003E; Thu, 2 Sep 2021 20:03:42 +0200 (CEST) Received: from inbox.dpdk.org (inbox.dpdk.org [95.142.172.178]) by mails.dpdk.org (Postfix) with ESMTP id 20C3E4003C for ; Thu, 2 Sep 2021 20:03:41 +0200 (CEST) Received: by inbox.dpdk.org (Postfix, from userid 33) id F32D2A0C4D; Thu, 2 Sep 2021 20:03:40 +0200 (CEST) From: bugzilla@dpdk.org To: dev@dpdk.org Date: Thu, 02 Sep 2021 18:03:40 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: DPDK X-Bugzilla-Component: examples X-Bugzilla-Version: 21.08 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: brian90013@gmail.com X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: Normal X-Bugzilla-Assigned-To: dev@dpdk.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version rep_platform op_sys bug_status bug_severity priority component assigned_to reporter target_milestone attachments.created Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://bugs.dpdk.org/ Auto-Submitted: auto-generated X-Auto-Response-Suppress: All MIME-Version: 1.0 Subject: [dpdk-dev] [Bug 804] distributor: exiting workers can hang distributor core 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" https://bugs.dpdk.org/show_bug.cgi?id=3D804 Bug ID: 804 Summary: distributor: exiting workers can hang distributor core Product: DPDK Version: 21.08 Hardware: All OS: All Status: UNCONFIRMED Severity: normal Priority: Normal Component: examples Assignee: dev@dpdk.org Reporter: brian90013@gmail.com Target Milestone: --- Created attachment 171 --> https://bugs.dpdk.org/attachment.cgi?id=3D171&action=3Dedit patch to avoid hanging Hello, I have been testing the distributor example using one interface and five co= res - ./build/distributor_app -l 10-14 -- -p 1. This leaves me one worker threa= d. I noticed the application often hangs after I supply SIGINT and I have to manually kill the process. I added some additional debugging and discovered the distributor core is not returning from rte_distributor_flush(). Looking inside that function, I see= the loop waiting for total_outstanding() to return 0. I believe that requires a= ll workers to have returned all in-flight packets? Moving to the worker core, it calls rte_distributor_get_pkt(), does its processing, then loops to the start of the while(!quit_signal_work) block. = When exiting, this is true, so it immediately exits the loop - without returning= the last batch of packets. I believe this is what is causing the distributor co= re to fail to exit as it continues to loop waiting for workers to return their buffers. As a test, I added a call to rte_distributor_return_pkt(d, id, buf, num) outside the worker while() loop but before the thread exits. I've run many tests and have not seen the process hang once. --=20 You are receiving this mail because: You are the assignee for the bug.=